diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2010-02-26 01:47:56 -0500 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2010-02-26 01:47:56 -0500 |
commit | 111e5b6d690970fce1abaf39e01d6d2498c9cfb3 (patch) | |
tree | 36b8deb4483f946a2252971402beaf70aedb49bb /fc-cache/fc-cache.c | |
parent | 3cd1e673a9b518784183029d5cc1d2adae0cb29a (diff) |
Bug 25152 Don't sleep(2) if all caches were uptodate
Diffstat (limited to 'fc-cache/fc-cache.c')
-rw-r--r-- | fc-cache/fc-cache.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c index 19e9d0df..73777656 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; |