X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f36b3a915e4543fbbd9c911724404b016972aabc..198be845897a79ba350ae7f93db536ddb2eccfb2:/src/common/txtstrm.cpp?ds=sidebyside diff --git a/src/common/txtstrm.cpp b/src/common/txtstrm.cpp index d2e08f5c8f..010fe739f6 100644 --- a/src/common/txtstrm.cpp +++ b/src/common/txtstrm.cpp @@ -18,6 +18,10 @@ #if wxUSE_STREAMS +#ifndef WX_PRECOMP + #include "wx/crt.h" +#endif + #include "wx/txtstrm.h" #include <ctype.h> @@ -73,6 +77,9 @@ wxChar wxTextInputStream::NextChar() memset((void*)m_lastBytes, 0, 10); for(size_t inlen = 0; inlen < 9; inlen++) { + if (!m_input.CanRead()) + return wxEOT; + // actually read the next character m_lastBytes[inlen] = m_input.GetC(); @@ -86,6 +93,9 @@ wxChar wxTextInputStream::NextChar() // there should be no encoding which requires more than nine bytes for one character... return wxEOT; #else + if (!m_input.CanRead()) + return wxEOT; + m_lastBytes[0] = m_input.GetC(); if(m_input.LastRead() <= 0) @@ -416,7 +426,8 @@ void wxTextOutputStream::WriteString(const wxString& string) } #if wxUSE_UNICODE - wxCharBuffer buffer = m_conv->cWC2MB(out, out.length(), &len); + // FIXME-UTF8: use wxCharBufferWithLength if/when we have it + wxCharBuffer buffer = m_conv->cWC2MB(out.wc_str(), out.length(), &len); m_output.Write(buffer, len); #else m_output.Write(out.c_str(), out.length() ); @@ -433,12 +444,6 @@ wxTextOutputStream& wxTextOutputStream::PutChar(wxChar c) return *this; } -wxTextOutputStream& wxTextOutputStream::operator<<(const wxChar *string) -{ - WriteString( wxString(string) ); - return *this; -} - wxTextOutputStream& wxTextOutputStream::operator<<(const wxString& string) { WriteString( string );