#define wxHAVE_TCHAR_SUPPORT
#endif // compilers with (good) TCHAR support
+#ifdef __MWERKS__
+ #define HAVE_WPRINTF
+#endif
+
#ifdef wxHAVE_TCHAR_SUPPORT
// get TCHAR definition if we've got it
#include <tchar.h>
#define wxNEED_WX_STDIO_H
#define wxNEED_WX_STDLIB_H
#define wxNEED_WX_TIME_H
- #else // !glibc
+ #elif defined(__MWERKS__) && ( defined(macintosh) || defined(__MACH__) )
+ // ctype.h functions (wctype.h)
+ #define wxIsalnum iswalnum
+ #define wxIsalpha iswalpha
+ #define wxIsctrl iswcntrl
+ #define wxIsdigit iswdigit
+ #define wxIsgraph iswgraph
+ #define wxIslower iswlower
+ #define wxIsprint iswprint
+ #define wxIspunct iswpunct
+ #define wxIsspace iswspace
+ #define wxIsupper iswupper
+ #define wxIsxdigit iswxdigit
+ #define wxTolower towlower
+ #define wxToupper towupper
+
+ // string.h functions (wchar.h)
+ #define wxStrcat wcscat
+ #define wxStrchr wcschr
+ #define wxStrcmp wcscmp
+ #define wxStrcoll wcscoll
+ #define wxStrcpy wcscpy
+ #define wxStrcspn wcscspn
+ #define wxStrlen_ wxWcslen // wxStrlen_() is used in wxStrlen()
+ #define wxStrncat wcsncat
+ #define wxStrncmp wcsncmp
+ #define wxStrncpy wcsncpy
+ #define wxStrpbrk wcspbrk
+ #define wxStrrchr wcsrchr
+ #define wxStrspn wcsspn
+ #define wxStrstr wcsstr
+ #define wxStrtod wcstod
+ #define wxStrtol wcstol
+ #define wxStrtoul wcstoul
+ #define wxStrxfrm wcsxfrm
+
+ #define wxFgetc fgetwc
+ #define wxFgetchar fgetwchar
+ #define wxFgets fgetws
+ #define wxFputc fputwc
+ #define wxFputchar fputwchar
+ #define wxGetc getwc
+ #define wxGetchar getwchar
+ #define wxGets getws
+ #define wxUngetc ungetwc
+
+ #define wxNEED_PRINTF_CONVERSION
+
+ #define wxPutc putwc
+ #define wxPutchar putwchar
+ #define wxFputs fputws
+
+ // stdio.h functions
+
+ #define wxNEED_WX_STDIO_H
+
+ // stdlib.h functions
+ #define wxAtof watof
+ #define wxAtoi watoi
+ #define wxAtol watol
+ #define wxGetenv(a) ((wxChar*)NULL)
+ #define wxSystem(a) ((int)NULL)
+
+ // time.h functions
+ #define wxAsctime wasciitime
+ #define wxCtime wctime
+ #define wxStrftime wcsftime
+
+ /*
+ #define wxNEED_FPUTWC
+
+ #include <stdio.h>
+
+ int wxFputs(const wxChar *ch, FILE *stream);
+ int wxPutc(wxChar ch, FILE *stream);
+
+ #define wxPuts(ws) wxFputs(ws, stdout)
+ #define wxPutchar(wch) wxPutc(wch, stdout)
+
+ // we need %s to %ls conversion for printf and scanf etc
+ #define wxNEED_PRINTF_CONVERSION
+ // glibc doesn't have wide char equivalents of the other stuff so
+ // use our own versions
+ #define wxNEED_WX_STDIO_H
+ #define wxNEED_WX_STDLIB_H
+ #define wxNEED_WX_TIME_H
+ */
+ #else // !metrowerks for apple
#error "Please define wide character functions for your environment"
#endif
#else // ASCII
defined(__EMX__) || defined(__DJGPP__)
#define wxStricmp stricmp
#define wxStrnicmp strnicmp
- #elif defined(__SC__) || defined(__VISUALC__) || \
+ #elif defined(__SYMANTEC__) || defined(__VISUALC__) || \
(defined(__MWERKS__) && defined(__INTEL__))
#define wxStricmp _stricmp
#define wxStrnicmp _strnicmp
// printf() family saga
// ----------------------------------------------------------------------------
+/*
+ For some systems vsnprintf() exists in the system libraries but not in the
+ headers, so we need to declare it ourselves to be able to use it.
+ */
+#if defined(HAVE_VSNPRINTF) && !defined(HAVE_VSNPRINTF_DECL)
+ extern "C"
+ int vsnprintf(char *str, size_t size, const char *format, va_list ap);
+#endif // !HAVE_VSNPRINTF_DECL
+
/*
First of all, we always want to define safe snprintf() function to be used
instead of sprintf(). Some compilers already have it (or rather vsnprintf()
*/
#ifndef wxVsnprintf_
#if wxUSE_UNICODE
+ #if defined(__MWERKS__)
+ #define HAVE_WCSRTOMBS 1
+ #define HAVE_VSWPRINTF 1
+ #endif
#if defined(HAVE__VSNWPRINTF)
#define wxVsnprintf_ _vsnwprintf
/* MinGW?MSVCRT has the wrong vswprintf */
// time.h functions
#ifdef wxNEED_WX_TIME_H
+#if defined(__MWERKS__) && defined(macintosh)
+ #include <time.h>
+#endif
WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max,
const wxChar *fmt, const struct tm *tm);
#endif // wxNEED_WX_TIME_H