X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d36c9347ea16171bc2f855076d8b9b11801ec622..137c8bde085d6d5b7c459902d2ea1a198ab48765:/src/common/txtstrm.cpp?ds=inline diff --git a/src/common/txtstrm.cpp b/src/common/txtstrm.cpp index 1ac783c88f..1894757f21 100644 --- a/src/common/txtstrm.cpp +++ b/src/common/txtstrm.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: txtstrm.cpp +// Name: src/common/txtstrm.cpp // Purpose: Text stream classes // Author: Guilhem Lavaux // Modified by: @@ -79,8 +79,8 @@ wxChar wxTextInputStream::NextChar() if(m_input.LastRead() <= 0) return wxEOT; - int retlen = (int) m_conv->MB2WC(wbuf, m_lastBytes, 2); // returns -1 for failure - if(retlen >= 0) // res == 0 could happen for '\0' char + if ( m_conv->ToWChar(wbuf, WXSIZEOF(wbuf), m_lastBytes, inlen + 1) + != wxCONV_FAILED ) return wbuf[0]; } // there should be no encoding which requires more than nine bytes for one character... @@ -178,11 +178,15 @@ double wxTextInputStream::ReadDouble() return wxStrtod(word.c_str(), 0); } +#if WXWIN_COMPATIBILITY_2_6 + wxString wxTextInputStream::ReadString() { return ReadLine(); } +#endif // WXWIN_COMPATIBILITY_2_6 + wxString wxTextInputStream::ReadLine() { wxString line; @@ -414,10 +418,9 @@ 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 ) ); + wxCharBuffer buffer = m_conv->cWC2MB(out, out.length(), &len); + m_output.Write(buffer, len); #else m_output.Write(out.c_str(), out.length() ); #endif