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:
@@ -168,32 +168,7 @@ typedef _TUCHAR wxUChar;
|
|||||||
#undef wxUSE_WCHAR_T
|
#undef wxUSE_WCHAR_T
|
||||||
#define wxUSE_WCHAR_T 1
|
#define wxUSE_WCHAR_T 1
|
||||||
|
|
||||||
#include <windef.h>
|
#define wxNEED_WX_CTYPE_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 wxStrtok strtok_r // Borland C++ 4.52 doesn't have strtok_r
|
// #define wxStrtok strtok_r // Borland C++ 4.52 doesn't have strtok_r
|
||||||
#define wxNEED_WX_STRING_H
|
#define wxNEED_WX_STRING_H
|
||||||
#define wxNEED_WX_STDIO_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);
|
size_t WXDLLEXPORT wcslen(const wchar_t *s);
|
||||||
#endif
|
#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
|
#ifdef wxNEED_WX_STRING_H
|
||||||
wxChar * WXDLLEXPORT wxStrcat(wxChar *dest, const wxChar *src);
|
wxChar * WXDLLEXPORT wxStrcat(wxChar *dest, const wxChar *src);
|
||||||
wxChar * WXDLLEXPORT wxStrchr(const wxChar *s, wxChar c);
|
wxChar * WXDLLEXPORT wxStrchr(const wxChar *s, wxChar c);
|
||||||
|
@@ -39,6 +39,13 @@
|
|||||||
#include "wx/hash.h"
|
#include "wx/hash.h"
|
||||||
#endif
|
#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
|
#if wxUSE_WCHAR_T
|
||||||
size_t WXDLLEXPORT wxMB2WC(wchar_t *buf, const char *psz, size_t n)
|
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
|
#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
|
#ifndef wxStrdup
|
||||||
wxChar * WXDLLEXPORT wxStrdup(const wxChar *psz)
|
wxChar * WXDLLEXPORT wxStrdup(const wxChar *psz)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user