]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
Make layout test compile
[lyx.git] / src / BufferParams.cpp
index 0604a99b0e15fd494c04b7d0b00d6b35c0b3fc15..49c55aaa511d6f52249d29b709a176d042a7c31a 100644 (file)
@@ -87,11 +87,6 @@ static char const * const string_orientation[] = {
 };
 
 
-static char const * const string_footnotekinds[] = {
-       "footnote", "margin", "fig", "tab", "alg", "wide-fig", "wide-tab", ""
-};
-
-
 static char const * const tex_graphics[] = {
        "default", "dvialw", "dvilaser", "dvipdf", "dvipdfm", "dvipdfmx",
        "dvips", "dvipsone", "dvitops", "dviwin", "dviwindo", "dvi2ps", "emtex",
@@ -122,7 +117,8 @@ ParSepTranslator const init_parseptranslator()
 
 ParSepTranslator const & parseptranslator()
 {
-       static ParSepTranslator translator = init_parseptranslator();
+       static ParSepTranslator const translator =
+               init_parseptranslator();
        return translator;
 }
 
@@ -146,7 +142,8 @@ QuotesLangTranslator const init_quoteslangtranslator()
 
 QuotesLangTranslator const & quoteslangtranslator()
 {
-       static QuotesLangTranslator translator = init_quoteslangtranslator();
+       static QuotesLangTranslator const translator =
+               init_quoteslangtranslator();
        return translator;
 }
 
@@ -196,7 +193,8 @@ static PaperSizeTranslator initPaperSizeTranslator()
 
 PaperSizeTranslator const & papersizetranslator()
 {
-       static PaperSizeTranslator translator = initPaperSizeTranslator();
+       static PaperSizeTranslator const translator =
+               initPaperSizeTranslator();
        return translator;
 }
 
@@ -215,7 +213,8 @@ PaperOrientationTranslator const init_paperorientationtranslator()
 
 PaperOrientationTranslator const & paperorientationtranslator()
 {
-       static PaperOrientationTranslator translator = init_paperorientationtranslator();
+       static PaperOrientationTranslator const translator =
+           init_paperorientationtranslator();
        return translator;
 }
 
@@ -234,7 +233,7 @@ SidesTranslator const init_sidestranslator()
 
 SidesTranslator const & sidestranslator()
 {
-       static SidesTranslator translator = init_sidestranslator();
+       static SidesTranslator const translator = init_sidestranslator();
        return translator;
 }
 
@@ -254,7 +253,8 @@ PackageTranslator const init_packagetranslator()
 
 PackageTranslator const & packagetranslator()
 {
-       static PackageTranslator translator = init_packagetranslator();
+       static PackageTranslator const translator =
+               init_packagetranslator();
        return translator;
 }
 
@@ -274,7 +274,8 @@ CiteEngineTypeTranslator const init_citeenginetypetranslator()
 
 CiteEngineTypeTranslator const & citeenginetypetranslator()
 {
-       static CiteEngineTypeTranslator translator = init_citeenginetypetranslator();
+       static CiteEngineTypeTranslator const translator =
+               init_citeenginetypetranslator();
        return translator;
 }
 
@@ -296,7 +297,7 @@ SpaceTranslator const init_spacetranslator()
 
 SpaceTranslator const & spacetranslator()
 {
-       static SpaceTranslator translator = init_spacetranslator();
+       static SpaceTranslator const translator = init_spacetranslator();
        return translator;
 }
 
@@ -365,8 +366,8 @@ BufferParams::BufferParams()
        biblio_style = "plain";
        use_bibtopic = false;
        use_indices = false;
-       trackChanges = false;
-       outputChanges = false;
+       track_changes = false;
+       output_changes = false;
        use_default_options = true;
        maintain_unincluded_children = false;
        secnumdepth = 3;
@@ -445,6 +446,8 @@ void BufferParams::use_package(std::string const & p, BufferParams::Package u)
 
 map<string, string> const & BufferParams::auto_packages()
 {
+       // FIXME THREAD
+       // It is extremely unlikely that there could be a problem here, but...
        static map<string, string> packages;
        if (packages.empty()) {
                // adding a package here implies a file format change!
@@ -744,9 +747,9 @@ string BufferParams::readToken(Lexer & lex, string const & token,
        } else if (token == "\\use_indices") {
                lex >> use_indices;
        } else if (token == "\\tracking_changes") {
-               lex >> trackChanges;
+               lex >> track_changes;
        } else if (token == "\\output_changes") {
-               lex >> outputChanges;
+               lex >> output_changes;
        } else if (token == "\\branch") {
                lex.eatLine();
                docstring branch = lex.getDocString();
@@ -1170,8 +1173,8 @@ void BufferParams::writeFile(ostream & os) const
                }
        }
 
-       os << "\\tracking_changes " << convert<string>(trackChanges) << '\n'
-          << "\\output_changes " << convert<string>(outputChanges) << '\n'
+       os << "\\tracking_changes " << convert<string>(track_changes) << '\n'
+          << "\\output_changes " << convert<string>(output_changes) << '\n'
           << "\\html_math_output " << html_math_output << '\n'
           << "\\html_css_as_file " << html_css_as_file << '\n'
           << "\\html_be_strict " << convert<string>(html_be_strict) << '\n';
@@ -1194,7 +1197,7 @@ void BufferParams::validate(LaTeXFeatures & features) const
        if (columns > 1 && language->rightToLeft())
                features.require("rtloutputdblcol");
 
-       if (outputChanges) {
+       if (output_changes) {
                bool dvipost    = LaTeXFeatures::isAvailable("dvipost");
                bool xcolorulem = LaTeXFeatures::isAvailable("ulem") &&
                                  LaTeXFeatures::isAvailable("xcolor");
@@ -1280,6 +1283,15 @@ void BufferParams::validate(LaTeXFeatures & features) const
                if (pdfoptions().colorlinks)
                        features.require("color");
        }
+       if (!listings_params.empty()) {
+               // do not test validity because listings_params is
+               // supposed to be valid
+               string par =
+                       InsetListingsParams(listings_params).separatedParams(true);
+               // we can't support all packages, but we should load the color package
+               if (par.find("\\color", 0) != string::npos)
+                       features.require("color");
+       }
 
        // some languages are only available via polyglossia
        if (features.runparams().flavor == OutputParams::XETEX
@@ -1530,21 +1542,6 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                os << "}\n";
        }
 
-       if (!listings_params.empty() || features.isRequired("listings"))
-               os << "\\usepackage{listings}\n";
-
-       if (!listings_params.empty()) {
-               os << "\\lstset{";
-               // do not test validity because listings_params is
-               // supposed to be valid
-               string par =
-                       InsetListingsParams(listings_params).separatedParams(true);
-               // we can't support all packages, but we should load the color package
-               if (par.find("\\color", 0) != string::npos)
-                       features.require("color");
-               os << from_utf8(par)
-                  << "}\n";
-       }
        if (!features.isProvided("geometry")
            && (use_geometry || nonstandard_papersize)) {
                odocstringstream ods;
@@ -1943,7 +1940,8 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                        + atlyxpreamble + "\\makeatother\n\n";
 
        // We try to load babel late, in case it interferes with other packages.
-       // Jurabib, hyperref and varioref have to be called after babel, though.
+       // Jurabib, hyperref, varioref and listings (bug 8995) have to be
+       // called after babel, though.
        if (use_babel && !features.isRequired("jurabib")
            && !features.isRequired("hyperref")
                && !features.isRequired("varioref")
@@ -1955,6 +1953,17 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                                                   features.needBabelLangOptions())) + '\n';
                lyxpreamble += from_utf8(features.getBabelPostsettings());
        }
+       if (!listings_params.empty() || features.isRequired("listings"))
+               lyxpreamble += "\\usepackage{listings}\n";
+       if (!listings_params.empty()) {
+               lyxpreamble += "\\lstset{";
+               // do not test validity because listings_params is
+               // supposed to be valid
+               string par =
+                       InsetListingsParams(listings_params).separatedParams(true);
+               lyxpreamble += from_utf8(par);
+               lyxpreamble += "}\n";
+       }
 
        // xunicode needs to be loaded at least after amsmath, amssymb,
        // esint and the other packages that provide special glyphs
@@ -2101,7 +2110,7 @@ LayoutFileIndex const & BufferParams::baseClassID() const
 }
 
 
-void BufferParams::makeDocumentClass()
+void BufferParams::makeDocumentClass(bool const clone)
 {
        if (!baseClass())
                return;
@@ -2117,7 +2126,7 @@ void BufferParams::makeDocumentClass()
        for (; it != en; ++it)
                mods.push_back(*it);
 
-       doc_class_ = getDocumentClass(*baseClass(), mods);
+       doc_class_ = getDocumentClass(*baseClass(), mods, clone);
 
        TextClass::ReturnValues success = TextClass::OK;
        if (!forced_local_layout_.empty())