[Scummvm-cvs-logs] CVS: scummvm/backends/fs/posix posix-fs.cpp,1.5,1.6

Max Horn fingolfin at projects.sourceforge.net
Mon Nov 18 17:37:03 CET 2002


Update of /cvsroot/scummvm/scummvm/backends/fs/posix
In directory sc8-pr-cvs1:/tmp/cvs-serv26509/backends/fs/posix

Modified Files:
	posix-fs.cpp 
Log Message:
added some preliminary game auto detect code to the launcher; this required a small change to the FS API, Windows/Morphos code will have to be adapted slightly I fear. Also, not all games are detected correctly, and some probably never will be, so we still have to add a dialog for cases where auto detect doesn't work

Index: posix-fs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/fs/posix/posix-fs.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- posix-fs.cpp	15 Nov 2002 17:54:38 -0000	1.5
+++ posix-fs.cpp	19 Nov 2002 01:36:47 -0000	1.6
@@ -50,7 +50,7 @@
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual String path() const { return _path; }
 
-	virtual FSList *listDir() const;
+	virtual FSList *listDir(ListMode mode = kListDirectoriesOnly) const;
 	virtual FilesystemNode *parent() const;
 	virtual FilesystemNode *clone() const { return new POSIXFilesystemNode(this); }
 };
@@ -85,7 +85,7 @@
 	_path = node->_path;
 }
 
-FSList *POSIXFilesystemNode::listDir() const {
+FSList *POSIXFilesystemNode::listDir(ListMode mode) const {
 	assert(_isDirectory);
 	DIR *dirp = opendir(_path.c_str());
 	struct stat st;
@@ -109,8 +109,10 @@
 			continue;
 		entry._isDirectory = S_ISDIR(st.st_mode);
 
-		// FIXME - skip any non-directories for now
-		if (!entry._isDirectory) continue;
+		// Honor the chosen mode
+		if ((mode == kListFilesOnly && entry._isDirectory) ||
+			(mode == kListDirectoriesOnly && !entry._isDirectory))
+			continue;
 
 		if (entry._isDirectory)
 			entry._path += "/";





More information about the Scummvm-git-logs mailing list