# define wxUChar unsigned char
# endif
-# if defined(__FreeBSD__) || defined(__MACH__)
+# if defined(__FreeBSD__) || (defined(__APPLE__) && defined(__UNIX__))
# undef _T
# endif
# elif defined(__SC__) || defined(__VISUALC__) || (defined(__MWERKS__) && defined(__INTEL__))
# define wxStricmp _stricmp
# define wxStrnicmp _strnicmp
-# elif defined(__UNIX__) || defined(__GNUWIN32__) || defined(__MACH__)
+# elif defined(__UNIX__) || defined(__GNUWIN32__)
# define wxStricmp strcasecmp
# define wxStrnicmp strncasecmp
# elif defined(__MWERKS__) && !defined(__INTEL__)
#endif
// checks whether the passed in pointer is NULL and if the string is empty
-WXDLLEXPORT inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; }
+inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; }
#ifndef wxNEED_WX_STRING_H
// safe version of strlen() (returns 0 if passed NULL pointer)
-WXDLLEXPORT inline size_t wxStrlen(const wxChar *psz)
+inline size_t wxStrlen(const wxChar *psz)
{ return psz ? wxStrlen_(psz) : 0; }
#endif
WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const struct tm *tm);
#endif
+// under VC++ 6.0 isspace() returns 1 for 8 bit chars which completely breaks
+// the file parsing - this may be true for 5.0 as well, update #ifdef then
+#if defined(__VISUALC__) && (__VISUALC__ >= 1200) && !wxUSE_UNICODE
+ #undef wxIsspace
+ #define wxIsspace(c) ((((unsigned)c) < 128) && isspace(c))
+#endif // VC++
+
// ----------------------------------------------------------------------------
// common macros which are always defined
// ----------------------------------------------------------------------------