[Scummvm-cvs-logs] CVS: scummvm/backends/fs/windows windows-fs.cpp,1.3,1.4

Nicolas Bacca arisme at users.sourceforge.net
Tue Nov 19 00:26:01 CET 2002


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

Modified Files:
	windows-fs.cpp 
Log Message:
Update listDir

Index: windows-fs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/fs/windows/windows-fs.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- windows-fs.cpp	15 Nov 2002 07:58:46 -0000	1.3
+++ windows-fs.cpp	19 Nov 2002 08:25:22 -0000	1.4
@@ -50,14 +50,14 @@
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual String path() const { return _path; }
 
-	virtual FSList *listDir() const;
+	virtual FSList *listDir(ListMode) const;
 	virtual FilesystemNode *parent() const;
 	virtual FilesystemNode *clone() const { return new WindowsFilesystemNode(this); }
 
 private:
 	static char *toAscii(TCHAR *x);
 	static TCHAR* toUnicode(char *x);
-	static void addFile (FSList* list, const WindowsFilesystemNode *parentNode, const char *base, WIN32_FIND_DATA* find_data);
+	static void addFile (FSList* list, ListMode mode, const WindowsFilesystemNode *parentNode, const char *base, WIN32_FIND_DATA* find_data);
 };
 
 
@@ -83,7 +83,7 @@
 #endif
 }
 
-void WindowsFilesystemNode::addFile (FSList* list, const WindowsFilesystemNode *parentNode, const char *base, WIN32_FIND_DATA* find_data) {
+void WindowsFilesystemNode::addFile (FSList* list, ListMode mode, const WindowsFilesystemNode *parentNode, const char *base, WIN32_FIND_DATA* find_data) {
 	WindowsFilesystemNode entry;
 	char *asciiName = toAscii(find_data->cFileName);
 	bool isDirectory;
@@ -94,8 +94,8 @@
 	
 	isDirectory = (find_data->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ? true : false);
 
-	// Only keep the directories for the moment (files already supported)
-	if (!isDirectory)
+	if ((!isDirectory && mode == kListDirectoriesOnly) ||
+		(isDirectory && mode == kListFilesOnly))
 		return;
 
 	entry._isDirectory = isDirectory;
@@ -141,7 +141,7 @@
 	_parentNode = node->_parentNode;
 }
 
-FSList *WindowsFilesystemNode::listDir() const {
+FSList *WindowsFilesystemNode::listDir(ListMode mode) const {
 	assert(_isDirectory);
 
 	FSList *myList = new FSList();
@@ -179,9 +179,9 @@
 		handle = FindFirstFile(toUnicode(searchPath), &desc);
 		if (handle == INVALID_HANDLE_VALUE)
 			return myList;
-		addFile(myList, this, _path.c_str(), &desc);
+		addFile(myList, mode, this, _path.c_str(), &desc);
 		while (FindNextFile(handle, &desc))
-			addFile(myList, this, _path.c_str(), &desc);
+			addFile(myList, mode, this, _path.c_str(), &desc);
 
 		FindClose(handle);
 	}





More information about the Scummvm-git-logs mailing list