[Scummvm-cvs-logs] CVS: scummvm/backends/fs/morphos abox-fs.cpp,1.1,1.2
Ruediger Hanke
tomjoad at users.sourceforge.net
Fri Nov 15 08:04:05 CET 2002
Update of /cvsroot/scummvm/scummvm/backends/fs/morphos
In directory usw-pr-cvs1:/tmp/cvs-serv21513
Modified Files:
abox-fs.cpp
Log Message:
Fixes ...
Index: abox-fs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/fs/morphos/abox-fs.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- abox-fs.cpp 15 Nov 2002 15:08:29 -0000 1.1
+++ abox-fs.cpp 15 Nov 2002 16:03:42 -0000 1.2
@@ -64,7 +64,7 @@
ABoxFilesystemNode::ABoxFilesystemNode()
{
- _displayName = "All Drives";
+ _displayName = "Mounted Volumes";
_isValid = true;
_isDirectory = true;
_path = "";
@@ -108,6 +108,8 @@
_isDirectory = fib->fib_EntryType > 0;
if (_isDirectory)
{
+ if (fib->fib_EntryType != ST_ROOT)
+ _path += "/";
_lock = DupLock(lock);
_isValid = (_lock != NULL);
}
@@ -164,14 +166,24 @@
{
while (ExNext(_lock, fib) != DOSFALSE)
{
- ABoxFilesystemNode entry;
- entry._displayName = fib->fib_FileName;
- entry._isDirectory = fib->fib_EntryType > 0;
- entry._path = _path;
- entry._path += fib->fib_FileName;
- if (entry._isDirectory)
- entry._path += "/";
- myList->push_back(entry);
+ ABoxFilesystemNode *entry;
+ String full_path;
+ BPTR lock;
+
+ full_path = _path;
+ full_path += fib->fib_FileName;
+ lock = Lock(full_path.c_str(), SHARED_LOCK);
+ if (lock)
+ {
+ entry = new ABoxFilesystemNode(lock);
+ if (entry)
+ {
+ if (entry->isValid())
+ myList->push_back(*entry);
+ delete entry;
+ }
+ UnLock(lock);
+ }
}
if (IoErr() != ERROR_NO_MORE_ENTRIES)
@@ -242,8 +254,12 @@
{
sprintf(name, "%s (%s)", volume_name, device_name);
entry = new ABoxFilesystemNode(volume_lock, name);
- if (entry->isValid())
- myList->push_back(*entry);
+ if (entry)
+ {
+ if (entry->isValid())
+ myList->push_back(*entry);
+ delete entry;
+ }
UnLock(volume_lock);
}
}
More information about the Scummvm-git-logs
mailing list