diff options
author | Adam <Adam@anope.org> | 2014-06-10 22:00:00 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2014-06-10 22:00:26 -0400 |
commit | 8066378471d5cecc5eeb3b9c2752fc684df33d50 (patch) | |
tree | a98fe995ed505317017d6b3994b9708760aec778 /src/win32 | |
parent | ab27b792b051f61336c2243bef2750f4abb53cfc (diff) |
Fix WindowsGetLanguage()
Diffstat (limited to 'src/win32')
-rw-r--r-- | src/win32/anope_windows.h | 2 | ||||
-rw-r--r-- | src/win32/windows.cpp | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/win32/anope_windows.h b/src/win32/anope_windows.h index ad561f9b3..e534d7927 100644 --- a/src/win32/anope_windows.h +++ b/src/win32/anope_windows.h @@ -68,7 +68,7 @@ namespace Anope extern CoreExport void OnStartup(); extern CoreExport void OnShutdown(); -extern CoreExport USHORT WindowsGetLanguage(const char *lang); +extern CoreExport USHORT WindowsGetLanguage(const Anope::string &lang); extern CoreExport int gettimeofday(timeval *tv, void *); extern CoreExport Anope::string GetWindowsVersion(); extern CoreExport bool SupportedWindowsVersion(); diff --git a/src/win32/windows.cpp b/src/win32/windows.cpp index 04eb2fae3..3ef1bcfa9 100644 --- a/src/win32/windows.cpp +++ b/src/win32/windows.cpp @@ -20,7 +20,7 @@ static struct WindowsLanguage { - const char *languageName; + Anope::string languageName; USHORT windowsLanguageName; } WindowsLanguages[] = { {"ca_ES", LANG_CATALAN}, @@ -36,7 +36,6 @@ static struct WindowsLanguage {"pt_PT", LANG_PORTUGUESE}, {"ru_RU", LANG_RUSSIAN}, {"tr_TR", LANG_TURKISH}, - {NULL, 0} }; static WSADATA wsa; @@ -52,11 +51,16 @@ void OnShutdown() WSACleanup(); } -USHORT WindowsGetLanguage(const char *lang) +USHORT WindowsGetLanguage(const Anope::string &lang) { - for (int i = 0; WindowsLanguages[i].languageName; ++i) - if (!strcmp(lang, WindowsLanguages[i].languageName)) - return WindowsLanguages[i].windowsLanguageName; + for (int i = 0; i < sizeof(WindowsLanguages) / sizeof(WindowsLanguage); ++i) + { + WindowsLanguage &l = WindowsLanguages[i]; + + if (lang == l.languageName || !lang.find(l.languageName + ".")) + return l.windowsLanguageName; + } + return LANG_NEUTRAL; } |