X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..1a6a6043f79b8b12958e6cb09d443213a969507d:/include/wx/wxchar.h diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index ea2a3696da..462da579d6 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -63,12 +63,15 @@ #define wxHAVE_TCHAR_FUNCTIONS #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x520) #define wxHAVE_TCHAR_FUNCTIONS - // w32api isn't yet tchar safe, will be soon, this is a placeholder - #elif defined(__GNUWIN32__) && wxCHECK_W32API_VERSION( 10, 0 ) + #elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 ) #define wxHAVE_TCHAR_FUNCTIONS #include #include #include + #elif defined(__CYGWIN__) + #define HAVE_WCSLEN + #include + #include #endif #elif defined(__VISAGECPP__) && (__IBMCPP__ >= 400) // VisualAge 4.0+ supports TCHAR @@ -114,6 +117,11 @@ // time.h functions -- none defined in tchar.h #define wxAsctime asctime #define wxCtime ctime +#elif defined(__MWERKS__) + // for wcslen + #if wxUSE_WCHAR_T + #include + #endif #endif // compilers with (good) TCHAR support #ifdef wxHAVE_TCHAR_FUNCTIONS @@ -194,6 +202,13 @@ typedef _TUCHAR wxUChar; // stdio.h functions #ifndef wxNO_TCHAR_STDIO +# if wxUSE_UNICODE_MSLU +# define wxRemove wxMSLU__tremove +# define wxRename wxMSLU__trename +# else +# define wxRemove _tremove +# define wxRename _trename +# endif # define wxFgetc _fgettc # define wxFgetchar _fgettchar # define wxFgets _fgetts @@ -211,8 +226,6 @@ typedef _TUCHAR wxUChar; # define wxPutc _puttc # define wxPutchar _puttchar # define wxPuts _putts -# define wxRemove _tremove -# define wxRename _trename # define wxScanf _tscanf # define wxSprintf _stprintf # define wxSscanf _stscanf @@ -266,7 +279,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__) || (defined(__APPLE__) && defined(__UNIX__)) +# if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || defined(__DARWIN__) # define wxUSE_WCHAR_T 1 # else # define wxUSE_WCHAR_T 0 @@ -277,8 +290,8 @@ typedef _TUCHAR wxUChar; # define wxUSE_WCHAR_T 0 # elif defined(__WATCOMC__) # define wxUSE_WCHAR_T 0 -# elif defined(__VISAGECPP__) && (__IBMCPP__ >= 400) -# define wxUSE_WCHAR_T 1 +# elif defined(__VISAGECPP__) && (__IBMCPP__ < 400) +# define wxUSE_WCHAR_T 0 # else // add additional compiler checks if this fails # define wxUSE_WCHAR_T 1 @@ -289,11 +302,17 @@ typedef _TUCHAR wxUChar; # ifdef HAVE_WCSTR_H # include # else -# if defined(__FreeBSD__) || (defined(__APPLE__) && defined(__UNIX__)) -# include -# define wxNEED_WCSLEN -# else +# if defined(HAVE_WCHAR_H) + +// include wchar.h to get wcslen() declaration used by wx/buffer.h # include + +# elif defined(__FreeBSD__) || defined(__DARWIN__) || defined(__EMX__) + +// include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp +# include +size_t WXDLLEXPORT wcslen(const wchar_t *s); + # endif # endif # endif @@ -379,7 +398,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 @@ -426,7 +445,7 @@ typedef unsigned __WCHAR_TYPE__ wxUChar; // define wxStricmp for various compilers without Unicode possibilities #if !defined(wxStricmp) && !wxUSE_UNICODE -# if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__SALFORDC__) || defined(__VISAGECPP__) || defined(__EMX__) +# if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__SALFORDC__) || defined(__VISAGECPP__) || defined(__EMX__) || defined(__DJGPP__) # define wxStricmp stricmp # define wxStrnicmp strnicmp # elif defined(__SC__) || defined(__VISUALC__) || (defined(__MWERKS__) && defined(__INTEL__)) @@ -453,7 +472,9 @@ typedef unsigned __WCHAR_TYPE__ wxUChar; # define wxStrcoll strcoll # define wxStrcpy strcpy # define wxStrcspn strcspn +#if !defined(__MWERKS__) || !defined(__WXMAC__) # define wxStrdup strdup +#endif # define wxStrlen_ strlen // used in wxStrlen inline function # define wxStrncat strncat # define wxStrncmp strncmp @@ -518,11 +539,6 @@ typedef unsigned __WCHAR_TYPE__ wxUChar; # endif #endif //!Unicode -#if defined(wxNEED_WCSLEN) && wxUSE_UNICODE -# define wcslen wxStrlen -# undef wxNEED_WCSLEN -#endif - // checks whether the passed in pointer is NULL and if the string is empty inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; } @@ -568,6 +584,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 @@ -577,10 +597,6 @@ class wxWCharBuffer; WXDLLEXPORT wxWCharBuffer wxSetlocale(int category, const wxChar *locale); #endif -#ifdef wxNEED_WCSLEN // for use in buffer.h -WXDLLEXPORT size_t wcslen(const wchar_t *s); -#endif - #ifdef wxNEED_WX_CTYPE_H WXDLLEXPORT int wxIsalnum(wxChar ch); WXDLLEXPORT int wxIsalpha(wxChar ch); @@ -666,12 +682,22 @@ WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const // and _() in wxWindows sources #define wxT(x) _T(x) -// a Unicode-friendly __FILE__ analog +// Unicode-friendly __FILE__, __DATE__ and __TIME__ analogs #ifndef __TFILE__ #define __XFILE__(x) wxT(x) #define __TFILE__ __XFILE__(__FILE__) #endif +#ifndef __TDATE__ + #define __XDATE__(x) wxT(x) + #define __TDATE__ __XDATE__(__DATE__) +#endif + +#ifndef __TTIME__ + #define __XTIME__(x) wxT(x) + #define __TTIME__ __XTIME__(__TIME__) +#endif + #endif //_WX_WXCHAR_H_