X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/11c5b47d9454915aa790ded6cf03613b9e2df12c..dcb139ff26b3fc3b03852c95ae72c3fd7dc5153f:/include/wx/wxchar.h diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index 8929299d84..1ee5b6194a 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -5,7 +5,7 @@ * Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee * Created: 1998/06/12 * RCS-ID: $Id$ - * Copyright: (c) 1998-2002 wxWindows dev team + * Copyright: (c) 1998-2002 wxWidgets dev team * Licence: wxWindows licence */ @@ -48,7 +48,7 @@ /* Standard headers we need here. - NB: don't include any wxWindows headers here because almost of them include + NB: don't include any wxWidgets headers here because almost of them include this one! */ @@ -74,9 +74,9 @@ #endif #endif #if defined(__MWERKS__) && !defined(__MACH__) - #ifndef HAVE_WCSLEN - #define HAVE_WCSLEN - #endif + #ifndef HAVE_WCSLEN + #define HAVE_WCSLEN + #endif #endif #if wxUSE_WCHAR_T @@ -178,7 +178,7 @@ typedef wchar_t wxSChar; typedef wchar_t wxUChar; #else /* __WCHAR_TYPE__ and gcc < 2.96 */ - /* VS: wxWindows used to define wxChar as __WCHAR_TYPE__ here. However, */ + /* VS: wxWidgets used to define wxChar as __WCHAR_TYPE__ here. However, */ /* this doesn't work with new GCC 3.x compilers because wchar_t is */ /* C++'s builtin type in the new standard. OTOH, old compilers (GCC */ /* 2.x) won't accept new definition of wx{S,U}Char, therefore we */ @@ -212,7 +212,7 @@ /* although global macros with such names are normally bad, we want to have */ /* another name for _T() which should be used to avoid confusion between _T() */ -/* and _() in wxWindows sources */ +/* and _() in wxWidgets sources */ #define wxT(x) _T(x) /* Unicode-friendly __FILE__, __DATE__ and __TIME__ analogs */ @@ -254,8 +254,13 @@ #define wxIsspace _istspace #define wxIsupper _istupper #define wxIsxdigit _istxdigit - #define wxTolower _totlower - #define wxToupper _totupper + + /* + There is a bug in VC6 C RTL: toxxx() functions dosn't do anything with + signed chars < 0, so "fix" it here. + */ + #define wxTolower(c) _totlower((wxUChar)(c)) + #define wxToupper(c) _totupper((wxUChar)(c)) /* locale.h functons */ #define wxSetlocale _tsetlocale @@ -415,23 +420,34 @@ #define wxGets getws #define wxUngetc ungetwc - #ifdef HAVE_FPUTWC - #define wxPutc wputc - #define wxPutchar wputchar - #define wxPuts putws - #define wxFputs fputws + #ifdef HAVE_FPUTWS + #define wxFputs fputws #else - #define wxNEED_FPUTWC - + #define wxNEED_FPUTS #include - int wxFputs(const wxChar *ch, FILE *stream); + #endif + + #ifdef HAVE_WPUTC + #define wxPutc wputc + #else + #define wxNEED_PUTC + #include int wxPutc(wxChar ch, FILE *stream); + #endif - #define wxPuts(ws) wxFputs(ws, stdout) + #ifdef HAVE_WPUTCHAR + #define wxPutchar wputchar + #else #define wxPutchar(wch) wxPutc(wch, stdout) #endif + #ifdef HAVE_PUTWS + #define wxPuts putws + #else + #define wxPuts(ws) wxFputs(ws, stdout) + #endif + /* we need %s to %ls conversion for printf and scanf etc */ #define wxNEED_PRINTF_CONVERSION @@ -497,12 +513,15 @@ #define wxNEED_WX_STDIO_H /* stdlib.h functions */ + #ifdef __MACH__ + #define wxNEED_WX_STDLIB_H + #else #define wxAtof watof #define wxAtoi watoi #define wxAtol watol #define wxGetenv(a) ((wxChar*)NULL) #define wxSystem(a) ((int)NULL) - + #endif /* time.h functions */ #define wxAsctime wasciitime #define wxCtime wctime @@ -626,7 +645,7 @@ #elif defined(__UNIX__) || defined(__GNUWIN32__) #define wxStricmp strcasecmp #define wxStrnicmp strncasecmp - /* #else -- use wxWindows implementation */ + /* #else -- use wxWidgets implementation */ #endif #endif /* !defined(wxStricmp) */ @@ -637,6 +656,10 @@ #ifdef HAVE_WCSLEN #define wxWcslen wcslen #else + #if defined( __WXMAC_XCODE__ ) && !defined( __cplusplus ) + /* xcode native targets are giving multiply defined symbols on regex */ + static + #endif inline size_t wxWcslen(const wchar_t *s) { size_t n = 0; @@ -710,7 +733,7 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */ #define wxVsnprintf_ vswprintf #endif #else /* ASCII */ - /* all versions of CodeWarrior supported by wxWindows apparently have */ + /* all versions of CodeWarrior supported by wxWidgets apparently have */ /* vsnprintf() */ #if defined(HAVE_VSNPRINTF) || defined(__MWERKS__) || defined(__WATCOMC__) /* assume we have snprintf() too if we have vsnprintf() */