X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..6e040042bae080a3fe8907e3772c103deab91c13:/src/common/wxchar.cpp?ds=sidebyside diff --git a/src/common/wxchar.cpp b/src/common/wxchar.cpp index ea538f5fc0..d404a98cb8 100644 --- a/src/common/wxchar.cpp +++ b/src/common/wxchar.cpp @@ -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 @@ -168,6 +168,19 @@ int WXDLLEXPORT wxStricmp(const wxChar *psz1, const wxChar *psz2) } #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) {