summaryrefslogtreecommitdiff
path: root/plugingui/directory.cc
diff options
context:
space:
mode:
authorJonas Suhr Christensen <jsc@umbraculum.org>2014-09-23 18:28:07 +0200
committerJonas Suhr Christensen <jsc@umbraculum.org>2014-09-23 18:28:07 +0200
commit5a81864b7f9b2c205d779b74ddb2e25d0df75f3e (patch)
treef5a511f1d87f81a47e51d5cacee0fa212bbfe2c2 /plugingui/directory.cc
parent8681d056216b49a9963cbaa177dd3c4b7f76cb69 (diff)
Testing file attribute filter on windows XP.
Diffstat (limited to 'plugingui/directory.cc')
-rw-r--r--plugingui/directory.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/plugingui/directory.cc b/plugingui/directory.cc
index 48e67c6..ff0fa05 100644
--- a/plugingui/directory.cc
+++ b/plugingui/directory.cc
@@ -319,8 +319,14 @@ bool Directory::exists(std::string path)
bool Directory::isHidden(std::string path)
{
DEBUG(directory, "Is '%s' hidden?\n", path.c_str());
- // TODO: Handle hidden and system files in windows
#ifdef WIN32
+ // We dont want to filter out '..' pointing to root of a partition
+ unsigned pos = path.find_last_of("/\\");
+ std::string entry = path.substr(pos+1);
+ if(entry == "..") {
+ return false;
+ }
+
DWORD fattribs = GetFileAttributes(path.c_str());
if(fattribs & FILE_ATTRIBUTE_HIDDEN) {
DEBUG(directory, "\t...yes!\n");