%s to %ls conversion

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2002-08-17 12:11:03 +00:00
parent 6d60815d74
commit 5f1d306901
4 changed files with 260 additions and 71 deletions

View File

@@ -186,74 +186,6 @@ wxSTD ostream& operator<<(wxSTD ostream& os, const wxString& str)
#endif //std::string compatibility
#ifndef wxVsnprintf
int WXDLLEXPORT wxVsnprintf(wxChar *buf, size_t len,
const wxChar *format, va_list argptr)
{
#if wxUSE_UNICODE
wxString s;
int iLen = s.PrintfV(format, argptr);
if ( iLen != -1 )
{
wxStrncpy(buf, s.c_str(), len);
buf[len-1] = wxT('\0');
}
return iLen;
#else // ANSI
// vsnprintf() will not terminate the string with '\0' if there is not
// enough place, but we want the string to always be NUL terminated
int rc = wxVsnprintfA(buf, len - 1, format, argptr);
if ( rc == -1 )
{
buf[len] = 0;
}
return rc;
#endif // Unicode/ANSI
}
#else
// GNU libc 2.2 only has for wxVsnprintf for Unicode called vswprintf
// so we imitate wxVsprintf using it.
int WXDLLEXPORT wxVsprintf(wxChar *buf,
const wxChar *format,
va_list argptr)
{
return vswprintf( buf, 10000, format, argptr );
}
#endif
#ifndef wxSnprintf
int WXDLLEXPORT wxSnprintf(wxChar *buf, size_t len,
const wxChar *format, ...)
{
va_list argptr;
va_start(argptr, format);
int iLen = wxVsnprintf(buf, len, format, argptr);
va_end(argptr);
return iLen;
}
#else
// GNU libc 2.2 only has for wxSnprintf for Unicode called swprintf
// so we imitate wxSprintf using it.
int WXDLLEXPORT wxSprintf(wxChar *buf,
const wxChar *format,
...) ATTRIBUTE_PRINTF_2
{
va_list argptr;
va_start(argptr, format);
int iLen = swprintf(buf, 10000, format, argptr);
va_end(argptr);
return iLen;
}
#endif
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------