X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03e11df5470fd64d9d9a669d0b50b84c2d714736..8366ae934aab9f835747b0c2e456231e8795fe78:/include/wx/wxchar.h diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index 2bd6a65114..55cf190209 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -63,6 +63,11 @@ #define wxHAVE_TCHAR_FUNCTIONS #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x520) #define wxHAVE_TCHAR_FUNCTIONS + #elif defined(__GNUWIN32__) && wxCHECK_W32API_VERSION( 1, 0 ) + #define wxHAVE_TCHAR_FUNCTIONS + #include + #include + #include #endif #elif defined(__VISAGECPP__) && (__IBMCPP__ >= 400) // VisualAge 4.0+ supports TCHAR @@ -116,6 +121,12 @@ # include # if wxUSE_UNICODE // temporary - preserve binary compatibility +#if defined(__GNUWIN32__) + #define _TCHAR TCHAR + #define _TSCHAR TCHAR + #define _TUCHAR TCHAR +#endif + typedef _TCHAR wxChar; typedef _TSCHAR wxSChar; typedef _TUCHAR wxUChar; @@ -165,6 +176,7 @@ typedef _TUCHAR wxUChar; # define wxStrcspn _tcscspn # define wxStrftime _tcsftime # define wxStricmp _tcsicmp +# define wxStrnicmp _tcsnicmp # define wxStrlen_ _tcslen // used in wxStrlen inline function # define wxStrncat _tcsncat # define wxStrncmp _tcsncmp @@ -253,7 +265,7 @@ typedef _TUCHAR wxUChar; # if defined(__VISUALC__) && (__VISUALC__ < 900) # define wxUSE_WCHAR_T 0 // wchar_t is not available for MSVC++ 1.5 # elif defined(__UNIX__) -# if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) +# if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || (defined(__DARWIN__)) # define wxUSE_WCHAR_T 1 # else # define wxUSE_WCHAR_T 0 @@ -276,11 +288,11 @@ typedef _TUCHAR wxUChar; # ifdef HAVE_WCSTR_H # include # else -# ifndef __FreeBSD__ -# include -# else +# if defined(__FreeBSD__) || defined(__DARWIN__) # include # define wxNEED_WCSLEN +# else +# include # endif # endif # endif @@ -366,7 +378,7 @@ typedef unsigned __WCHAR_TYPE__ wxUChar; # define wxUChar unsigned char # endif -# if defined(__FreeBSD__) || (defined(__APPLE__) && defined(__UNIX__)) +# if defined(__FreeBSD__) || defined(__DARWIN__) # undef _T # endif @@ -511,11 +523,11 @@ typedef unsigned __WCHAR_TYPE__ wxUChar; #endif // checks whether the passed in pointer is NULL and if the string is empty -WXDLLEXPORT inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; } +inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; } #ifndef wxNEED_WX_STRING_H // safe version of strlen() (returns 0 if passed NULL pointer) -WXDLLEXPORT inline size_t wxStrlen(const wxChar *psz) +inline size_t wxStrlen(const wxChar *psz) { return psz ? wxStrlen_(psz) : 0; } #endif @@ -555,6 +567,10 @@ WXDLLEXPORT wxChar * wxStrdup(const wxChar *psz); WXDLLEXPORT int wxStricmp(const wxChar *psz1, const wxChar *psz2); #endif +#ifndef wxStrnicmp +WXDLLEXPORT int wxStrnicmp(const wxChar *psz1, const wxChar *psz2, size_t len); +#endif + #ifndef wxStrtok WXDLLEXPORT wxChar * wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_ptr); #endif @@ -637,6 +653,13 @@ WXDLLEXPORT int wxSystem(const wxChar *psz); WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const struct tm *tm); #endif +// under VC++ 6.0 isspace() returns 1 for 8 bit chars which completely breaks +// the file parsing - this may be true for 5.0 as well, update #ifdef then +#if defined(__VISUALC__) && (__VISUALC__ >= 1200) && !wxUSE_UNICODE + #undef wxIsspace + #define wxIsspace(c) ((((unsigned)c) < 128) && isspace(c)) +#endif // VC++ + // ---------------------------------------------------------------------------- // common macros which are always defined // ----------------------------------------------------------------------------