Forcibly rescan a directory before writing a fresh local cache file for
authorPatrick Lam <plam@MIT.EDU>
Wed, 2 Nov 2005 07:01:25 +0000 (07:01 +0000)
committerPatrick Lam <plam@MIT.EDU>
Wed, 2 Nov 2005 07:01:25 +0000 (07:01 +0000)
    that directory, fixing the losing-fonts problem reported by Mike Fabian
    and also apparently the font cache file corruption.

ChangeLog
fc-cache/fc-cache.c

index fdd56ee..7f1845f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,12 @@
 2005-11-02  Patrick Lam  <plam@mit.edu>
+       * fc-cache/fc-cache.c (scanDirs):
+
+       Forcibly rescan a directory before writing a fresh local
+       cache file for that directory, fixing the losing-fonts
+       problem reported by Mike Fabian and also apparently the 
+       font cache file corruption.
+
+2005-11-02  Patrick Lam  <plam@mit.edu>
        * src/fccache.c (FcGlobalCacheLoad):
 
        Fix thinko: actually, the whole global cache is stale 
index 388baa7..3a4b786 100644 (file)
@@ -207,6 +207,15 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool
                 if (!FcDirCacheUnlink (dir))
                     ret++;
 
+           if (!FcDirScan (set, subdirs, 0, FcConfigGetBlanks (config), dir, FcTrue))
+           {
+               fprintf (stderr, "\"%s\": error scanning\n", dir);
+               FcFontSetDestroy (set);
+               FcStrSetDestroy (subdirs);
+               ret++;
+               continue;
+           }
+
            if (!FcDirSave (set, subdirs, dir))
            {
                fprintf (stderr, "Can't save cache in \"%s\"\n", dir);