From 91a151d3a3282eb5786581e666edb128bababdfb Mon Sep 17 00:00:00 2001 From: Chris Elliott Date: Mon, 29 Oct 2007 13:33:12 +0000 Subject: [PATCH] DMC work round git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/wxcrt.h | 4 ++++ src/common/wxcrt.cpp | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/wx/wxcrt.h b/include/wx/wxcrt.h index 433bc954b1..74a8a9d69a 100644 --- a/include/wx/wxcrt.h +++ b/include/wx/wxcrt.h @@ -19,6 +19,10 @@ #include "wx/wxcrtbase.h" #include "wx/string.h" +#if defined (__VISUALC__) || defined (__DMC__) + #define HAVE_NO_VSSCANF 1 +#endif + // ============================================================================ // misc functions // ============================================================================ diff --git a/src/common/wxcrt.cpp b/src/common/wxcrt.cpp index 9c85e471c3..daddf430cc 100644 --- a/src/common/wxcrt.cpp +++ b/src/common/wxcrt.cpp @@ -625,7 +625,20 @@ int wxVsprintf(char *str, const wxString& format, va_list argptr) int wxVsprintf(wchar_t *str, const wxString& format, va_list argptr) { #if wxUSE_UNICODE_WCHAR +#ifdef __DMC__ +/* +This fails with a bug similar to +http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=c++.beta&artnum=680 +in DMC 8.49 and 8.50 +I don't see it being used in the wxWidgets sources at present (oct 2007) CE +*/ +#pragma message ( "warning ::::: wxVsprintf(wchar_t *str, const wxString& format, va_list argptr) not yet implemented" ) + wxFAIL_MSG( _T("TODO") ); + + return -1; +#else return wxCRT_VsprintfW(str, format.wc_str(), argptr); +#endif //DMC #else // wxUSE_UNICODE_UTF8 #if !wxUSE_UTF8_LOCALE_ONLY if ( !wxLocaleIsUtf8 ) @@ -1243,7 +1256,7 @@ wchar_t *wxFgets(wchar_t *s, int size, FILE *stream) // wxScanf() and friends // ---------------------------------------------------------------------------- -#ifndef __VISUALC__ +#ifndef HAVE_NO_VSSCANF // __VISUALC__ and __DMC__ see wx/crt.h int wxVsscanf(const char *str, const char *format, va_list ap) { return wxCRT_VsscanfA(str, format, ap); } int wxVsscanf(const wchar_t *str, const wchar_t *format, va_list ap) @@ -1260,4 +1273,4 @@ int wxVsscanf(const wxCStrData& str, const char *format, va_list ap) { return wxCRT_VsscanfA(str.AsCharBuf(), format, ap); } int wxVsscanf(const wxCStrData& str, const wchar_t *format, va_list ap) { return wxCRT_VsscanfW(str.AsWCharBuf(), format, ap); } -#endif // !__VISUALC__ +#endif // HAVE_NO_VSSCANF