make tex2lyx in branch compilable again

- Preamble.cpp/:
 - move list definition out of anon namespace
 - declare lists and a function in the class
 - remove ancientgreek since this is LyX 2.1-only

- XeTeX-polyglossia.tex: remove ancientgreek
This commit is contained in:
Uwe Stöhr 2012-07-01 01:42:32 +02:00
parent 3774a5ec3a
commit e516a9f9e5
4 changed files with 48 additions and 43 deletions

View File

@ -88,41 +88,6 @@ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian",
"uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh", "uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh",
0}; 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", "british", "monotonic",
"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", "british", "greek",
"polutonikogreek", 0};
/// languages with english quotes (.lyx names) /// languages with english quotes (.lyx names)
const char * const known_english_quotes_languages[] = {"american", "bahasa", const char * const known_english_quotes_languages[] = {"american", "bahasa",
"bahasam", "brazilian", "canadian", "chinese-simplified", "english", "bahasam", "brazilian", "canadian", "chinese-simplified", "english",
@ -308,6 +273,40 @@ string process_keyval_opt(vector<string> & options, string name)
} // anonymous namespace } // 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", "british", "monotonic", "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", "british", "greek", "polutonikogreek", 0};
bool Preamble::indentParagraphs() const bool Preamble::indentParagraphs() const
{ {
return h_paragraph_separation == "indent"; return h_paragraph_separation == "indent";
@ -1587,7 +1586,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); char const * const * where = is_known(language, polyglossia_languages);
if (where) if (where)

View File

@ -43,6 +43,8 @@ public:
/// ///
std::string use_indices() const { return h_use_indices; } std::string use_indices() const { return h_use_indices; }
/// ///
std::string polyglossia2lyx(std::string const & language);
///
bool indentParagraphs() const; bool indentParagraphs() const;
/// ///
bool isPackageUsed(std::string const & package) const; bool isPackageUsed(std::string const & package) const;
@ -66,13 +68,17 @@ public:
/// Get author named \p name (must be registered first) /// Get author named \p name (must be registered first)
Author const & getAuthor(std::string const & name) const; Author const & getAuthor(std::string const & name) const;
/// Parses the LaTeX preamble into internal data /// Parses the LaTeX preamble into internal data
void parse(Parser & p, std::string const & forceclass, void parse(Parser & p, std::string const & forceclass,
TeX2LyXDocClass & tc); TeX2LyXDocClass & tc);
/// Writes the LyX file header from internal data /// Writes the LyX file header from internal data
bool writeLyXHeader(std::ostream & os, bool subdoc); 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: private:
/// ///
std::map<std::string, std::vector<std::string> > used_packages; std::map<std::string, std::vector<std::string> > used_packages;

View File

@ -13,7 +13,7 @@
\part{df} \part{df}
1 English \textgreek[variant=ancient]{ancient Greek} English 1 English \textgreek[variant=polytonic]{polytonic Greek} English
\textgreek[numerals=arabic, variant=ancient]{ancient G\textsf{reek} with Arabic numerals} English \textgreek[numerals=arabic, variant=ancient]{ancient G\textsf{reek} with Arabic numerals} English
\begin{albanian}% \begin{albanian}%

View File

@ -1189,7 +1189,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 // We must begin a new paragraph if not already done
if (! parent_context.atParagraphStart()) { if (! parent_context.atParagraphStart()) {
parent_context.check_end_layout(os); parent_context.check_end_layout(os);
@ -1197,7 +1197,7 @@ void parse_environment(Parser & p, ostream & os, bool outer,
} }
// save the language in the context so that it is // save the language in the context so that it is
// handled by parse_text // 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); parse_text(p, os, FLAG_END, outer, parent_context);
// Just in case the environment is empty // Just in case the environment is empty
parent_context.extra_stuff.erase(); parent_context.extra_stuff.erase();
@ -3359,7 +3359,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
} }
else if (prefixIs(t.cs(), "text") 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[] // scheme is \textLANGUAGE{text} where LANGUAGE is in polyglossia_languages[]
string lang; string lang;
// We have to output the whole command if it has an option // We have to output the whole command if it has an option
@ -3374,14 +3374,14 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
if (pos_var != string::npos && i == string::npos) { if (pos_var != string::npos && i == string::npos) {
string variant; string variant;
variant = langopts.substr(k + 1, langopts.length() - k - 2); variant = langopts.substr(k + 1, langopts.length() - k - 2);
lang = polyglossia2lyx(variant); lang = preamble.polyglossia2lyx(variant);
parse_text_attributes(p, os, FLAG_ITEM, outer, parse_text_attributes(p, os, FLAG_ITEM, outer,
context, "\\lang", context, "\\lang",
context.font.language, lang); context.font.language, lang);
} else } else
handle_ert(os, t.asInput() + langopts, context); handle_ert(os, t.asInput() + langopts, context);
} else { } 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, parse_text_attributes(p, os, FLAG_ITEM, outer,
context, "\\lang", context, "\\lang",
context.font.language, lang); context.font.language, lang);