summaryrefslogtreecommitdiff
path: root/fc-cache
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2010-02-26 01:47:56 -0500
committerBehdad Esfahbod <behdad@behdad.org>2010-02-26 01:47:56 -0500
commit111e5b6d690970fce1abaf39e01d6d2498c9cfb3 (patch)
tree36b8deb4483f946a2252971402beaf70aedb49bb /fc-cache
parent3cd1e673a9b518784183029d5cc1d2adae0cb29a (diff)
Bug 25152 Don't sleep(2) if all caches were uptodate
Diffstat (limited to 'fc-cache')
-rw-r--r--fc-cache/fc-cache.c12
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;