diff options
Diffstat (limited to 'common/file.cpp')
-rw-r--r-- | common/file.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/common/file.cpp b/common/file.cpp index ee741a8990..7836a7d4a8 100644 --- a/common/file.cpp +++ b/common/file.cpp @@ -58,10 +58,8 @@ bool File::open(const String &filename, Archive &archive) { assert(!filename.empty()); assert(!_handle); - clearIOFailed(); - SeekableReadStream *stream = 0; - + if ((stream = archive.createReadStreamForMember(filename))) { debug(3, "Opening hashed: %s", filename.c_str()); } else if ((stream = archive.createReadStreamForMember(filename + "."))) { @@ -90,7 +88,6 @@ bool File::open(const FSNode &node) { bool File::open(SeekableReadStream *stream, const Common::String &name) { assert(!_handle); - clearIOFailed(); if (stream) { _handle = stream; @@ -124,13 +121,12 @@ bool File::isOpen() const { } bool File::ioFailed() const { - // TODO/FIXME: Just use ferror() here? - return !_handle || _handle->ioFailed(); + return !_handle || (eos() || err()); } void File::clearIOFailed() { if (_handle) - _handle->clearIOFailed(); + _handle->clearErr(); } bool File::err() const { @@ -211,12 +207,12 @@ bool DumpFile::isOpen() const { bool DumpFile::err() const { assert(_handle); - return _handle->ioFailed(); + return _handle->err(); } void DumpFile::clearErr() { assert(_handle); - _handle->clearIOFailed(); + _handle->clearErr(); } uint32 DumpFile::write(const void *ptr, uint32 len) { |