X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e2acb9ae1c69c1e37cbe0e46933929f5b1b021ba..ae8f57691329af997e274a3fce5b25c5e5f00f2f:/src/common/stream.cpp diff --git a/src/common/stream.cpp b/src/common/stream.cpp index fdfc912333..5c7ba37d3f 100644 --- a/src/common/stream.cpp +++ b/src/common/stream.cpp @@ -195,6 +195,23 @@ void wxStreamBuffer::PutChar(char c) m_stream->m_lastcount = 1; } +char wxStreamBuffer::Peek() +{ + char c; + + wxASSERT(m_stream != NULL && m_buffer_size != 0); + + if (!GetDataLeft()) { + CHECK_ERROR(wxStream_READ_ERR); + return 0; + } + + GetFromBuffer(&c, 1); + m_buffer_pos--; + + return c; +} + char wxStreamBuffer::GetChar() { char c; @@ -248,7 +265,7 @@ size_t wxStreamBuffer::Read(void *buffer, size_t size) buffer = (char *)buffer + buf_left; // ANSI C++ violation. if (!FillBuffer()) { - CHECK_ERROR(wxStream_READ_ERR); + CHECK_ERROR(wxStream_EOF); return (m_stream->m_lastcount = orig_size-size); } } else { @@ -743,6 +760,11 @@ wxBufferedInputStream::~wxBufferedInputStream() delete m_i_streambuf; } +char wxBufferedInputStream::Peek() +{ + return m_i_streambuf->Peek(); +} + wxInputStream& wxBufferedInputStream::Read(void *buffer, size_t size) { size_t retsize;