--- a/src/smallut.cpp
+++ b/src/smallut.cpp
@@ -1177,44 +1177,35 @@
}
-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<string, string> 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<string, string> 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<string, string>::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()) {
@@ -1281,7 +1272,7 @@
} else {
ok = false;
}
- matches.reserve(nmatch+1);
+ matches.resize(nmatch+1);
}
~Internal() {
regfree(&expr);