static void fontSetEnumCB(void *data, const char *, const char *fname) { FontSetsCBData *d = static_cast<FontSetsCBData*>(data); FileSystemPrivate *p = d->p; /* Only consider filenames with font extensions */ const char *ext = p->findExt(fname); if (!ext) return; std::string lower(ext); strToLower(lower); if (!contains(p->extensions[FileSystem::Font], lower)) return; std::string filename("Fonts/"); filename += fname; PHYSFS_File *handle = PHYSFS_openRead(filename.c_str()); if (!handle) return; SDL_RWops ops; p->initReadOps(handle, ops, false); d->sfs->initFontSetCB(ops, filename); SDL_RWclose(&ops); }
static void fontSetEnumCB(void *data, const char *, const char *fname) { FontSetsCBData *d = static_cast<FontSetsCBData*>(data); FileSystemPrivate *p = d->p; /* Only consider filenames with font extensions */ const char *ext = p->findExt(fname); if (!ext) return; char lowExt[8]; size_t i; for (i = 0; i < sizeof(lowExt)-1 && ext[i]; ++i) lowExt[i] = tolower(ext[i]); lowExt[i] = '\0'; if (strcmp(lowExt, "ttf") && strcmp(lowExt, "otf")) return; char filename[512]; snprintf(filename, sizeof(filename), "Fonts/%s", fname); PHYSFS_File *handle = PHYSFS_openRead(filename); if (!handle) return; SDL_RWops ops; p->initReadOps(handle, ops, false); d->sfs->initFontSetCB(ops, filename); SDL_RWclose(&ops); }