diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-03-07 22:02:59 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-03-07 22:02:59 +0300 |
commit | bbd71d4a8c95092deb9cbf4aef86722a1e9628db (patch) | |
tree | 59566c4baa2e32287fe5867e5616ca560d3f3bf5 /src/fs/files.cpp | |
parent | 6f7f469430ea05946a11dd41f62010961be6285e (diff) | |
download | manaplus-bbd71d4a8c95092deb9cbf4aef86722a1e9628db.tar.gz manaplus-bbd71d4a8c95092deb9cbf4aef86722a1e9628db.tar.bz2 manaplus-bbd71d4a8c95092deb9cbf4aef86722a1e9628db.tar.xz manaplus-bbd71d4a8c95092deb9cbf4aef86722a1e9628db.zip |
Fix unit tests on windows.
Diffstat (limited to 'src/fs/files.cpp')
-rw-r--r-- | src/fs/files.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/fs/files.cpp b/src/fs/files.cpp index d8a6e76ec..f6a138475 100644 --- a/src/fs/files.cpp +++ b/src/fs/files.cpp @@ -38,6 +38,8 @@ #include "debug.h" +extern const char *dirSeparator; + #ifdef ANDROID void Files::extractLocale() { @@ -211,7 +213,21 @@ int Files::copyFile(const std::string &restrict srcName, bool Files::existsLocal(const std::string &path) { struct stat statbuf; +#ifdef WIN32 + // in windows path\file.ext\ by default detected as exists + // if file.ext is not directory, need return false + const bool res = (stat(path.c_str(), &statbuf) == 0); + if (res == false) + return false; + if ((findLast(path, "/") == true || findLast(path, "\\") == true) && + S_ISDIR(statbuf.st_mode) == 0) + { + return false; + } + return true; +#else // WIN32 return stat(path.c_str(), &statbuf) == 0; +#endif // WIN32 } bool Files::loadTextFileLocal(const std::string &fileName, |