]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wxchar.cpp
1. fixes for DrawRotatedText(), drawing sample extended to show it
[wxWidgets.git] / src / common / wxchar.cpp
index 1ef378cda3939af6378cb54e6b21012be9850faa..f5f989701ad396be7c026dc8330eb1ac97ef9386 100644 (file)
@@ -63,7 +63,7 @@ size_t WXDLLEXPORT wxMB2WC(wchar_t *buf, const char *psz, size_t n)
 #if wxUSE_WCSRTOMBS
   // don't know if it's really needed (or if we can pass NULL), but better safe
   // than quick
-  mbstate_t mbstate;  
+  mbstate_t mbstate;
   return mbsrtowcs((wchar_t *) NULL, &psz, 0, &mbstate);
 #else  // !GNU libc
   return mbstowcs((wchar_t *) NULL, psz, 0);
@@ -86,7 +86,7 @@ size_t WXDLLEXPORT wxWC2MB(char *buf, const wchar_t *pwz, size_t n)
 #if wxUSE_WCSRTOMBS
   // don't know if it's really needed (or if we can pass NULL), but better safe
   // than quick
-  mbstate_t mbstate;  
+  mbstate_t mbstate;
   return wcsrtombs((char *) NULL, &pwz, 0, &mbstate);
 #else  // !GNU libc
   return wcstombs((char *) NULL, pwz, 0);
@@ -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