]> git.lyx.org Git - lyx.git/commitdiff
Simplify and optimize a bit the special babel language detection; and add a FIXME.
authorAbdelrazak Younes <younes@lyx.org>
Sun, 12 Oct 2008 07:19:43 +0000 (07:19 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Sun, 12 Oct 2008 07:19:43 +0000 (07:19 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26857 a592a061-630c-0410-9148-cb99ea01b6c8

src/BufferParams.cpp
src/LaTeXFeatures.cpp
src/LaTeXFeatures.h

index 329104080606030dc45eebe5babc22be89d34612..af14a55aa4c2f2f4cb617ccaf09acf091b1186d4 100644 (file)
@@ -1025,25 +1025,24 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
                                language_options << ',';
                        language_options << language->babel();
                }
                                language_options << ',';
                        language_options << language->babel();
                }
+               // FIXME: don't hardcode this! 
                // if Vietnamese is used, babel must directly be loaded
                // with language options, not in the class options, see
                // http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg129417.html
                // if Vietnamese is used, babel must directly be loaded
                // with language options, not in the class options, see
                // http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg129417.html
-               size_t viet = language_options.str().find("vietnam");
-               // viet = string::npos when not found
+               //
                // the same is for all other languages that are not directly supported by
                // babel, but where LaTeX-packages add babel support.
                // this is currently the case for Latvian, Lithuanian, and Mongolian
                // the same is for all other languages that are not directly supported by
                // babel, but where LaTeX-packages add babel support.
                // this is currently the case for Latvian, Lithuanian, and Mongolian
-               size_t latvian = language_options.str().find("latvian");
-               size_t lithu = language_options.str().find("lithuanian");
-               size_t mongo = language_options.str().find("mongolian");
+               //
                // if Japanese is used, babel must directly be loaded
                // with language options, not in the class options, see
                // http://bugzilla.lyx.org/show_bug.cgi?id=4597#c4
                // if Japanese is used, babel must directly be loaded
                // with language options, not in the class options, see
                // http://bugzilla.lyx.org/show_bug.cgi?id=4597#c4
-               size_t japan = language_options.str().find("japanese");
                if (lyxrc.language_global_options && !language_options.str().empty()
                if (lyxrc.language_global_options && !language_options.str().empty()
-                       && viet == string::npos && japan == string::npos
-                       && latvian == string::npos && lithu == string::npos
-                       && mongo == string::npos)
+                && !features.hasLanguage("vietnam")
+                && !features.hasLanguage("latvian")
+                && !features.hasLanguage("lithuanian")
+                && !features.hasLanguage("mongolian")
+                && !features.hasLanguage("japanese"))
                        clsoptions << language_options.str() << ',';
        }
 
                        clsoptions << language_options.str() << ',';
        }
 
index a8660d776a707ef6d4d9d5e7607befe91d810c79..4fb328b6385c02c08e67ec39880cf134a321f0eb 100644 (file)
@@ -431,6 +431,18 @@ bool LaTeXFeatures::hasLanguages() const
 }
 
 
 }
 
 
+bool LaTeXFeatures::hasLanguage(string const & lang) const
+{
+       LanguageList::const_iterator cit = UsedLanguages_.begin();
+       LanguageList::const_iterator const end = UsedLanguages_.end();
+       for (; cit != end; ++cit) {
+               if ((*cit)->babel() == lang)
+                       return true;
+       }
+       return false;
+}
+
+
 string LaTeXFeatures::getLanguages() const
 {
        ostringstream languages;
 string LaTeXFeatures::getLanguages() const
 {
        ostringstream languages;
index 1a484f730c470921b08b27ba5c96123e8de7dcf9..d93b96b092cc60b51597e821834d831cdba556f5 100644 (file)
@@ -89,6 +89,8 @@ public:
        void useLanguage(Language const *);
        ///
        bool hasLanguages() const;
        void useLanguage(Language const *);
        ///
        bool hasLanguages() const;
+       /// \return true if the passed language name is used in the document.
+       bool hasLanguage(std::string const & lang) const;
        ///
        std::string getLanguages() const;
        ///
        ///
        std::string getLanguages() const;
        ///