commit c349472d35bc13c17fd9c7f9dfe6c1b3694bdcb4
Author: Günter Milde <mi...@lyx.org>
Date:   Sat Apr 27 12:36:51 2019 +0200

    "AsBabelOptions" no longer required. Part2.
    
    AsBabelOptions was introduced 2010 in [cc5dd37a2a05/lyxgit].
    
    Since the re-orgianization and opening of the Babel package to
    "contributed" language definitions in March 2013, it is no longer required.
    
    Clean up after Part 1 [1361f1a45f23/lyxgit].
---
 lib/languages         |   14 ++++++--------
 src/BufferParams.cpp  |   14 ++++++--------
 src/LaTeXFeatures.cpp |   15 ---------------
 src/LaTeXFeatures.h   |    2 --
 src/Language.cpp      |    8 +-------
 src/Language.h        |    4 +---
 6 files changed, 14 insertions(+), 43 deletions(-)

diff --git a/lib/languages b/lib/languages
index ea8a7c7..3358366 100644
--- a/lib/languages
+++ b/lib/languages
@@ -17,7 +17,6 @@
 #      FontEncoding       <font encoding|font encoding|...>
 #      InternalEncoding   <true|false>
 #      RTL                <true|false>
-#      AsBabelOptions     <true|false>
 #      LangCode           <language_code>
 #      LangVariety        <language_variety>
 #      PreBabelPreamble
@@ -101,11 +100,6 @@
 #   If True, LyX takes care for characters/macros that do not exist in
 #   some font encodings ("<", ">", "|" and straight quote).
 #   It is not required for standard encodings like T2A. See bug #5091.
-# * AsBabelOptions advices LyX to pass the languages locally to babel, not
-#   globally to the class. In the old days, some languages (basically those
-#   not natively supported by babel) needed this.
-#   FIXME: in this case, we might still need to pass the other languages
-#          globally, for the use of other packages (such as varioref).
 # * LangCode is also used for spellchecking and thesaurus, where the
 #   dictionaries are named accordingly. Thus, check this when introducing/
 #   changing language codes (especially aspell, thesaurus).
@@ -781,10 +775,14 @@ Language hebrew
        QuoteStyle       english
        InternalEncoding true
        # babel-hebrew expects the encoding for *other* languages last:
-       # FontEncoding    HE8
-       # Define the font encoding the babel-hebrew way and
+       # FontEncoding    HE8|LHE
+       ## Use font encoding HE8 if the Culmus fonts are installed and
        # work around too simple test for article-like classes in rlbabel.def.
        PreBabelPreamble
+         %\IfFileExists{he8david.fd}{%
+         %  \providecommand{\HeblatexEncoding}{HE8}
+         %  \providecommand{\HeblatexEncodingFile}{he8enc}%
+         %}{}
          \providecommand{\l@chapter}{\relax}
        EndPreBabelPreamble
        DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp
index fb176b9..8478f8c 100644
--- a/src/BufferParams.cpp
+++ b/src/BufferParams.cpp
@@ -1719,8 +1719,7 @@ bool BufferParams::writeLaTeX(otexstream & os, 
LaTeXFeatures & features,
                                language_options << ',';
                        language_options << language->babel();
                }
-               if (global && !features.needBabelLangOptions()
-                   && !language_options.str().empty())
+               if (global && !language_options.str().empty())
                        clsoptions << language_options.str() << ',';
        }
 
@@ -1802,8 +1801,8 @@ bool BufferParams::writeLaTeX(otexstream & os, 
LaTeXFeatures & features,
        if (features.mustProvide("pmboxdraw"))
                os << "\\usepackage{pmboxdraw}\n";
        
-       // FIXME: With Thai as document or secondary language, we must load 
babel
-       // before inputenc (see lib/languages).
+       // FIXME: In any document containing text in Thai language, 
+       // we must load babel before inputenc (see lib/languages).
        // handle inputenc etc.
        writeEncodingPreamble(os, features);
 
@@ -2090,7 +2089,7 @@ bool BufferParams::writeLaTeX(otexstream & os, 
LaTeXFeatures & features,
                        os << features.getBabelPresettings();
                        // FIXME UNICODE
                        os << from_utf8(babelCall(language_options.str(),
-                                                 
features.needBabelLangOptions())) + '\n';
+                                                                         
!lyxrc.language_global_options)) + '\n';
                        os << features.getBabelPostsettings();
        }
 
@@ -2286,7 +2285,7 @@ bool BufferParams::writeLaTeX(otexstream & os, 
LaTeXFeatures & features,
                os << features.getBabelPresettings();
                // FIXME UNICODE
                os << from_utf8(babelCall(language_options.str(),
-                                         features.needBabelLangOptions())) + 
'\n';
+                                         !lyxrc.language_global_options)) + 
'\n';
                os << features.getBabelPostsettings();
        }
        if (features.isRequired("bicaption"))
@@ -3215,8 +3214,7 @@ string BufferParams::babelCall(string const & lang_opts, 
bool const langoptions)
        // other languages are used (lang_opts is then empty)
        if (lang_opts.empty())
                return string();
-       // either a specific language (AsBabelOptions setting in
-       // lib/languages) or the prefs require the languages to
+       // The prefs may require the languages to
        // be submitted to babel itself (not the class).
        if (langoptions)
                return "\\usepackage[" + lang_opts + "]{babel}";
diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp
index b706cec..827b449 100644
--- a/src/LaTeXFeatures.cpp
+++ b/src/LaTeXFeatures.cpp
@@ -1603,21 +1603,6 @@ docstring const LaTeXFeatures::getBabelPostsettings() 
const
 }
 
 
-bool LaTeXFeatures::needBabelLangOptions() const
-{
-       if (!lyxrc.language_global_options || 
params_.language->asBabelOptions())
-               return true;
-
-       LanguageList::const_iterator it  = UsedLanguages_.begin();
-       LanguageList::const_iterator end = UsedLanguages_.end();
-       for (; it != end; ++it)
-               if ((*it)->asBabelOptions())
-                       return true;
-
-       return false;
-}
-
-
 string const LaTeXFeatures::loadAMSPackages() const
 {
        ostringstream tmp;
diff --git a/src/LaTeXFeatures.h b/src/LaTeXFeatures.h
index 864efee..a902c4a 100644
--- a/src/LaTeXFeatures.h
+++ b/src/LaTeXFeatures.h
@@ -66,8 +66,6 @@ public:
        docstring const getBabelPresettings() const;
        /// Extra preamble code after babel is called
        docstring const getBabelPostsettings() const;
-       /// Do we need to pass the languages to babel directly?
-       bool needBabelLangOptions() const;
        /// Load AMS packages when appropriate
        std::string const loadAMSPackages() const;
        /// The definitions needed by the document's textclass
diff --git a/src/Language.cpp b/src/Language.cpp
index 12c79a0..24e5cd7 100644
--- a/src/Language.cpp
+++ b/src/Language.cpp
@@ -114,8 +114,7 @@ string Language::dateFormat(size_t i) const
 bool Language::readLanguage(Lexer & lex)
 {
        enum LanguageTags {
-               LA_AS_BABELOPTS = 1,
-               LA_BABELNAME,
+               LA_BABELNAME = 1,
                LA_DATEFORMATS,
                LA_ENCODING,
                LA_END,
@@ -137,7 +136,6 @@ bool Language::readLanguage(Lexer & lex)
 
        // Keep these sorted alphabetically!
        LexerKeyword languageTags[] = {
-               { "asbabeloptions",       LA_AS_BABELOPTS },
                { "babelname",            LA_BABELNAME },
                { "dateformats",          LA_DATEFORMATS },
                { "encoding",             LA_ENCODING },
@@ -181,9 +179,6 @@ bool Language::readLanguage(Lexer & lex)
                case LA_END: // end of structure
                        finished = true;
                        break;
-               case LA_AS_BABELOPTS:
-                       lex >> as_babel_options_;
-                       break;
                case LA_BABELNAME:
                        lex >> babel_;
                        break;
@@ -254,7 +249,6 @@ bool Language::readLanguage(Lexer & lex)
 
 bool Language::read(Lexer & lex)
 {
-       as_babel_options_ = 0;
        encoding_ = 0;
        internal_enc_ = 0;
        rightToLeft_ = 0;
diff --git a/src/Language.h b/src/Language.h
index 85df29d..1dabbac 100644
--- a/src/Language.h
+++ b/src/Language.h
@@ -36,7 +36,7 @@ class Language {
 public:
        ///
        Language() : rightToLeft_(false), encoding_(0), internal_enc_(false),
-                                as_babel_options_(false), 
has_gui_support_(false) {}
+                                has_gui_support_(false) {}
        /// LyX language name
        std::string const lang() const { return lang_; }
        /// Babel language name
@@ -88,8 +88,6 @@ public:
        std::string fontenc(BufferParams const &) const;
        /// Return the localized date formats (long, medium, short format)
        std::string dateFormat(size_t i) const;
-       /// This language needs to be passed to babel itself (not the class)
-       bool asBabelOptions() const { return as_babel_options_; }
        /// This language corresponds to a translation of the GUI
        bool hasGuiSupport() const { return has_gui_support_; }
        ///

Reply via email to