X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9e392a09f1d058c5d46e686cea418724e2476f87..aa8e9a36c47673613f080d7578e771fe62261ef1:/include/wx/wxchar.h diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index c4742c529f..68d1a6a1ba 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 - #elif defined(__GNUWIN32__) && wxCHECK_W32API_VERSION( 1, 0 ) + #elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 ) #define wxHAVE_TCHAR_FUNCTIONS #include #include #include #elif defined(__CYGWIN__) + #ifndef HAVE_WCSLEN + #define HAVE_WCSLEN + #endif // !HAVE_WCSLEN #include #include #endif @@ -201,6 +204,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 @@ -218,8 +228,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 @@ -287,29 +295,26 @@ typedef _TUCHAR wxUChar; # elif defined(__VISAGECPP__) && (__IBMCPP__ < 400) # define wxUSE_WCHAR_T 0 # else - // add additional compiler checks if this fails + // add additional compiler checks if this fails # define wxUSE_WCHAR_T 1 # endif # endif // !defined(wxUSE_WCHAR_T) -# if wxUSE_WCHAR_T -# ifdef HAVE_WCSTR_H -# include -# else -# if defined(HAVE_WCHAR_H) - -// include wchar.h to get wcslen() declaration used by wx/buffer.h -# include - -# elif defined(__FreeBSD__) || defined(__DARWIN__) - -// include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp -# include -size_t WXDLLEXPORT wcslen(const wchar_t *s); - -# endif -# endif -# endif +# if wxUSE_WCHAR_T +# ifdef HAVE_WCHAR_H + // include wchar.h to get wcslen() declaration used by wx/buffer.h + // stddef.h is needed for Cygwin +# include +# include +# elif defined(HAVE_WCSTR_H) + // old compilers have wcslen() here +# 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 // HAVE_WCHAR_H +# endif // wxUSE_WCHAR_T // check whether we are doing Unicode # if wxUSE_UNICODE @@ -382,15 +387,9 @@ typedef unsigned __WCHAR_TYPE__ wxUChar; # include # include -# if 0 // temporary - preserve binary compatibilty - typedef char wxChar; - typedef signed char wxSChar; - typedef unsigned char wxUChar; -# else -# define wxChar char -# define wxSChar signed char -# define wxUChar unsigned char -# endif + typedef char wxChar; + typedef signed char wxSChar; + typedef unsigned char wxUChar; # if defined(__FreeBSD__) || defined(__DARWIN__) # undef _T @@ -439,7 +438,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__)) @@ -466,7 +465,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 @@ -607,7 +608,9 @@ WXDLLEXPORT int wxToupper(wxChar ch); #ifdef wxNEED_WX_STRING_H WXDLLEXPORT wxChar * wxStrcat(wxChar *dest, const wxChar *src); -WXDLLEXPORT wxChar * wxStrchr(const wxChar *s, wxChar c); +WXDLLEXPORT const wxChar * wxStrchr(const wxChar *s, wxChar c); +WXDLLEXPORT wxChar * wxStrchr(wxChar *s, wxChar c) + { return (wxChar *)wxStrchr((const wxChar *)s, c); } WXDLLEXPORT int wxStrcmp(const wxChar *s1, const wxChar *s2); WXDLLEXPORT int wxStrcoll(const wxChar *s1, const wxChar *s2); WXDLLEXPORT wxChar * wxStrcpy(wxChar *dest, const wxChar *src); @@ -616,10 +619,16 @@ WXDLLEXPORT size_t wxStrlen(const wxChar *s); WXDLLEXPORT wxChar * wxStrncat(wxChar *dest, const wxChar *src, size_t n); WXDLLEXPORT int wxStrncmp(const wxChar *s1, const wxChar *s2, size_t n); WXDLLEXPORT wxChar * wxStrncpy(wxChar *dest, const wxChar *src, size_t n); -WXDLLEXPORT wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept); -WXDLLEXPORT wxChar * wxStrrchr(const wxChar *s, wxChar c); +WXDLLEXPORT const wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept); +WXDLLEXPORT wxChar * wxStrpbrk(wxChar *s, const wxChar *accept) + { return (wxChar *)wxStrpbrk((const wxChar *)s, accept); } +WXDLLEXPORT const wxChar * wxStrrchr(const wxChar *s, wxChar c); +WXDLLEXPORT wxChar * wxStrrchr(wxChar *s, wxChar c) + { return (wxChar *)wxStrrchr((const wxChar *)s, c); } WXDLLEXPORT size_t wxStrspn(const wxChar *s, const wxChar *accept); -WXDLLEXPORT wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle); +WXDLLEXPORT const wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle); +WXDLLEXPORT wxChar *wxStrstr(wxChar *haystack, const wxChar *needle) + { return (wxChar *)wxStrstr((const wxChar *)haystack, needle); } WXDLLEXPORT double wxStrtod(const wxChar *nptr, wxChar **endptr); WXDLLEXPORT long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base); WXDLLEXPORT unsigned long int wxStrtoul(const wxChar *nptr, wxChar **endptr, int base); @@ -633,13 +642,13 @@ WXDLLEXPORT FILE * wxFopen(const wxChar *path, const wxChar *mode); WXDLLEXPORT FILE * wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream); WXDLLEXPORT int wxRemove(const wxChar *path); WXDLLEXPORT int wxRename(const wxChar *oldpath, const wxChar *newpath); -WXDLLEXPORT int wxPrintf(const wxChar *fmt, ...); +WXDLLEXPORT int wxPrintf(const wxChar *fmt, ...) ATTRIBUTE_PRINTF_1; WXDLLEXPORT int wxVprintf(const wxChar *fmt, va_list argptr); -WXDLLEXPORT int wxFprintf(FILE *stream, const wxChar *fmt, ...); +WXDLLEXPORT int wxFprintf(FILE *stream, const wxChar *fmt, ...) ATTRIBUTE_PRINTF_2; WXDLLEXPORT int wxVfprintf(FILE *stream, const wxChar *fmt, va_list argptr); -WXDLLEXPORT int wxSprintf(wxChar *buf, const wxChar *fmt, ...); +WXDLLEXPORT int wxSprintf(wxChar *buf, const wxChar *fmt, ...) ATTRIBUTE_PRINTF_2; WXDLLEXPORT int wxVsprintf(wxChar *buf, const wxChar *fmt, va_list argptr); -WXDLLEXPORT int wxSscanf(const wxChar *buf, const wxChar *fmt, ...); +WXDLLEXPORT int wxSscanf(const wxChar *buf, const wxChar *fmt, ...) ATTRIBUTE_PRINTF_2; WXDLLEXPORT int wxVsscanf(const wxChar *buf, const wxChar *fmt, va_list argptr); #endif @@ -674,12 +683,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_