FcFontSet *fonts, *cached_fonts;
FcGlobalCache *cache;
FcStrList *list;
+ FcStrSet *oldDirs;
FcChar8 *dir;
fonts = FcFontSetCreate ();
if (!cache)
goto bail1;
+ oldDirs = FcStrSetCreate ();
+ if (!oldDirs)
+ goto bail2;
+
if (config->cache)
- FcGlobalCacheLoad (cache, config->cache);
+ FcGlobalCacheLoad (cache, oldDirs, config->cache);
cached_fonts = FcCacheRead(config, cache);
if (!cached_fonts)
{
list = FcConfigGetFontDirs (config);
if (!list)
- goto bail1;
+ goto bail2;
while ((dir = FcStrListNext (list)))
{
if (FcDebug () & FC_DBG_FONTSET)
- printf ("scan dir %s\n", dir);
+ printf ("build scan dir %s\n", dir);
FcDirScanConfig (fonts, config->fontDirs, cache,
config->blanks, dir, FcFalse, config);
}
{
int i;
+ for (i = 0; i < oldDirs->num; i++)
+ {
+ if (FcDebug () & FC_DBG_FONTSET)
+ printf ("scan dir %s\n", oldDirs->strs[i]);
+ FcDirScanConfig (fonts, config->fontDirs, cache,
+ config->blanks, oldDirs->strs[i],
+ FcFalse, config);
+ }
+
for (i = 0; i < cached_fonts->nfont; i++)
{
if (FcConfigAcceptFont (config, cached_fonts->fonts[i]))
if (config->cache)
FcGlobalCacheSave (cache, config->cache);
FcGlobalCacheDestroy (cache);
+ FcStrSetDestroy (oldDirs);
FcConfigSetFonts (config, fonts, FcSetSystem);
return FcTrue;
+bail2:
+ FcStrSetDestroy (oldDirs);
bail1:
FcFontSetDestroy (fonts);
bail0:
break;
case FcOpString:
v.type = FcTypeString;
- v.u.s = FcObjectStaticName(e->u.sval);
+ v.u.s = FcStrStaticName(e->u.sval);
v = FcValueSave (v);
break;
case FcOpMatrix:
switch (e->op) {
case FcOpPlus:
v.type = FcTypeString;
- v.u.s = FcObjectStaticName (FcStrPlus (vl.u.s, vr.u.s));
+ v.u.s = FcStrStaticName (FcStrPlus (vl.u.s, vr.u.s));
if (!v.u.s)
v.type = FcTypeVoid;
home = getenv ("USERPROFILE");
#endif
- return home;
+ return (FcChar8 *) home;
}
return 0;
}