X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=fc-cache%2Ffc-cache.c;h=6aa53a5a76bc5c2445909f572509f6ca157fffb3;hb=cd9bca69702900ca9b24319c76b2dc9432bb548f;hp=d2809ee24f876b76ce8d062d6f5b38937137ed16;hpb=4262e0b3853bc2153270eb33d09a063f852f3f90;p=fontconfig.git diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c index d2809ee..6aa53a5 100644 --- a/fc-cache/fc-cache.c +++ b/fc-cache/fc-cache.c @@ -183,7 +183,7 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool FcStrSetDestroy (subdirs); continue; } - if (!FcDirScan (set, subdirs, 0, FcConfigGetBlanks (config), dir, force)) + if (!FcDirScanConfig (set, subdirs, 0, FcConfigGetBlanks (config), dir, force, config)) { fprintf (stderr, "\"%s\": error scanning\n", dir); FcFontSetDestroy (set); @@ -191,23 +191,27 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool ret++; continue; } -#if 0 // put this back later after fixing DirCacheValid - if (!force && FcDirCacheValid (dir)) + if (!force && FcDirCacheValid (dir) && FcDirCacheHasCurrentArch (dir)) { if (verbose) printf ("skipping, %d fonts, %d dirs\n", set->nfont, nsubdirs(subdirs)); } else -#endif { if (verbose) printf ("caching, %d fonts, %d dirs\n", set->nfont, nsubdirs (subdirs)); - if (!FcDirSave (set, dir)) + if (!FcDirCacheValid (dir)) + if (!FcDirCacheUnlink (dir)) + ret++; + + if (!FcDirSave (set, subdirs, dir)) { - fprintf (stderr, "Can't save cache in \"%s\"\n", dir); + if (!ret) + fprintf (stderr, "Caches are currently saved to \"%s\"\n", PKGCACHEDIR); + fprintf (stderr, "Can't save cache for \"%s\"\n", dir); ret++; } } @@ -271,10 +275,7 @@ main (int argc, char **argv) if (systemOnly) FcConfigEnableHome (FcFalse); - FcCacheForce (FcTrue); - /* need to use FcInitLoadConfig when we use dirs */ - FcInit (); - config = FcConfigGetCurrent (); + config = FcInitLoadConfig (); if (!config) { fprintf (stderr, "%s: Can't init font config library\n", argv[0]);