[Scummvm-cvs-logs] CVS: scummvm/backends/fs/morphos abox-fs.cpp,1.3,1.4
Ruediger Hanke
tomjoad at users.sourceforge.net
Wed Nov 20 05:26:04 CET 2002
Update of /cvsroot/scummvm/scummvm/backends/fs/morphos
In directory sc8-pr-cvs1:/tmp/cvs-serv7636
Modified Files:
abox-fs.cpp
Log Message:
Implemented mode parameter for listDir()
Index: abox-fs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/fs/morphos/abox-fs.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- abox-fs.cpp 19 Nov 2002 13:44:28 -0000 1.3
+++ abox-fs.cpp 20 Nov 2002 13:25:22 -0000 1.4
@@ -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;
static FSList *listRoot();
virtual FilesystemNode *parent() const;
virtual FilesystemNode *clone() const { return new ABoxFilesystemNode(this); }
@@ -137,10 +137,10 @@
}
}
-FSList *ABoxFilesystemNode::listDir() const
+FSList *ABoxFilesystemNode::listDir(ListMode mode) const
{
FSList *myList = new FSList();
-
+
if (!_isValid)
error("listDir() called on invalid node");
@@ -170,19 +170,23 @@
String full_path;
BPTR lock;
- full_path = _path;
- full_path += fib->fib_FileName;
- lock = Lock(full_path.c_str(), SHARED_LOCK);
- if (lock)
+ if ((fib->fib_EntryType > 0 && (mode & kListDirectoriesOnly)) ||
+ (fib->fib_EntryType < 0 && (mode & kListFilesOnly)))
{
- entry = new ABoxFilesystemNode(lock);
- if (entry)
+ full_path = _path;
+ full_path += fib->fib_FileName;
+ lock = Lock(full_path.c_str(), SHARED_LOCK);
+ if (lock)
{
- if (entry->isValid())
- myList->push_back(*entry);
- delete entry;
+ entry = new ABoxFilesystemNode(lock);
+ if (entry)
+ {
+ if (entry->isValid())
+ myList->push_back(*entry);
+ delete entry;
+ }
+ UnLock(lock);
}
- UnLock(lock);
}
}
@@ -237,9 +241,9 @@
dosList = NextDosEntry(dosList, LDF_VOLUMES);
while (dosList)
{
- if (dosList->dol_Type == DLT_VOLUME && // Should always be true, but ...
- dosList->dol_Name && // Same here
- dosList->dol_Task // Will be NULL if volume is removed from drive but still in use by some program
+ if (dosList->dol_Type == DLT_VOLUME && // Should always be true, but ...
+ dosList->dol_Name && // Same here
+ dosList->dol_Task // Will be NULL if volume is removed from drive but still in use by some program
)
{
ABoxFilesystemNode *entry;
@@ -272,4 +276,5 @@
}
#endif // defined(__MORPHOS__)
+
More information about the Scummvm-git-logs
mailing list