-extern void WXDLLIMPEXP_BASE wxVLog##level(const wxChar *szFormat, \
- va_list argptr); \
-extern void WXDLLIMPEXP_BASE wxLog##level(const wxChar *szFormat, \
- ...) ATTRIBUTE_PRINTF_1
-#define DECLARE_LOG_FUNCTION2_EXP(level, arg, expdecl) \
-extern void expdecl wxVLog##level(arg, const wxChar *szFormat, \
- va_list argptr); \
-extern void expdecl wxLog##level(arg, const wxChar *szFormat, \
- ...) ATTRIBUTE_PRINTF_2
-#define DECLARE_LOG_FUNCTION2(level, arg) \
- DECLARE_LOG_FUNCTION2_EXP(level, arg, WXDLLIMPEXP_BASE)
+ extern void WXDLLIMPEXP_BASE \
+ wxDoLog##level(const wxString& format, ...); \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 1, (const wxString&), wxDoLog##level) \
+ DECLARE_LOG_FUNCTION_WATCOM(level) \
+ extern void WXDLLIMPEXP_BASE wxVLog##level(const wxString& format, \
+ va_list argptr)
+
+#ifdef __WATCOMC__
+ // workaround for http://bugzilla.openwatcom.org/show_bug.cgi?id=351;
+ // can't use WX_WATCOM_ONLY_CODE here because the macro would expand to
+ // something too big for Borland C++ to handle
+ #define DECLARE_LOG_FUNCTION_WATCOM(level) \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 1, (const char*), wxDoLog##level) \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 1, (const wchar_t*), wxDoLog##level) \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 1, (const wxCStrData&), wxDoLog##level)
+#else
+ #define DECLARE_LOG_FUNCTION_WATCOM(level)
+#endif
+
+
+#define DECLARE_LOG_FUNCTION2_EXP(level, argclass, arg, expdecl) \
+ extern void expdecl wxDoLog##level(argclass arg, \
+ const wxString& format, ...); \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 2, (argclass, const wxString&), \
+ wxDoLog##level) \
+ DECLARE_LOG_FUNCTION2_EXP_WATCOM(level, argclass, arg, expdecl) \
+ extern void expdecl wxVLog##level(argclass arg, \
+ const wxString& format, \
+ va_list argptr)
+
+#ifdef __WATCOMC__
+ // workaround for http://bugzilla.openwatcom.org/show_bug.cgi?id=351;
+ // can't use WX_WATCOM_ONLY_CODE here because the macro would expand to
+ // something too big for Borland C++ to handle
+ #define DECLARE_LOG_FUNCTION2_EXP_WATCOM(level, argclass, arg, expdecl) \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 2, (argclass, const char*), \
+ wxDoLog##level) \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 2, (argclass, const wchar_t*), \
+ wxDoLog##level) \
+ WX_DEFINE_VARARG_FUNC_VOID(wxLog##level, \
+ 2, (argclass, const wxCStrData&), \
+ wxDoLog##level)
+#else
+ #define DECLARE_LOG_FUNCTION2_EXP_WATCOM(level, argclass, arg, expdecl)
+#endif
+