]> git.wh0rd.org - fontconfig.git/commitdiff
Move FcConfigNormalizeFontDir call so that it doesn't result in infinite
authorPatrick Lam <plam@MIT.EDU>
Fri, 27 Jan 2006 05:47:59 +0000 (05:47 +0000)
committerPatrick Lam <plam@MIT.EDU>
Fri, 27 Jan 2006 05:47:59 +0000 (05:47 +0000)
    recursion (reported by Ronny V. Vindenes).

ChangeLog
fc-cache/fc-cache.c
fontconfig/fontconfig.h
src/fccache.c
src/fcint.h

index e85113bc900b67f99e45f90c37cf7a1c04fc27a8..0975c223a5a77d2fb08061e142c9fe8f8fae2efc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-01-27  Patrick Lam  <plam@mit.edu>
+       * fc-cache/fc-cache.c (scanDirs):
+       * fontconfig/fontconfig.h:
+       * src/fcint.h:
+       * src/fccache.c (FcDirCacheValid, FcDirCacheHasCurrentArch):
+
+       Move FcConfigNormalizeFontDir call so that it doesn't result in
+       infinite recursion (reported by Ronny V. Vindenes).
+
 2006-01-26  Patrick Lam  <plam@mit.edu>
        * src/fccache.c (FcDirCacheValid, FcDirCacheHasCurrentArch):
        * src/fccfg.c (FcConfigNormalizeFontDir):
index 4900e45e357134faf72632326a80b67378caba70..2d6c2c3140d9eceb9ea11a841385dc712b902f0c 100644 (file)
@@ -112,7 +112,7 @@ static int
 scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool verbose)
 {
     int                ret = 0;
-    FcChar8    *dir;
+    const FcChar8 *dir;
     FcFontSet  *set;
     FcStrSet   *subdirs;
     FcStrList  *sublist;
@@ -124,6 +124,10 @@ scanDirs (FcStrList *list, FcConfig *config, char *program, FcBool force, FcBool
      */
     while ((dir = FcStrListNext (list)))
     {
+       dir = FcConfigNormalizeFontDir (config, dir);
+       if (!dir)
+           return FcFalse;
+
        if (verbose)
        {
            printf ("%s: \"%s\": ", program, dir);
index 154959360b3493530b00c6d77984866ff02851e3..0bcef1940e3a8385cebafb8af91fc05c4b31b13b 100644 (file)
@@ -328,6 +328,10 @@ FcConfigBuildFonts (FcConfig *config);
 FcStrList *
 FcConfigGetFontDirs (FcConfig   *config);
 
+const FcChar8 *
+FcConfigNormalizeFontDir (FcConfig     *config, 
+                         const FcChar8 *d);
+
 FcStrList *
 FcConfigGetConfigDirs (FcConfig   *config);
 
index 84915515d528427f216c07ed9c8c6869964cb811..a687483bc9fdcdca1630d9433e8cbc75112ff2dc 100644 (file)
@@ -609,10 +609,6 @@ FcDirCacheValid (const FcChar8 *dir)
     struct stat file_stat, dir_stat;
     int        fd;
 
-    dir = FcConfigNormalizeFontDir (FcConfigGetCurrent(), dir);
-    if (!dir)
-       return FcFalse;
-
     if (stat ((char *) dir, &dir_stat) < 0)
         return FcFalse;
 
@@ -648,10 +644,6 @@ FcDirCacheHasCurrentArch (const FcChar8 *dir)
     off_t      current_arch_start;
     char       *current_arch_machine_name;
 
-    dir = FcConfigNormalizeFontDir (FcConfigGetCurrent(), dir);
-    if (!dir)
-       return FcFalse;
-
     fd = FcDirCacheOpen (dir);
     if (fd < 0)
        goto bail;
index 48f209e58a25835d891de2037e5f6ba826b1d2c1..b77b50d08d3dda8a882bf0734f34b0a4962be695 100644 (file)
@@ -496,10 +496,6 @@ FcBool
 FcConfigAddConfigFile (FcConfig                *config,
                       const FcChar8    *f);
 
-const FcChar8 *
-FcConfigNormalizeFontDir (FcConfig     *config, 
-                         const FcChar8 *d);
-
 FcBool
 FcConfigSetCache (FcConfig     *config,
                  const FcChar8 *c);