[Fontconfig] fontconfig: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Thu Feb 25 22:48:27 PST 2010


 fc-cache/fc-cache.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

New commits:
commit 111e5b6d690970fce1abaf39e01d6d2498c9cfb3
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Feb 26 01:47:56 2010 -0500

    Bug 25152 Don't sleep(2) if all caches were uptodate

diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c
index 19e9d0d..7377765 100644
--- a/fc-cache/fc-cache.c
+++ b/fc-cache/fc-cache.c
@@ -117,7 +117,7 @@ usage (char *program, int error)
 static FcStrSet *processed_dirs;
 
 static int
-scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose)
+scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, int *changed)
 {
     int		    ret = 0;
     const FcChar8   *dir;
@@ -190,6 +190,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
 	
 	if (!cache)
 	{
+	    (*changed)++;
 	    cache = FcDirCacheRead (dir, FcTrue, config);
 	    if (!cache)
 	    {
@@ -241,7 +242,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
 	    continue;
 	}
 	FcStrSetAdd (processed_dirs, dir);
-	ret += scanDirs (sublist, config, force, really_force, verbose);
+	ret += scanDirs (sublist, config, force, really_force, verbose, changed);
     }
     FcStrListDone (list);
     return ret;
@@ -369,6 +370,7 @@ main (int argc, char **argv)
     FcBool	systemOnly = FcFalse;
     FcConfig	*config;
     int		i;
+    int		changed;
     int		ret;
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
@@ -446,7 +448,8 @@ main (int argc, char **argv)
 	return 1;
     }
 	
-    ret = scanDirs (list, config, force, really_force, verbose);
+    changed = 0;
+    ret = scanDirs (list, config, force, really_force, verbose, &changed);
 
     FcStrSetDestroy (processed_dirs);
 
@@ -461,7 +464,8 @@ main (int argc, char **argv)
      */
     FcConfigDestroy (config);
     FcFini ();
-    sleep (2);
+    if (changed)
+	sleep (2);
     if (verbose)
 	printf ("%s: %s\n", argv[0], ret ? "failed" : "succeeded");
     return ret;


More information about the Fontconfig mailing list