Use wxString::To8BitData() instead of mb_str() to handle NULs correctly.
In ANSI build wxString::mb_str() returns a pointer to the internal wxString data directly instead of a buffer with a proper length, so it provides access to the part of the string before the first embedded NUL only. Use To8BitData() which always returns the buffer of the correct size in all builds. The open question remains whether mb_str() should be changed to return a (non owned) buffer and not just a pointer in ANSI build. This would make manipulating strings with embedded NULs safer but mb_str() would be less efficient and less compatible. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
23231f1c71
commit
716ee1223e
1 changed files with 1 additions and 1 deletions
|
|
@ -106,7 +106,7 @@ void strStream::CheckString(const wxString& text)
|
|||
{
|
||||
wxStringOutputStream sos;
|
||||
|
||||
const wxCharBuffer buf(text.mb_str());
|
||||
const wxCharBuffer buf(text.To8BitData());
|
||||
sos.Write(buf, buf.length());
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL( text, sos.GetString() );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue