[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