diff options
author | marha <marha@users.sourceforge.net> | 2013-11-07 08:21:08 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-11-07 08:21:08 +0100 |
commit | f7050e0ff2d1dd147ff5ef45f8ff7d8d7833db48 (patch) | |
tree | b730b2594caa70dcbbf0a860da25d46d26f747ed /fontconfig/fc-cache | |
parent | 31fd4c5654595a4763e492e4ec26f66ca3a8a405 (diff) | |
download | vcxsrv-f7050e0ff2d1dd147ff5ef45f8ff7d8d7833db48.tar.gz vcxsrv-f7050e0ff2d1dd147ff5ef45f8ff7d8d7833db48.tar.bz2 vcxsrv-f7050e0ff2d1dd147ff5ef45f8ff7d8d7833db48.zip |
xextproto fontconfig libxcb mesa xserver git update 7 Nov 2013
xserver commit ab4b1fb38a61feb73d8336cc7a3399eb9d3d25be
libxcb commit e4e0c6eec861f4c69da12060dc8dbe7a63fa5eb6
libxcb/xcb-proto commit 530817c5a926f006d8d61f9dcfd9ab73269a9805
xextproto commit 3f355f138d6df57e067458a20f47307883048adb
fontconfig commit a4443e64c89256087d40462cfbb482950873e366
mesa commit 110009302bddb4c42a5b3ed5ca451d6bb50a06a0
Diffstat (limited to 'fontconfig/fc-cache')
-rw-r--r-- | fontconfig/fc-cache/fc-cache.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/fontconfig/fc-cache/fc-cache.c b/fontconfig/fc-cache/fc-cache.c index af7ba6dd6..27c751304 100644 --- a/fontconfig/fc-cache/fc-cache.c +++ b/fontconfig/fc-cache/fc-cache.c @@ -118,7 +118,7 @@ usage (char *program, int error) static FcStrSet *processed_dirs; static int -scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool recursive, int *changed) +scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool recursive, int *changed, FcStrSet *updateDirs) { int ret = 0; const FcChar8 *dir; @@ -137,7 +137,10 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, { if (verbose) { - printf ("%s: ", dir); + if (!recursive) + printf ("Re-scanning %s: ", dir); + else + printf ("%s: ", dir); fflush (stdout); } @@ -226,6 +229,8 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, } for (i = 0; i < FcCacheNumSubdir (cache); i++) FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); + if (updateDirs && FcCacheNumSubdir (cache) > 0) + FcStrSetAdd (updateDirs, dir); FcDirCacheUnload (cache); @@ -238,7 +243,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, continue; } FcStrSetAdd (processed_dirs, dir); - ret += scanDirs (sublist, config, force, really_force, verbose, recursive, changed); + ret += scanDirs (sublist, config, force, really_force, verbose, recursive, changed, updateDirs); FcStrListDone (sublist); } else @@ -271,7 +276,7 @@ cleanCacheDirectories (FcConfig *config, FcBool verbose) int main (int argc, char **argv) { - FcStrSet *dirs; + FcStrSet *dirs, *updateDirs; FcStrList *list; FcBool verbose = FcFalse; FcBool force = FcFalse; @@ -369,13 +374,18 @@ main (int argc, char **argv) fprintf(stderr, "Cannot malloc\n"); return 1; } - + + updateDirs = FcStrSetCreate (); changed = 0; - ret = scanDirs (list, config, force, really_force, verbose, FcTrue, &changed); + ret = scanDirs (list, config, force, really_force, verbose, FcTrue, &changed, updateDirs); /* Update the directory cache again to avoid the race condition as much as possible */ - FcStrListFirst (list); - ret += scanDirs (list, config, FcTrue, really_force, verbose, FcFalse, &changed); FcStrListDone (list); + list = FcStrListCreate (updateDirs); + if (list) + { + ret += scanDirs (list, config, FcTrue, really_force, verbose, FcFalse, &changed, NULL); + FcStrListDone (list); + } /* * Try to create CACHEDIR.TAG anyway. |