Support for 3-letter language codes (bug 3526, r=ds).
Support for 3-letter language codes (
bug 3526, r=ds).
1.1 --- a/core/Translator.cpp Sun Dec 28 01:10:20 2008 -0500
1.2 +++ b/core/Translator.cpp Sun Dec 28 02:38:53 2008 -0500
1.3 @@ -487,7 +487,7 @@
1.4 else
1.5 {
1.6 size_t len = strlen(key);
1.7 - if (len != 2)
1.8 + if (len < 2 || len > 3)
1.9 {
1.10 ParseWarning("Ignoring translation to invalid language \"%s\" on line %d.", key, states->line);
1.11 return SMCResult_Continue;
1.12 @@ -936,7 +936,7 @@
1.13 {
1.14 size_t len = strlen(key);
1.15
1.16 - if (len != 2)
1.17 + if (len < 2 || len > 3)
1.18 {
1.19 g_Logger.LogError("[SM] Warning encountered parsing languages.cfg file.");
1.20 g_Logger.LogError("[SM] Invalid language code \"%s\" is being ignored.", key);
1.21 @@ -957,9 +957,7 @@
1.22 Language *pLanguage = new Language;
1.23 unsigned int idx = m_Languages.size();
1.24
1.25 - pLanguage->m_code2[0] = langcode[0];
1.26 - pLanguage->m_code2[1] = langcode[1];
1.27 - pLanguage->m_code2[2] = langcode[2];
1.28 + UTIL_Format(pLanguage->m_code2, sizeof(pLanguage->m_code2), "%s", langcode);
1.29 pLanguage->m_FullName = m_pStringTab->AddString(description);
1.30
1.31 sm_trie_insert(m_pLCodeLookup, langcode, reinterpret_cast<void *>(idx));
2.1 --- a/core/Translator.h Sun Dec 28 01:10:20 2008 -0500
2.2 +++ b/core/Translator.h Sun Dec 28 02:38:53 2008 -0500
2.3 @@ -57,7 +57,7 @@
2.4
2.5 struct Language
2.6 {
2.7 - char m_code2[3];
2.8 + char m_code2[4];
2.9 int m_FullName;
2.10 };
2.11
2.12 @@ -159,7 +159,7 @@
2.13 bool m_InLanguageSection;
2.14 String m_CustomError;
2.15 unsigned int m_ServerLang;
2.16 - char m_InitialLang[3];
2.17 + char m_InitialLang[4];
2.18 };
2.19
2.20 /* Nice little wrapper to handle error logging and whatnot */