diff options
author | David Corrales | 2007-10-30 21:31:39 +0000 |
---|---|---|
committer | David Corrales | 2007-10-30 21:31:39 +0000 |
commit | 5b9e6a47fc9b7e4e75db3675092363cbb5a1f6d5 (patch) | |
tree | e8ae64be2dcdc525151fbe64fe38d16ef5c7c25e /backends/fs/amigaos4/amigaos4-fs.cpp | |
parent | ecbd31160e99cf7ee5e49fd2eddf510dd57f94e6 (diff) | |
download | scummvm-rg350-5b9e6a47fc9b7e4e75db3675092363cbb5a1f6d5.tar.gz scummvm-rg350-5b9e6a47fc9b7e4e75db3675092363cbb5a1f6d5.tar.bz2 scummvm-rg350-5b9e6a47fc9b7e4e75db3675092363cbb5a1f6d5.zip |
Implement the AmigaOSFilesystemNode::exists() method.
svn-id: r29327
Diffstat (limited to 'backends/fs/amigaos4/amigaos4-fs.cpp')
-rw-r--r-- | backends/fs/amigaos4/amigaos4-fs.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/backends/fs/amigaos4/amigaos4-fs.cpp b/backends/fs/amigaos4/amigaos4-fs.cpp index 71ddd182e2..9d94fdc60c 100644 --- a/backends/fs/amigaos4/amigaos4-fs.cpp +++ b/backends/fs/amigaos4/amigaos4-fs.cpp @@ -87,7 +87,7 @@ public: */ virtual ~AmigaOSFilesystemNode(); - virtual bool exists() const { return true; } //FIXME: this is just a stub + virtual bool exists() const; virtual String getDisplayName() const { return _sDisplayName; }; virtual String getName() const { return _sDisplayName; }; virtual String getPath() const { return _sPath; }; @@ -265,6 +265,25 @@ AmigaOSFilesystemNode::~AmigaOSFilesystemNode() { LEAVE(); } +bool AmigaOSFilesystemNode::exists() const { + if(_sPath.empty()) + return false; + + bool nodeExists = false; + ENTER(); + + BPTR pLock = IDOS->Lock((STRPTR)_sPath.c_str(), SHARED_LOCK); + if (pLock) { + if (IDOS->Examine(pLock, fib) != DOSFALSE) { + nodeExists = true; + } + IDOS->UnLock(pLock); + } + + LEAVE(); + return nodeExists; +} + AbstractFilesystemNode *AmigaOSFilesystemNode::getChild(const String &n) const { if (!_bIsDirectory) { debug(6, "Not a directory"); |