The strings corresponding to %hs and %ls are always narrow/wide independently
of the build so using wxArgNormalizedString which is defined differently in
different builds doesn't make sense in wxPrintf().
Instead, simply expect the parameter of the appropriate matching type for
these conversion specifications. Any conversions to it, if necessary, had been
already done before by wxFormatString.
This fixes some VsnprintfTestCase::BigToSmallBuffer() unit test failures.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65690
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
case wxPAT_PCHAR:
case wxPAT_PWCHAR:
{
- wxArgNormalizedString arg(p->pad_str);
- wxString s = arg;
-
- if ( !arg.IsValid() && m_nMaxWidth >= 6 )
- s = wxT("(null)");
+ wxString s;
+ if ( !p->pad_str )
+ {
+ if ( m_nMaxWidth >= 6 )
+ s = wxT("(null)");
+ }
+ else if (m_type == wxPAT_PCHAR)
+ s.assign(static_cast<const char *>(p->pad_str));
+ else // m_type == wxPAT_PWCHAR
+ s.assign(static_cast<const wchar_t *>(p->pad_str));
typename wxPrintfStringHelper<CharType>::ConvertedType strbuf(
wxPrintfStringHelper<CharType>::Convert(s));