]> git.wh0rd.org - fontconfig.git/commitdiff
Do not clean cache files for different architectures
authorMike FABIAN <mfabian@suse.de>
Fri, 27 Oct 2006 17:26:50 +0000 (10:26 -0700)
committerKeith Packard <keithp@neko.keithp.com>
Fri, 27 Oct 2006 17:26:50 +0000 (10:26 -0700)
Use filenames to clean cache files for current architecture only. This is
sufficient as cache files live in their own directory where filenames are
under fontconfig control.

fc-cache/fc-cache.c

index bda8b1468cfa7a0504cac35a821a186070ed0b2a..acaa8ba11012f21fb8563082a066551cfb3551aa 100644 (file)
@@ -22,6 +22,8 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "../fc-arch/fcarch.h"
+
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #else
@@ -40,6 +42,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <dirent.h>
+#include <string.h>
 
 #if defined (_WIN32)
 #define STRICT
@@ -296,6 +299,12 @@ cleanCacheDirectory (FcConfig *config, FcChar8 *dir, FcBool verbose)
 
        if (ent->d_name[0] == '.')
            continue;
+       /* skip cache files for different architectures and */
+       /* files which are not cache files at all */
+       if (strlen(ent->d_name) != 32 + strlen ("-" FC_ARCHITECTURE FC_CACHE_SUFFIX) ||
+           strcmp(ent->d_name + 32, "-" FC_ARCHITECTURE FC_CACHE_SUFFIX))
+           continue;
+       
        file_name = FcStrPlus (dir_base, (FcChar8 *) ent->d_name);
        if (!file_name)
        {