-// implement vararg function by calling a vfoo function that takes va_list
-// argument; use "ap" for the va_list argument in "call" expression
-#define IMPL_SCANFUNC(call) \
- va_list ap; \
- va_start(ap, format); \
- int retval = call; \
- va_end(ap); \
- return retval
-
-int wxScanf(const char *format, ...)
- { IMPL_SCANFUNC( wxCRT_VscanfA(format, ap) ); }
-int wxScanf(const wchar_t *format, ...)
- { IMPL_SCANFUNC( wxCRT_VscanfW(wxFormatConverter(format), ap) ); }
-
-int wxFscanf(FILE *stream, const char *format, ...)
- { IMPL_SCANFUNC( wxCRT_VfscanfA(stream, format, ap) ); }
-int wxFscanf(FILE *stream, const wchar_t *format, ...)
- { IMPL_SCANFUNC( wxCRT_VfscanfW(stream, wxFormatConverter(format), ap) ); }
-
-int wxSscanf(const char *str, const char *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfA(str, format, ap) ); }
-int wxSscanf(const wchar_t *str, const wchar_t *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfW(str, wxFormatConverter(format), ap) ); }
-int wxSscanf(const wxCharBuffer& str, const char *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfA(str, format, ap) ); }
-int wxSscanf(const wxWCharBuffer& str, const wchar_t *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfW(str, wxFormatConverter(format), ap) ); }
-int wxSscanf(const wxString& str, const char *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfA(str.mb_str(), format, ap) ); }
-int wxSscanf(const wxString& str, const wchar_t *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfW(str.wc_str(), wxFormatConverter(format), ap) ); }
-int wxSscanf(const wxCStrData& str, const char *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfA(str.AsCharBuf(), format, ap) ); }
-int wxSscanf(const wxCStrData& str, const wchar_t *format, ...)
- { IMPL_SCANFUNC( wxCRT_VsscanfW(str.AsWCharBuf(), wxFormatConverter(format), ap) ); }
-