+// 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
+
+# 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)
+ #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