aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorTorbjörn Andersson2004-11-29 11:14:12 +0000
committerTorbjörn Andersson2004-11-29 11:14:12 +0000
commitbe58f22feb25ab840282fd38517c6c48db1b6c01 (patch)
tree3205d5679e3bafb5bba7718fb268798c06e4ed92 /backends
parente7572429376ffca14b8e6595ee958c7b3badabfd (diff)
downloadscummvm-rg350-be58f22feb25ab840282fd38517c6c48db1b6c01.tar.gz
scummvm-rg350-be58f22feb25ab840282fd38517c6c48db1b6c01.tar.bz2
scummvm-rg350-be58f22feb25ab840282fd38517c6c48db1b6c01.zip
Allow the file browser to get back to the "pseudo root" under Windows. This
fixes bug #1074919. svn-id: r15963
Diffstat (limited to 'backends')
-rw-r--r--backends/fs/fs.cpp4
-rw-r--r--backends/fs/windows/windows-fs.cpp8
2 files changed, 7 insertions, 5 deletions
diff --git a/backends/fs/fs.cpp b/backends/fs/fs.cpp
index e051e46c9a..983263b37d 100644
--- a/backends/fs/fs.cpp
+++ b/backends/fs/fs.cpp
@@ -73,9 +73,9 @@ FilesystemNode &FilesystemNode::operator =(const FilesystemNode &node) {
FilesystemNode FilesystemNode::getParent() const {
AbstractFilesystemNode *node = _realNode->parent();
- if (node == 0)
+ if (node == 0) {
return *this;
- else {
+ } else {
return AbstractFilesystemNode::wrap(node);
}
}
diff --git a/backends/fs/windows/windows-fs.cpp b/backends/fs/windows/windows-fs.cpp
index 11bec1e2f6..36aed65ca4 100644
--- a/backends/fs/windows/windows-fs.cpp
+++ b/backends/fs/windows/windows-fs.cpp
@@ -102,7 +102,7 @@ void WindowsFilesystemNode::addFile(FSList &list, ListMode mode, const char *bas
entry._path += asciiName;
if (entry._isDirectory)
entry._path += "\\";
- entry._isValid = true;
+ entry._isValid = true;
entry._isPseudoRoot = false;
list.push_back(wrap(new WindowsFilesystemNode(&entry)));
@@ -197,8 +197,10 @@ const char *lastPathComponent(const Common::String &str) {
AbstractFilesystemNode *WindowsFilesystemNode::parent() const {
assert(_isValid || _isPseudoRoot);
- WindowsFilesystemNode *p = 0;
- if (!_isPseudoRoot && _path.size() > 3) {
+ if (_isPseudoRoot)
+ return 0;
+ WindowsFilesystemNode *p = new WindowsFilesystemNode();
+ if (_path.size() > 3) {
const char *start = _path.c_str();
const char *end = lastPathComponent(_path);