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:
@@ -160,7 +160,7 @@ public:
|
|||||||
Arg_Pointer = 0x0002, // %p
|
Arg_Pointer = 0x0002, // %p
|
||||||
Arg_String = 0x0004 | Arg_Pointer, // any form of string (%s and %p too)
|
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
|
#if SIZEOF_INT == SIZEOF_LONG
|
||||||
Arg_LongInt = Arg_Int,
|
Arg_LongInt = Arg_Int,
|
||||||
#else
|
#else
|
||||||
|
@@ -215,4 +215,8 @@ void VarArgTestCase::ArgsValidation()
|
|||||||
VarArgTestCase& somePOD = *this;
|
VarArgTestCase& somePOD = *this;
|
||||||
WX_ASSERT_FAILS_WITH_ASSERT( wxString::Format("%s", somePOD) );
|
WX_ASSERT_FAILS_WITH_ASSERT( wxString::Format("%s", somePOD) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// %c should accept integers too
|
||||||
|
wxString::Format("%c", 80);
|
||||||
|
wxString::Format("%c", wxChar(80) + wxChar(1));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user