From c350ffabf3d589722b1bee95f63a783fbf39cc1b Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 3 Sep 2008 10:40:46 +0000 Subject: Added new AbstractFilesystemNode::openForReading & ::openForWriting method, based on StdioStream; changed FilesystemNode to use them svn-id: r34301 --- common/fs.cpp | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) (limited to 'common/fs.cpp') diff --git a/common/fs.cpp b/common/fs.cpp index 429d388ad1..fb34509d6a 100644 --- a/common/fs.cpp +++ b/common/fs.cpp @@ -23,7 +23,6 @@ */ #include "common/util.h" -#include "common/file.h" #include "common/system.h" #include "backends/fs/abstract-fs.h" #include "backends/fs/fs-factory.h" @@ -177,37 +176,28 @@ bool FilesystemNode::lookupFile(FSList &results, const Common::String &p, bool h Common::SeekableReadStream *FilesystemNode::openForReading() { if (_realNode == 0) return 0; -#if 0 - return _realNode->openForReading(); -#else - // FIXME: Until we support openForReading in AbstractFilesystemNode, - // we just use Common::File. - Common::File *confFile = new Common::File(); - assert(confFile); - if (!confFile->open(*this)) { - delete confFile; - confFile = 0; + + if (!_realNode->exists()) { + warning("File::open: Trying to open a FilesystemNode which does not exist"); + return false; + } else if (_realNode->isDirectory()) { + warning("File::open: Trying to open a FilesystemNode which is a directory"); + return false; } - return confFile; -#endif + + return _realNode->openForReading(); } Common::WriteStream *FilesystemNode::openForWriting() { if (_realNode == 0) return 0; -#if 0 - return _realNode->openForWriting(); -#else - // FIXME: Until we support openForWriting in AbstractFilesystemNode, - // we just use Common::DumpFile. - Common::DumpFile *confFile = new Common::DumpFile(); - assert(confFile); - if (!confFile->open(*this)) { - delete confFile; - confFile = 0; + + if (_realNode->isDirectory()) { + warning("File::open: Trying to open a FilesystemNode which is a directory"); + return 0; } - return confFile; -#endif + + return _realNode->openForWriting(); } //} // End of namespace Common -- cgit v1.2.3