diff options
author | Johannes Schickel | 2016-02-25 21:05:50 +0100 |
---|---|---|
committer | Johannes Schickel | 2016-02-25 21:05:53 +0100 |
commit | 47f82d439d545a0173ae41d8572ac6e4ba47a5cd (patch) | |
tree | 95c48f0a0d5d8649e210c35f08a9a09e9fa79797 | |
parent | fb007a5914357288a17cc9bff4eb3076efab26e4 (diff) | |
download | scummvm-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.cpp | 29 |
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; } |