+// 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
+
+// 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>
+
+# 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
+
+# ifdef __FreeBSD__
+# undef _T
+# endif
+# define _T(x) x
+
+ // 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)
+ #else
+ #define wxStrtok(str, sep, last) strtok(str, sep)
+ #endif
+
+ // leave the rest to defaults below
+# define wxNEED_WX_STRING_H
+# define wxNEED_WX_STDIO_H
+# define wxNEED_WX_STDLIB_H
+# define wxNEED_WX_TIME_H
+
+# endif//Unicode
+#endif//TCHAR-aware compilers
+
+// define wxStricmp for various compilers without Unicode possibilities
+#if !defined(wxStricmp) && !wxUSE_UNICODE
+# if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__SALFORDC__) || defined(__VISAGECPP__) || defined(__EMX__)
+# define wxStricmp stricmp
+# elif defined(__SC__) || defined(__VISUALC__) || (defined(__MWERKS__) && defined(__INTEL__))
+# define wxStricmp _stricmp
+# elif defined(__UNIX__) || defined(__GNUWIN32__)
+# define wxStricmp strcasecmp
+# elif defined(__MWERKS__) && !defined(__INTEL__)
+ // use wxWindows' implementation
+# else
+ // if you leave wxStricmp undefined, wxWindows' implementation will be used
+# error "Please define string case-insensitive compare for your OS/compiler"
+# endif
+#endif
+
+// if we need to define for standard headers, and we're not using Unicode,
+// just define to standard C library routines
+#if !wxUSE_UNICODE
+# ifdef wxNEED_WX_STRING_H
+# define wxStrcat strcat
+# define wxStrchr strchr
+# define wxStrcmp strcmp
+# define wxStrcoll strcoll
+# define wxStrcpy strcpy
+# define wxStrcspn strcspn
+# define wxStrdup strdup
+# define wxStrlen_ strlen // used in wxStrlen inline function
+# define wxStrncat strncat
+# define wxStrncmp strncmp
+# define wxStrncpy strncpy
+# define wxStrpbrk strpbrk
+# define wxStrrchr strrchr
+# define wxStrspn strspn
+# define wxStrstr strstr
+# define wxStrtod strtod
+# define wxStrtol strtol
+# define wxStrtoul strtoul
+# define wxStrxfrm strxfrm
+# undef wxNEED_WX_STRING_H
+# endif
+
+# ifdef wxNEED_WX_STDIO_H
+# define wxFgetc fgetc
+# define wxFgetchar fgetchar
+# define wxFgets fgets
+# define wxFopen fopen
+# define wxFputc fputc
+# define wxFputchar fputchar
+# define wxFprintf fprintf
+# define wxFreopen freopen
+# define wxFscanf fscanf
+# define wxGetc getc
+# define wxGetchar getchar
+# define wxGets gets
+# define wxPerror perror
+# define wxPrintf printf
+# define wxPutc putc
+# define wxPutchar putchar
+# define wxPuts puts
+# define wxRemove remove
+# define wxRename rename
+# define wxScanf scanf
+# define wxSprintf sprintf
+# define wxSscanf sscanf
+# define wxTmpnam tmpnam
+# define wxUngetc ungetc
+# define wxVfprint vfprintf
+# define wxVprintf vprintf
+# define wxVsscanf vsscanf
+# define wxVsprintf vsprintf
+# undef wxNEED_WX_STDIO_H
+# endif