mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-06 01:31:39 +00:00
DREAMCAST: Fix listing of savefiles.
We introduced a new pattern '#' in 06641f29a7
.
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.
This commit is contained in:
parent
fb007a5914
commit
47f82d439d
@ -165,30 +165,7 @@ static bool tryDelete(const char *filename, int vm)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool matches(const char *glob, const char *name)
|
static void tryList(const Common::String &glob, int vm, Common::StringArray &list)
|
||||||
{
|
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
struct vmsinfo info;
|
struct vmsinfo info;
|
||||||
struct superblock super;
|
struct superblock super;
|
||||||
@ -205,7 +182,7 @@ static void tryList(const char *glob, int vm, Common::StringArray &list)
|
|||||||
char buf[16];
|
char buf[16];
|
||||||
strncpy(buf, (char *)de.entry+4, 12);
|
strncpy(buf, (char *)de.entry+4, 12);
|
||||||
buf[12] = 0;
|
buf[12] = 0;
|
||||||
if (matches(glob, buf))
|
if (glob.matchString(buf))
|
||||||
list.push_back(buf);
|
list.push_back(buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -425,7 +402,7 @@ Common::StringArray VMSaveManager::listSavefiles(const Common::String &pattern)
|
|||||||
Common::StringArray list;
|
Common::StringArray list;
|
||||||
|
|
||||||
for (int i=0; i<24; i++)
|
for (int i=0; i<24; i++)
|
||||||
tryList(pattern.c_str(), i, list);
|
tryList(pattern, i, list);
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user