diff --git a/src/utils/smallut.cpp b/src/utils/smallut.cpp index 48acdc9f..465b263b 100644 --- a/src/utils/smallut.cpp +++ b/src/utils/smallut.cpp @@ -1177,44 +1177,35 @@ void catstrerror(string *reason, const char *what, int _errno) } -static const char *vlang_to_code[] = { - "be", "cp1251", - "bg", "cp1251", - "cs", "iso-8859-2", - "el", "iso-8859-7", - "he", "iso-8859-8", - "hr", "iso-8859-2", - "hu", "iso-8859-2", - "ja", "eucjp", - "kk", "pt154", - "ko", "euckr", - "lt", "iso-8859-13", - "lv", "iso-8859-13", - "pl", "iso-8859-2", - "rs", "iso-8859-2", - "ro", "iso-8859-2", - "ru", "koi8-r", - "sk", "iso-8859-2", - "sl", "iso-8859-2", - "sr", "iso-8859-2", - "th", "iso-8859-11", - "tr", "iso-8859-9", - "uk", "koi8-u", +static std::unordered_map lang_to_code { + {"be", "cp1251"}, + {"bg", "cp1251"}, + {"cs", "iso-8859-2"}, + {"el", "iso-8859-7"}, + {"he", "iso-8859-8"}, + {"hr", "iso-8859-2"}, + {"hu", "iso-8859-2"}, + {"ja", "eucjp"}, + {"kk", "pt154"}, + {"ko", "euckr"}, + {"lt", "iso-8859-13"}, + {"lv", "iso-8859-13"}, + {"pl", "iso-8859-2"}, + {"rs", "iso-8859-2"}, + {"ro", "iso-8859-2"}, + {"ru", "koi8-r"}, + {"sk", "iso-8859-2"}, + {"sl", "iso-8859-2"}, + {"sr", "iso-8859-2"}, + {"th", "iso-8859-11"}, + {"tr", "iso-8859-9"}, + {"uk", "koi8-u"}, }; - static const string cstr_cp1252("CP1252"); string langtocode(const string& lang) { - static std::unordered_map lang_to_code; - if (lang_to_code.empty()) { - for (unsigned int i = 0; - i < sizeof(vlang_to_code) / sizeof(char *); i += 2) { - lang_to_code[vlang_to_code[i]] = vlang_to_code[i + 1]; - } - } - std::unordered_map::const_iterator it = - lang_to_code.find(lang); + const auto it = lang_to_code.find(lang); // Use cp1252 by default... if (it == lang_to_code.end()) {