From 2317fbe9d29f5bea76a2ba05b40841b11de1a6f2 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 10 Jan 2014 01:50:12 +0300 Subject: fix dirs and files enumeration in some systems. --- src/gui/theme.cpp | 2 +- src/resources/beingcommon.cpp | 4 +++- src/utils/files.cpp | 11 +++++++++++ src/utils/files.h | 2 ++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index f329ada74..d78a5d5f5 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -650,7 +650,7 @@ bool Theme::tryThemePath(const std::string &themeName) void Theme::fillSkinsList(StringVect &list) { - Files::getFiles(branding.getStringValue("guiThemePath"), list); + Files::getDirs(branding.getStringValue("guiThemePath"), list); } void Theme::fillFontsList(StringVect &list) diff --git a/src/resources/beingcommon.cpp b/src/resources/beingcommon.cpp index 5647d01e3..3e3a81cbf 100644 --- a/src/resources/beingcommon.cpp +++ b/src/resources/beingcommon.cpp @@ -20,6 +20,8 @@ #include "resources/beingcommon.h" +#include "logger.h" + #include "utils/files.h" #include "utils/physfstools.h" #include "utils/stringutils.h" @@ -51,7 +53,7 @@ void BeingCommon::readBasicAttributes(BeingInfo *const info, XmlNodePtr node, void BeingCommon::getIncludeFiles(const std::string &dir, StringVect &list) { - const std::string path = dir + PhysFs::getDirSeparator(); + const std::string path = dir + "/"; StringVect tempList; Files::getFilesWithDir(path, tempList); FOR_EACH (StringVectCIter, it, tempList) diff --git a/src/utils/files.cpp b/src/utils/files.cpp index 9abf13593..39451b129 100644 --- a/src/utils/files.cpp +++ b/src/utils/files.cpp @@ -208,6 +208,17 @@ void Files::getFiles(const std::string &path, StringVect &list) PhysFs::freeList(fonts); } +void Files::getDirs(const std::string &path, StringVect &list) +{ + char **fonts = PhysFs::enumerateFiles(path.c_str()); + for (char **i = fonts; *i; i++) + { + if (PhysFs::isDirectory((path + *i).c_str())) + list.push_back(*i); + } + PhysFs::freeList(fonts); +} + void Files::getFilesWithDir(const std::string &path, StringVect &list) { char **fonts = PhysFs::enumerateFiles(path.c_str()); diff --git a/src/utils/files.h b/src/utils/files.h index 9363f96da..2046b8ac9 100644 --- a/src/utils/files.h +++ b/src/utils/files.h @@ -57,6 +57,8 @@ namespace Files void getFiles(const std::string &path, StringVect &list); + void getDirs(const std::string &path, StringVect &list); + void getFilesWithDir(const std::string &restrict path, StringVect &restrict list); } // namespace Files -- cgit v1.2.3-70-g09d2