aboutsummaryrefslogtreecommitdiff
path: root/backends/fs/symbian
diff options
context:
space:
mode:
authorLars Persson2006-05-01 14:20:02 +0000
committerLars Persson2006-05-01 14:20:02 +0000
commit492929ae530316a4bbcb1c395abb1497016a1c9f (patch)
treeecb4e8e5cb54550c10ff37ac141260ac3a4ab8c8 /backends/fs/symbian
parent72f0c9a5d72862c4b19910ae97c2b138cc94d9bb (diff)
downloadscummvm-rg350-492929ae530316a4bbcb1c395abb1497016a1c9f.tar.gz
scummvm-rg350-492929ae530316a4bbcb1c395abb1497016a1c9f.tar.bz2
scummvm-rg350-492929ae530316a4bbcb1c395abb1497016a1c9f.zip
Updated symbian-fs backend and cleanup
svn-id: r22260
Diffstat (limited to 'backends/fs/symbian')
-rw-r--r--backends/fs/symbian/symbian-fs.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/backends/fs/symbian/symbian-fs.cpp b/backends/fs/symbian/symbian-fs.cpp
index a236e10ca6..853388e251 100644
--- a/backends/fs/symbian/symbian-fs.cpp
+++ b/backends/fs/symbian/symbian-fs.cpp
@@ -29,6 +29,7 @@
#include <dirent.h>
#include <eikenv.h>
#include <f32file.h>
+#include <bautils.h>
/*
* Implementation of the ScummVM file system API based on POSIX.
@@ -200,7 +201,23 @@ AbstractFilesystemNode *SymbianFilesystemNode::parent() const {
}
AbstractFilesystemNode *SymbianFilesystemNode::child(const String &name) const {
- TODO
+ assert(_isDirectory);
+ String newPath(_path);
+
+ if (_path.lastChar() != '\\')
+ newPath += '\\';
+ newPath += name;
+
+ TPtrC8 ptr((const unsigned char*) newPath.c_str(), newPath.size());
+ TFileName fname;
+ fname.Copy(ptr);
+ TBool isFolder = EFalse;
+ BaflUtils::IsFolder(CEikonEnv::Static()->FsSession(), fname, isFolder);
+ if(!isFolder)
+ return 0;
+
+ SymbianFilesystemNode *p = new SymbianFilesystemNode(newPath);
+ return p;
}
#endif // defined(__SYMBIAN32__)