mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 21:39:57 +00:00
Add case-insensitive search for fonts folder
This commit is contained in:
parent
69f32df495
commit
eb995df65a
1 changed files with 22 additions and 2 deletions
|
|
@ -465,7 +465,7 @@ struct FontSetsCBData
|
|||
};
|
||||
|
||||
static PHYSFS_EnumerateCallbackResult
|
||||
findFontsFolderCB (void *data, const char *dir, const char *fname)
|
||||
fontSetEnumCB (void *data, const char *dir, const char *fname)
|
||||
{
|
||||
FontSetsCBData *d = static_cast<FontSetsCBData*>(data);
|
||||
|
||||
|
|
@ -503,11 +503,31 @@ findFontsFolderCB (void *data, const char *dir, const char *fname)
|
|||
return PHYSFS_ENUM_OK;
|
||||
}
|
||||
|
||||
/* Basically just a case-insensitive search
|
||||
* for the folder "Fonts"... */
|
||||
static PHYSFS_EnumerateCallbackResult
|
||||
findFontsFolderCB(void *data, const char *, const char *fname)
|
||||
{
|
||||
size_t i = 0;
|
||||
char buffer[512];
|
||||
const char *s = fname;
|
||||
|
||||
while (s && i < sizeof(buffer))
|
||||
buffer[i++] = tolower(*s++);
|
||||
|
||||
buffer[i] = '\0';
|
||||
|
||||
if (strcmp(buffer, "fonts") == 0)
|
||||
PHYSFS_enumerate(fname, fontSetEnumCB, data);
|
||||
|
||||
return PHYSFS_ENUM_OK;
|
||||
}
|
||||
|
||||
void FileSystem::initFontSets(SharedFontState &sfs)
|
||||
{
|
||||
FontSetsCBData d = { p, &sfs };
|
||||
|
||||
PHYSFS_enumerate("Fonts", findFontsFolderCB, &d);
|
||||
PHYSFS_enumerate("", findFontsFolderCB, &d);
|
||||
}
|
||||
|
||||
struct OpenReadEnumData
|
||||
|
|
|
|||
Loading…
Reference in a new issue