diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index cb35fdfb83..506af187c9 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -426,10 +426,14 @@ void LaTeXFeatures::require(set const & names) void LaTeXFeatures::useLayout(docstring const & layoutname) +{ + useLayout(layoutname, 0); +} + + +void LaTeXFeatures::useLayout(docstring const & layoutname, int level) { // Some code to avoid loops in dependency definition - // FIXME THREAD - static int level = 0; const int maxlevel = 30; if (level > maxlevel) { lyxerr << "LaTeXFeatures::useLayout: maximum level of " @@ -449,9 +453,7 @@ void LaTeXFeatures::useLayout(docstring const & layoutname) require(layout.requires()); if (!layout.depends_on().empty()) { - ++level; - useLayout(layout.depends_on()); - --level; + useLayout(layout.depends_on(), level + 1); } usedLayouts_.push_back(layoutname); } else { @@ -459,8 +461,6 @@ void LaTeXFeatures::useLayout(docstring const & layoutname) << to_utf8(layoutname) << "' does not exist in this class" << endl; } - - --level; } diff --git a/src/LaTeXFeatures.h b/src/LaTeXFeatures.h index 71004be4ca..be00847f7e 100644 --- a/src/LaTeXFeatures.h +++ b/src/LaTeXFeatures.h @@ -157,6 +157,8 @@ public: docstring const & htmlTitle() const { return htmltitle_; } private: + /// + void useLayout(docstring const &, int); /// std::list usedLayouts_; ///