Try to not include ctype functions for win32. Not really tested with
Borland C++, as I don't have the machine with BC++ available right now, but it should probably be better anyway... git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
aadbdf11bd
commit
57f6da0dec
@ -168,32 +168,7 @@ typedef _TUCHAR wxUChar;
|
||||
#undef wxUSE_WCHAR_T
|
||||
#define wxUSE_WCHAR_T 1
|
||||
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winnls.h>
|
||||
#include <winnt.h>
|
||||
|
||||
// ctype.h functions
|
||||
inline WORD __wxMSW_ctype(wxChar ch)
|
||||
{
|
||||
WORD ret;
|
||||
GetStringTypeEx(LOCALE_USER_DEFAULT, CT_CTYPE1, &ch, 1, &ret);
|
||||
return ret;
|
||||
}
|
||||
#define wxIsalnum(x) IsCharAlphaNumeric
|
||||
#define wxIsalpha IsCharAlpha
|
||||
#define wxIsctrl(x) (__wxMSW_ctype(x) & C1_CNTRL)
|
||||
#define wxIsdigit(x) (__wxMSW_ctype(x) & C1_DIGIT)
|
||||
#define wxIsgraph(x) (__wxMSW_ctype(x) & (C1_DIGIT|C1_PUNCT|C1_ALPHA))
|
||||
#define wxIslower(x) IsCharLower
|
||||
#define wxIsprint(x) (__wxMSW_ctype(x) & (C1_DIGIT|C1_SPACE|C1_PUNCT|C1_ALPHA))
|
||||
#define wxIspunct(x) (__wxMSW_ctype(x) & C1_PUNCT)
|
||||
#define wxIsspace(x) (__wxMSW_ctype(x) & C1_SPACE)
|
||||
#define wxIsupper(x) IsCharUpper
|
||||
#define wxIsxdigit(x) (__wxMSW_ctype(x) & C1_XDIGIT)
|
||||
#define wxTolower(x) (wxChar)CharLower((LPTSTR)(x))
|
||||
#define wxToupper(x) (wxChar)CharUpper((LPTSTR)(x))
|
||||
|
||||
#define wxNEED_WX_CTYPE_H
|
||||
// #define wxStrtok strtok_r // Borland C++ 4.52 doesn't have strtok_r
|
||||
#define wxNEED_WX_STRING_H
|
||||
#define wxNEED_WX_STDIO_H
|
||||
@ -490,6 +465,22 @@ wxChar * WXDLLEXPORT wxSetlocale(int category, const wxChar *locale);
|
||||
size_t WXDLLEXPORT wcslen(const wchar_t *s);
|
||||
#endif
|
||||
|
||||
#ifdef wxNEED_WX_CTYPE_H
|
||||
int WXDLLEXPORT wxIsalnum(wxChar ch);
|
||||
int WXDLLEXPORT wxIsalpha(wxChar ch);
|
||||
int WXDLLEXPORT wxIsctrl(wxChar ch);
|
||||
int WXDLLEXPORT wxIsdigit(wxChar ch);
|
||||
int WXDLLEXPORT wxIsgraph(wxChar ch);
|
||||
int WXDLLEXPORT wxIslower(wxChar ch);
|
||||
int WXDLLEXPORT wxIsprint(wxChar ch);
|
||||
int WXDLLEXPORT wxIspunct(wxChar ch);
|
||||
int WXDLLEXPORT wxIsspace(wxChar ch);
|
||||
int WXDLLEXPORT wxIsupper(wxChar ch);
|
||||
int WXDLLEXPORT wxIsxdigit(wxChar ch);
|
||||
int WXDLLEXPORT wxTolower(wxChar ch);
|
||||
int WXDLLEXPORT wxToupper(wxChar ch);
|
||||
#endif
|
||||
|
||||
#ifdef wxNEED_WX_STRING_H
|
||||
wxChar * WXDLLEXPORT wxStrcat(wxChar *dest, const wxChar *src);
|
||||
wxChar * WXDLLEXPORT wxStrchr(const wxChar *s, wxChar c);
|
||||
|
@ -39,6 +39,13 @@
|
||||
#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)
|
||||
{
|
||||
@ -115,6 +122,29 @@ size_t WXDLLEXPORT wcslen(const wchar_t *s)
|
||||
}
|
||||
#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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user