#ifndef _WX_WXCHAR_H_
#define _WX_WXCHAR_H_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma interface "wxchar.h"
-#endif
-
#include "wx/defs.h" /* for wxUSE_UNICODE */
#if defined(HAVE_STRTOK_R) && defined(__DARWIN__) && defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS
int snprintf(char *str, size_t size, const char *format, ...);
#endif /* !HAVE_SNPRINTF_DECL */
+/* Wrapper for vsnprintf if it's 3rd parameter is non-const. Note: the
+ * same isn't done for snprintf below, the builtin wxSnprintf_ is used
+ * instead since it's already a simple wrapper */
+#if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL
+ inline int wx_fixed_vsnprintf(char *str, size_t size, const char *format, va_list ap)
+ {
+ return vsnprintf(str, size, (char*)format, ap);
+ }
+#endif
+
/*
First of all, we always want to define safe snprintf() function to be used
instead of sprintf(). Some compilers already have it (or rather vsnprintf()
/* all versions of CodeWarrior supported by wxWidgets apparently have */
/* both snprintf() and vsnprintf() */
#if defined(HAVE_SNPRINTF) || defined(__MWERKS__) || defined(__WATCOMC__)
- #define wxSnprintf_ snprintf
+ #ifndef HAVE_BROKEN_SNPRINTF_DECL
+ #define wxSnprintf_ snprintf
+ #endif
#endif
#if defined(HAVE_VSNPRINTF) || defined(__MWERKS__) || defined(__WATCOMC__)
- #define wxVsnprintf_ vsnprintf
+ #if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL
+ #define wxVsnprintf_ wx_fixed_vsnprintf
+ #else
+ #define wxVsnprintf_ vsnprintf
+ #endif
#endif
#endif
#endif /* wxVsnprintf_ not defined yet */
return szRet;
}
- #else //!wxUSE_UNICODE
+ #else /* !wxUSE_UNICODE */
# define wxTmemchr memchr
# define wxTmemcmp memcmp
# define wxTmemcpy memcpy
# define wxTmemmove memmove
# define wxTmemset memset
- #endif
+ #endif /* wxUSE_UNICODE/!wxUSE_UNICODE */
#endif /*__cplusplus*/