#include "support/debug.h"
#include "support/FileName.h"
#include "support/filetools.h"
+#include "support/lassert.h"
#include "support/lstrings.h"
#include "support/Messages.h"
namespace lyx {
Languages languages;
-Language ignore_lang;
-Language latex_lang;
-Language const * default_language;
-Language const * ignore_language = &ignore_lang;
-Language const * latex_language = &latex_lang;
+Language const * ignore_language = 0;
+Language const * default_language = 0;
+Language const * latex_language = 0;
Language const * reset_language = 0;
l.read(lex);
if (!lex)
break;
- if (l.lang() == "latex")
- latex_lang = l;
- else if (l.lang() == "ignore")
- ignore_lang = l;
- else
+ if (l.lang() == "latex") {
+ // Check if latex language was not already defined.
+ LASSERT(latex_language == 0, continue);
+ static const Language latex_lang = l;
+ latex_language = &latex_lang;
+ } else if (l.lang() == "ignore") {
+ // Check if ignore language was not already defined.
+ LASSERT(ignore_language == 0, continue);
+ static const Language ignore_lang = l;
+ ignore_language = &ignore_lang;
+ } else
languagelist[l.lang()] = l;
}
if (!lex.next(true))
break;
string const code = lex.getString();
- bool readit = false;
+ bool found = false;
for (LanguageList::iterator lit = lbeg; lit != lend; ++lit) {
if (match(code, lit->second) != NoMatch) {
- if (readTranslations(lex, trans[code]))
- readit = true;
- else
- lex.printError("Could not read layout "
- "translations for language "
- "`" + code + "'");
+ found = true;
break;
}
}
- if (!readit) {
+ if (!found) {
lex.printError("Unknown language `" + code + "'");
break;
}
+ if (!readTranslations(lex, trans[code])) {
+ lex.printError("Could not read layout translations for language `"
+ + code + "'");
+ break;
+ }
}
// 2) merge all translations into the languages
TransMap::const_iterator const tend = trans.end();
for (TransMap::const_iterator tit = tbeg; tit != tend; ++tit) {
for (LanguageList::iterator lit = lbeg; lit != lend; ++lit) {
- Match m = match(tit->first, lit->second);
+ Match const m = match(tit->first, lit->second);
if (m == NoMatch)
continue;
lit->second.readLayoutTranslations(tit->second,