#define wxHAVE_TCHAR_SUPPORT
#endif /* compilers with (good) TCHAR support */
-#ifdef __MWERKS__
- #define HAVE_WPRINTF
-#endif
+#if defined(__MWERKS__)
+ /* Metrowerks only has wide char support for OS X >= 10.3 */
+ #if !defined(__DARWIN__) || \
+ (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)
+ #define wxHAVE_MWERKS_UNICODE
+ #endif
+
+ #ifdef wxHAVE_MWERKS_UNICODE
+ #define HAVE_WPRINTF
+ #endif
+#endif /* __MWERKS__ */
#ifdef wxHAVE_TCHAR_SUPPORT
/* get TCHAR definition if we've got it */
So use our own replacements in both cases.
*/
- #if defined(__MWERKS__)
+ #if defined(__MWERKS__) && defined(__MSL__)
#define wxNEED_WX_MBSTOWCS
#endif
#define wxWcstombs wcstombs
#endif
- /* No UNICODE in the c library except wchar_t typedef on mac OSX 10.2 and less - roll our own */
- #if !defined(__MWERKS__) && wxUSE_UNICODE && defined(__DARWIN__) && ( MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_2 )
-
+ /*
+ The system C library on Mac OS X 10.2 and below does not support
+ unicode: in other words all wide-character functions such as towupper et
+ al. do simply not exist so we need to provide our own in that context,
+ except for the wchar_t definition/typedef itself.
+
+ We need to do this for both project builder and CodeWarrior as
+ the latter uses the system C library in Mach builds for wide character
+ support, which as mentioned does not exist on 10.2 and below.
+ */
+ #if wxUSE_UNICODE && \
+ defined(__DARWIN__) && \
+ ( MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_2 )
/* we need everything! */
#define wxNEED_WX_STRING_H
#define wxNEED_WX_CTYPE_H
*/
#ifndef wxVsnprintf_
#if wxUSE_UNICODE
- #if defined(__MWERKS__)
+ #ifdef wxHAVE_MWERKS_UNICODE
#define HAVE_WCSRTOMBS 1
#define HAVE_VSWPRINTF 1
- #endif
+ #endif /* Metrowerks with Unicode support */
#if defined(__WATCOMC__)
#define wxVsnprintf_ _vsnwprintf
#define wxSnprintf_ _snwprintf
- #endif
+ #endif /* Watcom */
#if defined(HAVE__VSNWPRINTF)
#define wxVsnprintf_ _vsnwprintf
/* MinGW?MSVCRT has the wrong vswprintf */