#include <stddef.h>
#include <string.h>
#include <ctype.h>
+ #elif defined(__CYGWIN__)
+ #include <stddef.h>
+ #include <wchar.h>
#endif
#elif defined(__VISAGECPP__) && (__IBMCPP__ >= 400)
// VisualAge 4.0+ supports TCHAR
# 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__))
+# if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || defined(__DARWIN__)
# define wxUSE_WCHAR_T 1
# else
# define wxUSE_WCHAR_T 0
# define wxUSE_WCHAR_T 0
# elif defined(__WATCOMC__)
# define wxUSE_WCHAR_T 0
-# elif defined(__VISAGECPP__) && (__IBMCPP__ >= 400)
-# define wxUSE_WCHAR_T 1
+# elif defined(__VISAGECPP__) && (__IBMCPP__ < 400)
+# define wxUSE_WCHAR_T 0
# else
// add additional compiler checks if this fails
# define wxUSE_WCHAR_T 1
# ifdef HAVE_WCSTR_H
# include <wcstr.h>
# else
- // VZ: do we really have to include this?
-# include <stdlib.h>
-
- // include wchar.h to get wcslen() declaration used by wx/buffer.h
# if defined(HAVE_WCHAR_H)
+
+// include wchar.h to get wcslen() declaration used by wx/buffer.h
# include <wchar.h>
+
+# elif defined(__FreeBSD__) || defined(__DARWIN__)
+
+// include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp
+# include <stdlib.h>
+size_t WXDLLEXPORT wcslen(const wchar_t *s);
+
# endif
# endif
# endif