- // wchar_t is available
- #ifndef wxUSE_WCHAR_T
- #define wxUSE_WCHAR_T 1
- #endif // !defined(wxUSE_WCHAR_T)
-
- // ctype.h functions
-#ifndef wxNO_TCHAR_CTYPE
-#ifdef __BORLANDC__
-# include <ctype.h>
-#endif
-# define wxIsalnum _istalnum
-# define wxIsalpha _istalpha
-# define wxIsctrl _istctrl
-# define wxIsdigit _istdigit
-# define wxIsgraph _istgraph
-# define wxIslower _istlower
-# define wxIsprint _istprint
-# define wxIspunct _istpunct
-# define wxIsspace _istspace
-# define wxIsupper _istupper
-# define wxIsxdigit _istxdigit
-# define wxTolower _totlower
-# define wxToupper _totupper
-#endif // wxNO_TCHAR_CTYPE
-
- // locale.h functons
-#ifndef wxNO_TCHAR_LOCALE
-# define wxSetlocale _tsetlocale
-#endif // wxNO_TCHAR_LOCALE
-
- // string.h functions
-#ifndef wxNO_TCHAR_STRING
-# define wxStrcat _tcscat
-# define wxStrchr _tcschr
-# define wxStrcmp _tcscmp
-# define wxStrcoll _tcscoll
-# define wxStrcpy _tcscpy
-# define wxStrcspn _tcscspn
-# define wxStrftime _tcsftime
-# define wxStricmp _tcsicmp
-# define wxStrnicmp _tcsnicmp
-# define wxStrlen_ _tcslen // used in wxStrlen inline function
-# define wxStrncat _tcsncat
-# define wxStrncmp _tcsncmp
-# define wxStrncpy _tcsncpy
-# define wxStrpbrk _tcspbrk
-# define wxStrrchr _tcsrchr
-# define wxStrspn _tcsspn
-# define wxStrstr _tcsstr
-# define wxStrtod _tcstod
-# define wxStrtol _tcstol
-# define wxStrtoul _tcstoul
-# define wxStrxfrm _tcsxfrm
-#endif // wxNO_TCHAR_STRING
-
- // 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
-# define wxFopen _tfopen
-# define wxFputc _fputtc
-# define wxFputchar _fputtchar
-# define wxFprintf _ftprintf
-# define wxFreopen _tfreopen
-# define wxFscanf _ftscanf
-# define wxGetc _gettc
-# define wxGetchar _gettchar
-# define wxGets _getts
-# define wxPerror _tperror
-# define wxPrintf _tprintf
-# define wxPutc _puttc
-# define wxPutchar _puttchar
-# define wxPuts _putts
-# define wxScanf _tscanf
-# define wxSprintf _stprintf
-# define wxSscanf _stscanf
-# define wxTmpnam _ttmpnam
-# define wxUngetc _tungetc
-# define wxVfprint _vftprintf
-# define wxVprintf _vtprintf
-# define wxVsscanf _vstscanf
-# define wxVsprintf _vstprintf
-#elif defined(__VISAGECPP__) && (__IBMCPP__ >= 400)
- // it has some stdio.h functions, apparently
-# define wxFgetc _fgettc
-# define wxFgets _fgetts
-# define wxFputc _fputtc
-# define wxFprintf _ftprintf
-# define wxFscanf _ftscanf
-# define wxGetc _gettc
-# define wxGetchar _gettchar
-# define wxPrintf _tprintf
-# define wxPutc _puttc
-# define wxPutchar _puttchar
-# define wxScanf _tscanf
-# define wxSprintf _stprintf
-# define wxSscanf _stscanf
-# define wxVfprint _vftprintf
-# define wxVprintf _vtprintf
-# define wxVsprintf _vstprintf
-#endif // wxNO_TCHAR_STDIO
-
- // stdlib.h functions
-#ifndef wxNO_TCHAR_STDLIB
-# if !wxUSE_UNICODE
-# define wxAtof atof
-# endif
-# define wxAtoi _ttoi
-# define wxAtol _ttol
-# define wxGetenv _tgetenv
-# define wxSystem _tsystem
-#endif // wxNO_TCHAR_STDLIB
-
- // time.h functions
-#ifndef wxNO_TCHAR_TIME
-# define wxAsctime _tasctime
-# define wxCtime _tctime
-#endif // wxNO_TCHAR_TIME
-
-#else // !TCHAR-aware compilers
-
-// check whether we should include wchar.h or equivalent
-# if !defined(wxUSE_WCHAR_T)
-# 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(__DARWIN__)
-# define wxUSE_WCHAR_T 1
-# else
-# define wxUSE_WCHAR_T 0
-# endif
-# elif defined(__GNUWIN32__) && !defined(__MINGW32__) // Cygwin (not Mingw32) doesn't have wcslen.h, needed in buffer.h
-# define wxUSE_WCHAR_T 0
-# elif defined(__BORLANDC__) // WIN16 BC++
-# define wxUSE_WCHAR_T 0
-# elif defined(__WATCOMC__)
-# define wxUSE_WCHAR_T 0
-# elif defined(__VISAGECPP__) && (__IBMCPP__ < 400)
-# define wxUSE_WCHAR_T 0
-# else
- // add additional compiler checks if this fails
-# define wxUSE_WCHAR_T 1
-# endif
-# endif // !defined(wxUSE_WCHAR_T)
-
-# 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 <stddef.h>
-# include <wchar.h>
-# elif defined(HAVE_WCSTR_H)
- // old compilers have wcslen() here
-# include <wcstr.h>
-# elif defined(__FreeBSD__) || defined(__DARWIN__) || defined(__EMX__)
- // include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp
-# include <stdlib.h>
- 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
-
-# include <wctype.h>
-
-// this is probably glibc-specific
-# if defined(__WCHAR_TYPE__)
-
-typedef __WCHAR_TYPE__ wxChar;
-typedef signed __WCHAR_TYPE__ wxSChar;
-typedef unsigned __WCHAR_TYPE__ wxUChar;
-
-# define _T(x) L##x
-
- // 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
-
-# if defined(__GLIBC__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0)
- // /usr/include/wctype.h incorrectly declares translations tables which
- // provokes tons of compile-time warnings - try to correct this
-# define wxTolower(wc) towctrans((wc), (wctrans_t)__ctype_tolower)
-# define wxToupper(wc) towctrans((wc), (wctrans_t)__ctype_toupper)
-# else
-# define wxTolower towlower
-# define wxToupper towupper
-# endif // gcc/!gcc
-
- // 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_ wcslen // used in wxStrlen inline function
-# 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 wxStrtok wcstok
-# 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 wxFprintf fwprintf
-# define wxFscanf fwscanf
-# define wxGetc getwc
-# define wxGetchar getwchar
-# define wxGets getws
-# define wxPrintf wprintf
-# define wxPutc wputc
-# define wxPutchar wputchar
-# define wxPuts putws
-# define wxScanf wscanf
-# define wxSnprintf swprintf
-# define wxSscanf swscanf
-# define wxUngetc ungetwc
-# define wxVfprint vfwprintf
-# define wxVprintf vwprintf
-# define wxVsscanf vswscanf
-# define wxVsnprintf vswprintf
-
-// glibc doesn't have wc equivalents of the other stuff
-# define wxNEED_WX_STDIO_H
-# define wxNEED_WX_STDLIB_H
-# define wxNEED_WX_TIME_H
-
-# else//!glibc
-# error "Please define your compiler's Unicode conventions in wxChar.h"
-# endif
-# else//!Unicode
-
-# include <ctype.h>
-# include <string.h>
-
- typedef char wxChar;
- typedef signed char wxSChar;
- typedef unsigned char wxUChar;
-
-# if defined(__FreeBSD__) || defined(__DARWIN__)
-# undef _T
-# endif
-
-# if !defined(__MINGW32__) || !defined(_T)
-# define _T(x) x
-# endif
-
- // ctype.h functions
-# define wxIsalnum isalnum
-# define wxIsalpha isalpha
-# define wxIsctrl isctrl
-# define wxIsdigit isdigit
-# define wxIsgraph isgraph
-# define wxIslower islower
-# define wxIsprint isprint
-# define wxIspunct ispunct
-# define wxIsspace isspace
-# define wxIsupper isupper
-# define wxIsxdigit isxdigit
-# define wxTolower tolower
-# define wxToupper toupper
-
- // locale.h functons
-# define wxSetlocale setlocale
-
- // string.h functions
- // #define wxStricmp strcasecmp
- // wxStricmp is defined below!!
-
- #ifdef HAVE_STRTOK_R
- #define wxStrtok(str, sep, last) strtok_r(str, sep, last)