aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2016-02-25 21:05:50 +0100
committerJohannes Schickel2016-02-25 21:05:53 +0100
commit47f82d439d545a0173ae41d8572ac6e4ba47a5cd (patch)
tree95c48f0a0d5d8649e210c35f08a9a09e9fa79797
parentfb007a5914357288a17cc9bff4eb3076efab26e4 (diff)
downloadscummvm-rg350-47f82d439d545a0173ae41d8572ac6e4ba47a5cd.tar.gz
scummvm-rg350-47f82d439d545a0173ae41d8572ac6e4ba47a5cd.tar.bz2
scummvm-rg350-47f82d439d545a0173ae41d8572ac6e4ba47a5cd.zip
DREAMCAST: Fix listing of savefiles.
We introduced a new pattern '#' in 06641f29a7bdcda280b0291f215193f055c83969. Starting from that commit all backends were supposed to support it. Dreamcast was missed. To support it in Dreamcast we now use Common::String::matchString to do pattern matching.
-rw-r--r--backends/platform/dc/vmsave.cpp29
1 files changed, 3 insertions, 26 deletions
diff --git a/backends/platform/dc/vmsave.cpp b/backends/platform/dc/vmsave.cpp
index 5f5cdff24f..d7602bd43e 100644
--- a/backends/platform/dc/vmsave.cpp
+++ b/backends/platform/dc/vmsave.cpp
@@ -165,30 +165,7 @@ static bool tryDelete(const char *filename, int vm)
return true;
}
-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;
-}
-
-static void tryList(const char *glob, int vm, Common::StringArray &list)
+static void tryList(const Common::String &glob, int vm, Common::StringArray &list)
{
struct vmsinfo info;
struct superblock super;
@@ -205,7 +182,7 @@ static void tryList(const char *glob, int vm, Common::StringArray &list)
char buf[16];
strncpy(buf, (char *)de.entry+4, 12);
buf[12] = 0;
- if (matches(glob, buf))
+ if (glob.matchString(buf))
list.push_back(buf);
}
}
@@ -425,7 +402,7 @@ Common::StringArray VMSaveManager::listSavefiles(const Common::String &pattern)
Common::StringArray list;
for (int i=0; i<24; i++)
- tryList(pattern.c_str(), i, list);
+ tryList(pattern, i, list);
return list;
}