X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/40ff126ac4ff57ab4aa22a5c7c7ce621479e8739..e887bad5f3a10f5b0c1f173c34c694dda283d0cf:/src/common/txtstrm.cpp?ds=sidebyside diff --git a/src/common/txtstrm.cpp b/src/common/txtstrm.cpp index 1894757f21..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 @@ -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) @@ -197,9 +207,6 @@ wxString wxTextInputStream::ReadLine() if(c == wxEOT) break; - if ( !m_input ) - break; - if (EatEOL(c)) break; @@ -419,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() ); @@ -436,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 );