]> git.saurik.com Git - wxWidgets.git/commitdiff
wxSetlocale() doesn't always return NULL
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 6 Dec 1999 14:14:19 +0000 (14:14 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 6 Dec 1999 14:14:19 +0000 (14:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4841 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/wxchar.cpp

index baa67e326d93c1440ea23520f080338abe6107fb..f5f989701ad396be7c026dc8330eb1ac97ef9386 100644 (file)
@@ -191,9 +191,16 @@ WXDLLEXPORT wxChar * wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_pt
 #ifndef wxSetlocale
 WXDLLEXPORT wxChar * wxSetlocale(int category, const wxChar *locale)
 {
-  setlocale(category, wxConvLibc.cWX2MB(locale));
-  // FIXME
-  return (wxChar *)NULL;
+#ifdef wxUSE_THREADS
+    wxASSERT_MSG( wxThread::IsMain(), _T("wxSetlocale() is not MT-safe") );
+#endif
+
+    static wxWCharBuffer s_wzLocale;
+
+    char *localeOld = setlocale(category, wxConvLibc.cWX2MB(locale));
+    s_wzLocale = wxConvLibc.cMB2WC(localeOld);
+
+    return s_wzLocale;
 }
 #endif