merged shared smallut

This commit is contained in:
Jean-Francois Dockes 2018-05-16 18:28:41 +02:00
parent 1c95349ac7
commit 66ebb47437

View File

@ -1177,44 +1177,35 @@ void catstrerror(string *reason, const char *what, int _errno)
} }
static const char *vlang_to_code[] = { static std::unordered_map<string, string> lang_to_code {
"be", "cp1251", {"be", "cp1251"},
"bg", "cp1251", {"bg", "cp1251"},
"cs", "iso-8859-2", {"cs", "iso-8859-2"},
"el", "iso-8859-7", {"el", "iso-8859-7"},
"he", "iso-8859-8", {"he", "iso-8859-8"},
"hr", "iso-8859-2", {"hr", "iso-8859-2"},
"hu", "iso-8859-2", {"hu", "iso-8859-2"},
"ja", "eucjp", {"ja", "eucjp"},
"kk", "pt154", {"kk", "pt154"},
"ko", "euckr", {"ko", "euckr"},
"lt", "iso-8859-13", {"lt", "iso-8859-13"},
"lv", "iso-8859-13", {"lv", "iso-8859-13"},
"pl", "iso-8859-2", {"pl", "iso-8859-2"},
"rs", "iso-8859-2", {"rs", "iso-8859-2"},
"ro", "iso-8859-2", {"ro", "iso-8859-2"},
"ru", "koi8-r", {"ru", "koi8-r"},
"sk", "iso-8859-2", {"sk", "iso-8859-2"},
"sl", "iso-8859-2", {"sl", "iso-8859-2"},
"sr", "iso-8859-2", {"sr", "iso-8859-2"},
"th", "iso-8859-11", {"th", "iso-8859-11"},
"tr", "iso-8859-9", {"tr", "iso-8859-9"},
"uk", "koi8-u", {"uk", "koi8-u"},
}; };
static const string cstr_cp1252("CP1252"); static const string cstr_cp1252("CP1252");
string langtocode(const string& lang) string langtocode(const string& lang)
{ {
static std::unordered_map<string, string> lang_to_code; const auto it = lang_to_code.find(lang);
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<string, string>::const_iterator it =
lang_to_code.find(lang);
// Use cp1252 by default... // Use cp1252 by default...
if (it == lang_to_code.end()) { if (it == lang_to_code.end()) {