]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wxchar.cpp
fixed memory allocation code of wxStreamBuffer to not realloc() new[]ed memory any...
[wxWidgets.git] / src / common / wxchar.cpp
index c2deb9b203f7e07da49a1659989851071dda8f37..f9e73aed8a35434b91f3e26ed5327a9179a97027 100644 (file)
@@ -97,13 +97,13 @@ size_t WXDLLEXPORT wxWC2MB(char *buf, const wchar_t *pwz, size_t n)
 bool WXDLLEXPORT wxOKlibc()
 {
 #if wxUSE_WCHAR_T && defined(__UNIX__) && defined(__GLIBC__)
-  // GNU libc uses UTF-8 even when it shouldn't
-  wchar_t res;
+  // glibc 2.0 uses UTF-8 even when it shouldn't
+  wchar_t res = 0;
   if ((MB_CUR_MAX == 2) &&
-      (wxMB2WC(&res, "\xdd\xa5", 1)>0) &&
+      (wxMB2WC(&res, "\xdd\xa5", 1) == 1) &&
       (res==0x765)) {
     // this is UTF-8 allright, check whether that's what we want
-    char *cur_locale = setlocale(LC_ALL, NULL);
+    char *cur_locale = setlocale(LC_CTYPE, NULL);
     if ((strlen(cur_locale) < 4) ||
        (strcasecmp(cur_locale + strlen(cur_locale) - 4, "utf8"))) {
       // nope, don't use libc conversion
@@ -354,6 +354,16 @@ WXDLLEXPORT FILE * wxFreopen(const wxChar *path, const wxChar *mode, FILE *strea
   return freopen(wxConvFile.cWX2MB(path), wxConvLibc.cWX2MB(mode), stream);
 }
 
+WXDLLEXPORT int wxRemove(const wxChar *path)
+{
+  return remove(wxConvFile.cWX2MB(path));
+}
+
+WXDLLEXPORT int wxRename(const wxChar *oldpath, const wxChar *newpath)
+{
+  return rename(wxConvFile.cWX2MB(oldpath), wxConvFile.cWX2MB(newpath));
+}
+
 int WXDLLEXPORT wxPrintf(const wxChar *fmt, ...)
 {
   va_list argptr;