Uwe Stöhr | 1 Jul 2012 01:47
Favicon

[LyX master] polyglossia tex2lyx coding style improvement

The branch, master, has been updated.

- Log -----------------------------------------------------------------

commit d10063fd20c151cfc580e24b1b8c2e58b406f97c
Author: Uwe Stöhr <uwestoehr <at> lyx.org>
Date:   Sun Jul 1 01:47:39 2012 +0200

    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

diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp
index 70fc2e6..4dc363b 100644
--- a/src/tex2lyx/Preamble.cpp
+++ b/src/tex2lyx/Preamble.cpp
 <at>  <at>  -88,41 +88,6  <at>  <at>  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",
 <at>  <at>  -317,6 +282,42  <at>  <at>  string process_keyval_opt(vector<string> & 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";
 <at>  <at>  -1644,7 +1645,7  <at>  <at>  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 f40cb31..bd95e37 100644
--- a/src/tex2lyx/Preamble.h
+++ b/src/tex2lyx/Preamble.h
 <at>  <at>  -43,6 +43,8  <at>  <at>  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;
 <at>  <at>  -66,13 +68,17  <at>  <at>  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<std::string, std::vector<std::string> > used_packages;
diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp
index 3101a75..cebc6fb 100644
--- a/src/tex2lyx/text.cpp
+++ b/src/tex2lyx/text.cpp
 <at>  <at>  -118,41 +118,6  <at>  <at>  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
  */
 const char * const supported_CJK_encodings[] = {
 <at>  <at>  -1268,7 +1233,7  <at>  <at>  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);
 <at>  <at>  -1276,7 +1241,7  <at>  <at>  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();
 <at>  <at>  -3573,7 +3538,7  <at>  <at>  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
 <at>  <at>  -3588,14 +3553,14  <at>  <at>  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);

-----------------------------------------------------------------------

Summary of changes:
 src/tex2lyx/Preamble.cpp |   73 +++++++++++++++++++++++----------------------
 src/tex2lyx/Preamble.h   |    8 ++++-
 src/tex2lyx/text.cpp     |   45 +++-------------------------
 3 files changed, 49 insertions(+), 77 deletions(-)

hooks/post-receive
--

-- 
The LyX Source Repository


Gmane