diff options
author | Torbjörn Andersson | 2004-11-29 11:14:12 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2004-11-29 11:14:12 +0000 |
commit | be58f22feb25ab840282fd38517c6c48db1b6c01 (patch) | |
tree | 3205d5679e3bafb5bba7718fb268798c06e4ed92 /backends/fs | |
parent | e7572429376ffca14b8e6595ee958c7b3badabfd (diff) | |
download | scummvm-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/fs')
-rw-r--r-- | backends/fs/fs.cpp | 4 | ||||
-rw-r--r-- | backends/fs/windows/windows-fs.cpp | 8 |
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); |