X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0eb6fce245892e985305ad687e69442a24289f74..ad60f9e7b66d326505592cc6dae034cab5826f3b:/include/wx/wxcrtvararg.h diff --git a/include/wx/wxcrtvararg.h b/include/wx/wxcrtvararg.h index 5516c5a083..1f6343c88d 100644 --- a/include/wx/wxcrtvararg.h +++ b/include/wx/wxcrtvararg.h @@ -31,9 +31,12 @@ /* printf() family saga */ /* - For some systems [v]snprintf()/vsscanf() exists in the system libraries but - not in the headers, so we need to declare it ourselves to be able to use it. + For many old Unix systems [v]snprintf()/vsscanf() exists in the system + libraries but not in the headers, so we need to declare it ourselves to be + able to use it. */ +#ifdef __UNIX__ + #if defined(HAVE_VSNPRINTF) && !defined(HAVE_VSNPRINTF_DECL) #ifdef __cplusplus extern "C" @@ -52,9 +55,6 @@ int snprintf(char *str, size_t size, const char *format, ...); #endif /* !HAVE_SNPRINTF_DECL */ -#ifdef __WATCOMC__ - #define HAVE_VSSCANF_DECL -#endif #if defined(HAVE_VSSCANF) && !defined(HAVE_VSSCANF_DECL) #ifdef __cplusplus extern "C" @@ -62,7 +62,7 @@ extern #endif int vsscanf(const char *str, const char *format, va_list ap); -#endif /* !HAVE_SNPRINTF_DECL */ +#endif /* !HAVE_VSSCANF_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 @@ -74,6 +74,8 @@ } #endif +#endif /* __UNIX__ */ + /* mingw32 normally uses MSVCRT which has non-standard vswprintf() and so normally _vsnwprintf() is used instead, the only exception is when mingw32 @@ -279,10 +281,20 @@ #define wxCRT_FprintfNative wxCRT_FprintfA #endif -WX_DEFINE_VARARG_FUNC(int, wxPrintf, 1, (const wxFormatString&), - wxCRT_PrintfNative, wxCRT_PrintfA) -WX_DEFINE_VARARG_FUNC(int, wxFprintf, 2, (FILE*, const wxFormatString&), - wxCRT_FprintfNative, wxCRT_FprintfA) + +WX_DEFINE_VARARG_FUNC_SANS_N0(int, wxPrintf, 1, (const wxFormatString&), + wxCRT_PrintfNative, wxCRT_PrintfA) +inline int wxPrintf(const wxFormatString& s) +{ + return wxPrintf("%s", s.InputAsString()); +} + +WX_DEFINE_VARARG_FUNC_SANS_N0(int, wxFprintf, 2, (FILE*, const wxFormatString&), + wxCRT_FprintfNative, wxCRT_FprintfA) +inline int wxFprintf(FILE *f, const wxFormatString& s) +{ + return wxFprintf(f, "%s", s.InputAsString()); +} // va_list versions of printf functions simply forward to the respective // CRT function; note that they assume that va_list was created using @@ -424,10 +436,6 @@ wxVsnprintf(wchar_t *str, size_t size, const wxString& format, va_list argptr); } #define WX_DEFINE_SCANFUNC(name, numfixed, fixed, impl, passfixed) \ - inline int name(_WX_SCANFUNC_EXTRACT_ARGS(numfixed, fixed)) \ - { \ - return impl(_WX_SCANFUNC_EXTRACT_ARGS(numfixed, passfixed)); \ - } \ _WX_VARARG_ITER(_WX_VARARG_MAX_ARGS, \ _WX_DEFINE_SCANFUNC, \ dummy1, name, impl, passfixed, numfixed, fixed)