also fixed WriteString() to work correctly when outputting UTF-16/32: can't use strlen() with these encodings

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-04-05 16:28:29 +00:00
parent d7f73361b9
commit 3793402c74

View File

@@ -414,10 +414,10 @@ void wxTextOutputStream::WriteString(const wxString& string)
out << c;
}
// We must not write the trailing NULL here
#if wxUSE_UNICODE
wxCharBuffer buffer = m_conv->cWC2MB( out );
m_output.Write( (const char*) buffer, strlen( (const char*) buffer ) );
// note that we must not write the trailing NUL here
wxCharBuffer buffer = m_conv->cWC2MB(out, out.length(), &len);
m_output.Write(buffer, len + 1 - m_conv->GetMBNulLen());
#else
m_output.Write(out.c_str(), out.length() );
#endif