From d10063fd20c151cfc580e24b1b8c2e58b406f97c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20St=C3=B6hr?= Date: Sun, 1 Jul 2012 01:47:39 +0200 Subject: [PATCH] polyglossia tex2lyx coding style improvement - Preamble.cpp/: - move list definition out of anon namespace - declare lists and a function in the class - text.cpp: remove the now already defined list --- src/tex2lyx/Preamble.cpp | 73 ++++++++++++++++++++-------------------- src/tex2lyx/Preamble.h | 8 ++++- src/tex2lyx/text.cpp | 45 +++---------------------- 3 files changed, 49 insertions(+), 77 deletions(-) diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp index 70fc2e62d9..4dc363b5e1 100644 --- a/src/tex2lyx/Preamble.cpp +++ b/src/tex2lyx/Preamble.cpp @@ -88,41 +88,6 @@ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian", "uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh", 0}; -/** - * known polyglossia language names (including variants) - */ -const char * const polyglossia_languages[] = { -"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", -"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil", -"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch", -"irish", "portuges", "thai", "bahasai", "english", "italian", "romanian", "turkish", -"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin", -"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazil", -"brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french", -"lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", -"welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek", -"marathi", "spanish", -"american", "ancient", "australian", "british", "monotonic", "newzealand", -"polytonic", 0}; - -/** - * the same as polyglossia_languages with .lyx names - * please keep this in sync with polyglossia_languages line by line! - */ -const char * const coded_polyglossia_languages[] = { -"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", -"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil", -"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch", -"irish", "portuges", "thai", "bahasa", "english", "italian", "romanian", "turkish", -"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin", -"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazilian", -"brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french", -"lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", -"welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek", -"marathi", "spanish", -"american", "ancientgreek", "australian", "british", "greek", "newzealand", -"polutonikogreek", 0}; - /// languages with english quotes (.lyx names) const char * const known_english_quotes_languages[] = {"american", "australian", "bahasa", "bahasam", "brazilian", "canadian", "chinese-simplified", "english", @@ -317,6 +282,42 @@ string process_keyval_opt(vector & options, string name) } // anonymous namespace +/** + * known polyglossia language names (including variants) + */ +const char * const Preamble::polyglossia_languages[] = { +"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", +"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil", +"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch", +"irish", "portuges", "thai", "bahasai", "english", "italian", "romanian", "turkish", +"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin", +"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazil", +"brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french", +"lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", +"welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek", +"marathi", "spanish", +"american", "ancient", "australian", "british", "monotonic", "newzealand", +"polytonic", 0}; + +/** + * the same as polyglossia_languages with .lyx names + * please keep this in sync with polyglossia_languages line by line! + */ +const char * const Preamble::coded_polyglossia_languages[] = { +"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", +"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil", +"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch", +"irish", "portuges", "thai", "bahasa", "english", "italian", "romanian", "turkish", +"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin", +"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazilian", +"brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french", +"lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", +"welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek", +"marathi", "spanish", +"american", "ancientgreek", "australian", "british", "greek", "newzealand", +"polutonikogreek", 0}; + + bool Preamble::indentParagraphs() const { return h_paragraph_separation == "indent"; @@ -1644,7 +1645,7 @@ string babel2lyx(string const & language) } -string polyglossia2lyx(string const & language) +string Preamble::polyglossia2lyx(string const & language) { char const * const * where = is_known(language, polyglossia_languages); if (where) diff --git a/src/tex2lyx/Preamble.h b/src/tex2lyx/Preamble.h index f40cb31194..bd95e370b0 100644 --- a/src/tex2lyx/Preamble.h +++ b/src/tex2lyx/Preamble.h @@ -43,6 +43,8 @@ public: /// std::string use_indices() const { return h_use_indices; } /// + std::string polyglossia2lyx(std::string const & language); + /// bool indentParagraphs() const; /// bool isPackageUsed(std::string const & package) const; @@ -66,13 +68,17 @@ public: /// Get author named \p name (must be registered first) Author const & getAuthor(std::string const & name) const; - /// Parses the LaTeX preamble into internal data void parse(Parser & p, std::string const & forceclass, TeX2LyXDocClass & tc); /// Writes the LyX file header from internal data bool writeLyXHeader(std::ostream & os, bool subdoc); + /// known polyglossia language names (including variants) + static const char * const polyglossia_languages[]; + /// the same as polyglossia_languages with .lyx names + static const char * const coded_polyglossia_languages[]; + private: /// std::map > used_packages; diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index 3101a75545..cebc6fbf40 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -117,41 +117,6 @@ char const * const known_ref_commands[] = { "ref", "pageref", "vref", char const * const known_coded_ref_commands[] = { "ref", "pageref", "vref", "vpageref", "formatted", "eqref", 0 }; -/** - * known polyglossia language names (including variants) - */ -const char * const polyglossia_languages[] = { -"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", -"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil", -"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch", -"irish", "portuges", "thai", "bahasai", "english", "italian", "romanian", "turkish", -"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin", -"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazil", -"brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french", -"lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", -"welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek", -"marathi", "spanish", -"american", "ancient", "australian", "british", "monotonic", "newzealand", -"polytonic", 0}; - -/** - * the same as polyglossia_languages with .lyx names - * please keep this in sync with polyglossia_languages line by line! - */ -const char * const coded_polyglossia_languages[] = { -"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", -"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil", -"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch", -"irish", "portuges", "thai", "bahasa", "english", "italian", "romanian", "turkish", -"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin", -"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazilian", -"brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french", -"lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", -"welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek", -"marathi", "spanish", -"american", "ancientgreek", "australian", "british", "greek", "newzealand", -"polutonikogreek", 0}; - /** * supported CJK encodings */ @@ -1268,7 +1233,7 @@ void parse_environment(Parser & p, ostream & os, bool outer, } } - else if (is_known(name, polyglossia_languages)) { + else if (is_known(name, preamble.polyglossia_languages)) { // We must begin a new paragraph if not already done if (! parent_context.atParagraphStart()) { parent_context.check_end_layout(os); @@ -1276,7 +1241,7 @@ void parse_environment(Parser & p, ostream & os, bool outer, } // save the language in the context so that it is // handled by parse_text - parent_context.font.language = polyglossia2lyx(name); + parent_context.font.language = preamble.polyglossia2lyx(name); parse_text(p, os, FLAG_END, outer, parent_context); // Just in case the environment is empty parent_context.extra_stuff.erase(); @@ -3573,7 +3538,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, } else if (prefixIs(t.cs(), "text") - && is_known(t.cs().substr(4), polyglossia_languages)) { + && is_known(t.cs().substr(4), preamble.polyglossia_languages)) { // scheme is \textLANGUAGE{text} where LANGUAGE is in polyglossia_languages[] string lang; // We have to output the whole command if it has an option @@ -3588,14 +3553,14 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, if (pos_var != string::npos && i == string::npos) { string variant; variant = langopts.substr(k + 1, langopts.length() - k - 2); - lang = polyglossia2lyx(variant); + lang = preamble.polyglossia2lyx(variant); parse_text_attributes(p, os, FLAG_ITEM, outer, context, "\\lang", context.font.language, lang); } else handle_ert(os, t.asInput() + langopts, context); } else { - lang = polyglossia2lyx(t.cs().substr(4, string::npos)); + lang = preamble.polyglossia2lyx(t.cs().substr(4, string::npos)); parse_text_attributes(p, os, FLAG_ITEM, outer, context, "\\lang", context.font.language, lang);