aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/n64/pakfs_save_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/n64/pakfs_save_manager.cpp')
-rw-r--r--backends/platform/n64/pakfs_save_manager.cpp29
1 files changed, 5 insertions, 24 deletions
diff --git a/backends/platform/n64/pakfs_save_manager.cpp b/backends/platform/n64/pakfs_save_manager.cpp
index 3fbf55a199..5499462d68 100644
--- a/backends/platform/n64/pakfs_save_manager.cpp
+++ b/backends/platform/n64/pakfs_save_manager.cpp
@@ -21,9 +21,8 @@
*/
#include <n64utils.h>
-#include "pakfs_save_manager.h"
-static bool matches(const char *glob, const char *name);
+#include "pakfs_save_manager.h"
bool deleteSaveGame(const char *filename) {
int res = removeFileOnPak(filename);
@@ -56,11 +55,14 @@ Common::StringList PAKSaveManager::listSavefiles(const Common::String &pattern)
PAKDIR *dirp = pakfs_opendir();
pakfs_dirent *dp;
Common::StringList list;
+ Common::String *fname;
while ((dp = pakfs_readdir(dirp)) != NULL) {
- if (matches(pattern.c_str(), dp->entryname))
+ fname = new Common::String(dp->entryname);
+ if (fname->matchString(pattern, false, false))
list.push_back(dp->entryname);
+ delete fname;
free(dp);
}
@@ -69,24 +71,3 @@ Common::StringList PAKSaveManager::listSavefiles(const Common::String &pattern)
return list;
}
-static bool matches(const char *glob, const char *name) {
- while (*glob)
- if (*glob == '*') {
- while (*glob == '*')
- glob++;
- do {
- if ((*name == *glob || *glob == '?') &&
- matches(glob, name))
- return true;
- } while (*name++);
- return false;
- } else if (!*name)
- return false;
- else if (*glob == '?' || *glob == *name) {
- glob++;
- name++;
- } else
- return false;
- return !*name;
-}
-