summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-09-11 19:09:59 +0200
committerAki <please@ignore.pl>2022-09-11 19:09:59 +0200
commiteb1433d1c9d87470952a8ef626c790a8a60b8d76 (patch)
tree9ecffbd22f9a60f11fbc5d666d80c69695e72fc8
parent2f0936b029fb9d9f11a0fb6a0cdc1f8bed03f49f (diff)
downloadstarshatter-eb1433d1c9d87470952a8ef626c790a8a60b8d76.zip
starshatter-eb1433d1c9d87470952a8ef626c790a8a60b8d76.tar.gz
starshatter-eb1433d1c9d87470952a8ef626c790a8a60b8d76.tar.bz2
Archive Find is now case insensitive like originally
-rw-r--r--ArchiveEx/Archive.cpp12
-rw-r--r--ArchiveEx/dat.cpp4
2 files changed, 13 insertions, 3 deletions
diff --git a/ArchiveEx/Archive.cpp b/ArchiveEx/Archive.cpp
index a418446..c6e4e97 100644
--- a/ArchiveEx/Archive.cpp
+++ b/ArchiveEx/Archive.cpp
@@ -1,5 +1,11 @@
#include "Archive.h"
+#ifdef _WIN32
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
#include <cstdint>
#include <cstdio>
#include <cstring>
@@ -125,7 +131,11 @@ Archive::Find(const char* filepath) const
auto path = std::make_unique<char[]>(std::strlen(filepath) + 1);
ConvertPathSeparator(filepath, path.get());
for (std::size_t i = 0; i < entries.size(); ++i) {
- if (0 == std::strcmp(entries[i].name, path.get()))
+#ifdef _WIN32
+ if (0 == _stricmp(entries[i].name, path.get()))
+#else
+ if (0 == strcasecmp(entries[i].name, path.get()))
+#endif
return i;
}
return -1;
diff --git a/ArchiveEx/dat.cpp b/ArchiveEx/dat.cpp
index 6df04bc..ceeaa9e 100644
--- a/ArchiveEx/dat.cpp
+++ b/ArchiveEx/dat.cpp
@@ -1,4 +1,4 @@
-#ifdef WIN32
+#ifdef _WIN32
#include <shlwapi.h>
#else
#include <fnmatch.h>
@@ -179,7 +179,7 @@ FilterFile(const std::vector<std::string>& patterns, std::function<void(const ch
if (patterns.empty())
return func(name);
for (const auto& pattern : patterns) {
-#ifdef WIN32
+#ifdef _WIN32
if (PathMatchSpecA(name, pattern.c_str()))
#else
if (0 == fnmatch(pattern.c_str(), name, FNM_PATHNAME | FNM_LEADING_DIR))