X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c1fa940272690e30643edb754da05cb9f8b3dbbc..6b5d2431fc188c03bd43ef69b5ad3197646c9289:/include/wx/wxchar.h diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index aa2ff4a0a2..026d9d612c 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -14,7 +14,9 @@ #ifndef _WX_WXCHAR_H_ #define _WX_WXCHAR_H_ -#include "wx/defs.h" /* for wxUSE_UNICODE */ +/* defs.h indirectly includes this file, so don't include it here */ +#include "wx/platform.h" +#include "wx/dlimpexp.h" #if defined(HAVE_STRTOK_R) && defined(__DARWIN__) && defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS char *strtok_r(char *, const char *, char **); @@ -48,7 +50,7 @@ /* Standard headers we need here. - NB: don't include any wxWidgets headers here because almost of them include + NB: don't include any wxWidgets headers here because almost all of them include this one! */ @@ -230,7 +232,8 @@ #if !wxUSE_UNICODE #define _T(x) x #else /* Unicode */ - #define _T(x) L ## x + /* use wxCONCAT_HELPER so that x could be expanded if it's a macro */ + #define _T(x) wxCONCAT_HELPER(L, x) #endif /* ASCII/Unicode */ #endif /* !defined(_T) */ @@ -239,20 +242,20 @@ /* and _() in wxWidgets sources */ #define wxT(x) _T(x) +/* a helper macro allowing to make another macro Unicode-friendly, see below */ +#define wxAPPLY_T(x) _T(x) + /* Unicode-friendly __FILE__, __DATE__ and __TIME__ analogs */ #ifndef __TFILE__ - #define __XFILE__(x) wxT(x) - #define __TFILE__ __XFILE__(__FILE__) + #define __TFILE__ wxAPPLY_T(__FILE__) #endif #ifndef __TDATE__ - #define __XDATE__(x) wxT(x) - #define __TDATE__ __XDATE__(__DATE__) + #define __TDATE__ wxAPPLY_T(__DATE__) #endif #ifndef __TTIME__ - #define __XTIME__(x) wxT(x) - #define __TTIME__ __XTIME__(__TIME__) + #define __TTIME__ wxAPPLY_T(__TIME__) #endif /* @@ -877,7 +880,8 @@ WXDLLIMPEXP_BASE bool wxOKlibc(); /* for internal use */ #if defined(HAVE__VSNWPRINTF) #define wxVsnprintf_ _vsnwprintf /* MinGW?MSVCRT has the wrong vswprintf */ - #elif defined(HAVE_VSWPRINTF) && !defined(__MINGW32__) + /* Mac OS X has a somehow buggy vswprintf */ + #elif defined(HAVE_VSWPRINTF) && !defined(__MINGW32__) && !defined(__DARWIN__) #define wxVsnprintf_ vswprintf #endif #else /* ASCII */