summaryrefslogtreecommitdiff
path: root/src/win32
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-06-23 09:45:15 -0400
committerAdam <Adam@anope.org>2014-06-23 09:45:15 -0400
commitfd9bb0ea7e3c8a39f1632c2ebbdc25d0fac192a0 (patch)
tree1d68e86065e0b012aee41533d4f9b289ee0707ac /src/win32
parent148b26f687ce85dc01e852a2358b03d493757ada (diff)
parent9a947fa4359c667be58ebae4634d9ac0e53d5db4 (diff)
Merge branch '2.0' into 2.1
Conflicts: cmake/Anope.cmake cmake/FindGettext.cmake include/access.h include/messages.h include/modes.h include/modules.h include/users.h modules/CMakeLists.txt modules/commands/bs_bot.cpp modules/commands/cs_access.cpp modules/commands/cs_ban.cpp modules/commands/cs_clone.cpp modules/commands/cs_flags.cpp modules/commands/cs_info.cpp modules/commands/cs_list.cpp modules/commands/cs_log.cpp modules/commands/cs_mode.cpp modules/commands/cs_status.cpp modules/commands/cs_suspend.cpp modules/commands/cs_updown.cpp modules/commands/cs_xop.cpp modules/commands/ms_check.cpp modules/commands/ns_access.cpp modules/commands/ns_cert.cpp modules/commands/ns_group.cpp modules/commands/ns_register.cpp modules/commands/ns_set.cpp modules/commands/ns_suspend.cpp modules/commands/os_session.cpp modules/commands/os_svs.cpp modules/extra/m_ldap_authentication.cpp modules/extra/m_regex_pcre.cpp modules/extra/m_sql_authentication.cpp modules/extra/stats/m_chanstats.cpp modules/protocol/bahamut.cpp modules/protocol/hybrid.cpp modules/protocol/inspircd12.cpp modules/protocol/inspircd20.cpp modules/protocol/unreal.cpp modules/pseudoclients/chanserv.cpp modules/pseudoclients/chanserv/channel.cpp modules/pseudoclients/nickserv/nickserv.cpp modules/webcpanel/pages/chanserv/access.cpp src/access.cpp src/bots.cpp src/channels.cpp src/language.cpp src/modes.cpp src/modulemanager.cpp src/process.cpp src/users.cpp src/version.sh
Diffstat (limited to 'src/win32')
-rw-r--r--src/win32/anope_windows.h2
-rw-r--r--src/win32/dl/dl.cpp3
-rw-r--r--src/win32/windows.cpp17
3 files changed, 14 insertions, 8 deletions
diff --git a/src/win32/anope_windows.h b/src/win32/anope_windows.h
index f2a496c33..061934752 100644
--- a/src/win32/anope_windows.h
+++ b/src/win32/anope_windows.h
@@ -74,7 +74,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/dl/dl.cpp b/src/win32/dl/dl.cpp
index b7ffddaa3..5b19d7441 100644
--- a/src/win32/dl/dl.cpp
+++ b/src/win32/dl/dl.cpp
@@ -15,7 +15,8 @@ void *dlopen(const char *filename, int)
char *dlerror(void)
{
- static Anope::string err = Anope::LastError();
+ static Anope::string err;
+ err = Anope::LastError();
SetLastError(0);
return err.empty() ? NULL : const_cast<char *>(err.c_str());
}
diff --git a/src/win32/windows.cpp b/src/win32/windows.cpp
index 319bebf58..a70ff53c3 100644
--- a/src/win32/windows.cpp
+++ b/src/win32/windows.cpp
@@ -20,12 +20,13 @@
static struct WindowsLanguage
{
- const char *languageName;
+ Anope::string languageName;
USHORT windowsLanguageName;
} WindowsLanguages[] = {
{"ca_ES", LANG_CATALAN},
{"de_DE", LANG_GERMAN},
{"el_GR", LANG_GREEK},
+ {"en_US", LANG_ENGLISH},
{"es_ES", LANG_SPANISH},
{"fr_FR", LANG_FRENCH},
{"hu_HU", LANG_HUNGARIAN},
@@ -35,7 +36,6 @@ static struct WindowsLanguage
{"pt_PT", LANG_PORTUGUESE},
{"ru_RU", LANG_RUSSIAN},
{"tr_TR", LANG_TURKISH},
- {NULL, 0}
};
static WSADATA wsa;
@@ -51,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;
}