Fix vararg type checking to accept ints for %c.

It's perfectly legitimate to format int values as %c, so don't assert in
this case.

Fixes #12192.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2010-07-03 14:24:12 +00:00
parent 5b4a88f4db
commit 3b12da351c
2 changed files with 5 additions and 1 deletions

View File

@@ -160,7 +160,7 @@ public:
Arg_Pointer = 0x0002, // %p
Arg_String = 0x0004 | Arg_Pointer, // any form of string (%s and %p too)
Arg_Int = 0x0008,
Arg_Int = 0x0008 | Arg_Char, // (ints can be used with %c)
#if SIZEOF_INT == SIZEOF_LONG
Arg_LongInt = Arg_Int,
#else

View File

@@ -215,4 +215,8 @@ void VarArgTestCase::ArgsValidation()
VarArgTestCase& somePOD = *this;
WX_ASSERT_FAILS_WITH_ASSERT( wxString::Format("%s", somePOD) );
#endif
// %c should accept integers too
wxString::Format("%c", 80);
wxString::Format("%c", wxChar(80) + wxChar(1));
}