]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wxchar.cpp
fix for focus handling when deleting the items
[wxWidgets.git] / src / common / wxchar.cpp
index ea538f5fc0b16a4f6071dab745cb7322db7a037f..d404a98cb8a36fb3c0351d6505b87d8cd9596efd 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__)
 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) &&
   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
       (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
     if ((strlen(cur_locale) < 4) ||
        (strcasecmp(cur_locale + strlen(cur_locale) - 4, "utf8"))) {
       // nope, don't use libc conversion
@@ -168,6 +168,19 @@ int WXDLLEXPORT wxStricmp(const wxChar *psz1, const wxChar *psz2)
 }
 #endif
 
 }
 #endif
 
+#ifndef wxStricmp
+int WXDLLEXPORT wxStrnicmp(const wxChar *s1, const wxChar *s2, size_t n)
+{
+  register wxChar c1, c2;
+  while (n && ((c1 = wxTolower(*s1)) == (c2 = wxTolower(*s2)) ) && c1) n--, s1++, s2++;
+  if (n) {
+    if (c1 < c2) return -1;
+    if (c1 > c2) return 1;
+  }
+  return 0;
+}
+#endif
+
 #ifndef wxStrtok
 WXDLLEXPORT wxChar * wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_ptr)
 {
 #ifndef wxStrtok
 WXDLLEXPORT wxChar * wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_ptr)
 {