From 5478c2c0a70551ecaae22f9722af9e4f11c5809c Mon Sep 17 00:00:00 2001 From: Hugues Delorme Date: Mon, 25 Jun 2012 17:31:18 +0200 Subject: [PATCH] Fix for C++ std streams --- src/streams/std_io_stream.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/streams/std_io_stream.h b/src/streams/std_io_stream.h index 5736099..7d3fd55 100644 --- a/src/streams/std_io_stream.h +++ b/src/streams/std_io_stream.h @@ -43,9 +43,14 @@ public: Int64 read(char* data, Int64 maxSize) { m_istr->read(data, maxSize); - if (!m_istr->eof() && (m_istr->fail())) + if (!m_istr->eof() && m_istr->fail()) { + m_istr->clear(); return -1; - return m_istr->gcount(); + } + const Int64 bytesCount = m_istr->gcount(); + if (m_istr->fail()) // TODO preserve eof() flag + m_istr->clear(); + return bytesCount; } Int64 write(const char* /*data*/, Int64 /*maxSize*/)