]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wxchar.cpp
* wxSocket seems to work with the async requester turned off.
[wxWidgets.git] / src / common / wxchar.cpp
index f95e5d6c8fb6157f353844563790e6027c5d0b2f..fba42b93527ae00051234295f354fa8cb9d9a095 100644 (file)
   #include "wx/hash.h"
 #endif
 
+#if defined(__WIN32__) && defined(wxNEED_WX_CTYPE_H)
+#include <windef.h>
+#include <winbase.h>
+#include <winnls.h>
+#include <winnt.h>
+#endif
+
 #if wxUSE_WCHAR_T
 size_t WXDLLEXPORT wxMB2WC(wchar_t *buf, const char *psz, size_t n)
 {
@@ -106,15 +113,38 @@ bool WXDLLEXPORT wxOKlibc()
   return TRUE;
 }
 
-#ifdef wxNEED_WCSLEN
+#ifndef HAVE_WCSLEN
 size_t   WXDLLEXPORT wcslen(const wchar_t *s)
 {
-  size_t len;
+  size_t len = 0;
   while (s[len]) len++;
   return len;
 }
 #endif
 
+#if defined(__WIN32__) && defined(wxNEED_WX_CTYPE_H)
+inline WORD wxMSW_ctype(wxChar ch)
+{
+  WORD ret;
+  GetStringTypeEx(LOCALE_USER_DEFAULT, CT_CTYPE1, &ch, 1, &ret);
+  return ret;
+}
+
+int WXDLLEXPORT wxIsalnum(wxChar ch) { return IsCharAlphaNumeric(ch); }
+int WXDLLEXPORT wxIsalpha(wxChar ch) { return IsCharAlpha(ch); }
+int WXDLLEXPORT wxIsctrl(wxChar ch) { return wxMSW_ctype(ch) & C1_CNTRL; }
+int WXDLLEXPORT wxIsdigit(wxChar ch) { return wxMSW_ctype(ch) & C1_DIGIT; }
+int WXDLLEXPORT wxIsgraph(wxChar ch) { return wxMSW_ctype(ch) & (C1_DIGIT|C1_PUNCT|C1_ALPHA); }
+int WXDLLEXPORT wxIslower(wxChar ch) { return IsCharLower(ch); }
+int WXDLLEXPORT wxIsprint(wxChar ch) { return wxMSW_ctype(ch) & (C1_DIGIT|C1_SPACE|C1_PUNCT|C1_ALPHA); }
+int WXDLLEXPORT wxIspunct(wxChar ch) { return wxMSW_ctype(ch) & C1_PUNCT; }
+int WXDLLEXPORT wxIsspace(wxChar ch) { return wxMSW_ctype(ch) & C1_SPACE; }
+int WXDLLEXPORT wxIsupper(wxChar ch) { return IsCharUpper(ch); }
+int WXDLLEXPORT wxIsxdigit(wxChar ch) { return wxMSW_ctype(ch) & C1_XDIGIT; }
+int WXDLLEXPORT wxTolower(wxChar ch) { return (wxChar)CharLower((LPTSTR)(ch)); }
+int WXDLLEXPORT wxToupper(wxChar ch) { return (wxChar)CharUpper((LPTSTR)(ch)); }
+#endif
+
 #ifndef wxStrdup
 wxChar * WXDLLEXPORT wxStrdup(const wxChar *psz)
 {