[Scummvm-cvs-logs] SF.net SVN: scummvm: [29327] scummvm/trunk/backends/fs/amigaos4/amigaos4-fs .cpp

david_corrales at users.sourceforge.net david_corrales at users.sourceforge.net
Tue Oct 30 22:31:40 CET 2007


Revision: 29327
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29327&view=rev
Author:   david_corrales
Date:     2007-10-30 14:31:39 -0700 (Tue, 30 Oct 2007)

Log Message:
-----------
Implement the AmigaOSFilesystemNode::exists() method.

Modified Paths:
--------------
    scummvm/trunk/backends/fs/amigaos4/amigaos4-fs.cpp

Modified: scummvm/trunk/backends/fs/amigaos4/amigaos4-fs.cpp
===================================================================
--- scummvm/trunk/backends/fs/amigaos4/amigaos4-fs.cpp	2007-10-30 19:41:55 UTC (rev 29326)
+++ scummvm/trunk/backends/fs/amigaos4/amigaos4-fs.cpp	2007-10-30 21:31:39 UTC (rev 29327)
@@ -87,7 +87,7 @@
 	 */
 	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 @@
 	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");


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list