From: Vadim Zeitlin Date: Wed, 5 Apr 2006 16:28:29 +0000 (+0000) Subject: also fixed WriteString() to work correctly when outputting UTF-16/32: can't use strle... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/3793402c74565f00a70ce853f8e22d71c051f919 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 --- diff --git a/src/common/txtstrm.cpp b/src/common/txtstrm.cpp index cbc90a4dae..299a97cf29 100644 --- a/src/common/txtstrm.cpp +++ b/src/common/txtstrm.cpp @@ -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