]> git.wh0rd.org - fontconfig.git/blobdiff - fc-cache/fc-cache.c
Fix up fc-cache and fc-cat for no global cache changes.
[fontconfig.git] / fc-cache / fc-cache.c
index ce6b567ce92e6b92ce064261640a4899f8713b5d..134d33dbb8d3244e33c8ce0fe931708738206ed4 100644 (file)
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include <fontconfig/fontconfig.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #else
 #define HAVE_GETOPT 1
 #endif
 
+#include <fontconfig/fontconfig.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+
 #if defined (_WIN32)
 #define STRICT
 #include <windows.h>
@@ -125,7 +126,6 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool
 {
     int                ret = 0;
     const FcChar8 *dir;
-    const FcChar8 *dir_orig;
     FcFontSet  *set;
     FcStrSet   *subdirs;
     FcStrList  *sublist;
@@ -135,13 +135,11 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool
      * Now scan all of the directories into separate databases
      * and write out the results
      */
-    while ((dir_orig = FcStrListNext (list)))
+    while ((dir = FcStrListNext (list)))
     {
-       dir = FcConfigNormalizeFontDir (config, dir_orig);
-       
        if (verbose)
        {
-           printf ("%s: \"%s\": ", program, dir ? dir : dir_orig);
+           printf ("%s: \"%s\": ", program, dir);
            fflush (stdout);
        }
        
@@ -221,7 +219,7 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool
        if (really_force)
            FcDirCacheUnlink (dir, config);
 
-       if (!FcDirScanConfig (set, subdirs, 0, FcConfigGetBlanks (config), dir, force, config))
+       if (!FcDirScanConfig (set, subdirs, FcConfigGetBlanks (config), dir, force, config))
        {
            fprintf (stderr, "\"%s\": error scanning\n", dir);
            FcFontSetDestroy (set);
@@ -229,7 +227,7 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool
            ret++;
            continue;
        }
-       if (!force && FcDirCacheValid (dir) && FcDirCacheHasCurrentArch (dir))
+       if (!force && FcDirCacheValid (dir, config))
        {
            if (verbose)
                printf ("skipping, %d fonts, %d dirs\n",
@@ -243,14 +241,12 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool
 
            /* This is the only reason we can't combine 
             * Valid w/HasCurrentArch... */
-            if (!FcDirCacheValid (dir))
+            if (!FcDirCacheValid (dir, config))
                 if (!FcDirCacheUnlink (dir, config))
                     ret++;
 
            if (!FcDirSave (set, subdirs, dir))
            {
-                if (!ret)
-                    fprintf (stderr, "Caches are currently saved to \"%s\"\n", PKGCACHEDIR);
                fprintf (stderr, "Can't save cache for \"%s\"\n", dir);
                ret++;
            }