[Fontconfig] fontconfig: Branch 'master'

Akira TAGOH tagoh at kemper.freedesktop.org
Wed Mar 5 01:30:31 PST 2014


 src/fcstat.c |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

New commits:
commit 39a2f1e8f98d27b929d56a55a68b3a20d2f8dd32
Author: Akira TAGOH <akira at tagoh.org>
Date:   Wed Mar 5 18:29:29 2014 +0900

    Fallback to lstat() in case the filesystem doesn't support d_type in struct dirent

diff --git a/src/fcstat.c b/src/fcstat.c
index f384767..0a88097 100644
--- a/src/fcstat.c
+++ b/src/fcstat.c
@@ -186,10 +186,8 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum)
     struct Adler32 ctx;
     struct dirent **files;
     int n;
-#ifndef HAVE_STRUCT_DIRENT_D_TYPE
     int ret = 0;
     size_t len = strlen ((const char *)dir);
-#endif
 
     Adler32Init (&ctx);
 
@@ -210,7 +208,9 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum)
 
 #ifdef HAVE_STRUCT_DIRENT_D_TYPE
 	dtype = files[n]->d_type;
-#else
+	if (dtype == DT_UNKNOWN)
+	{
+#endif
 	struct stat statb;
 	char f[PATH_MAX + 1];
 
@@ -227,20 +227,18 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum)
 	    goto bail;
 
 	dtype = statb.st_mode;
+#ifdef HAVE_STRUCT_DIRENT_D_TYPE
+	}
 #endif
 	Adler32Update (&ctx, files[n]->d_name, dlen + 1);
 	Adler32Update (&ctx, (char *)&dtype, sizeof (int));
 
-#ifndef HAVE_STRUCT_DIRENT_D_TYPE
       bail:
-#endif
 	free (files[n]);
     }
     free (files);
-#ifndef HAVE_STRUCT_DIRENT_D_TYPE
     if (ret == -1)
 	return -1;
-#endif
 
     *checksum = Adler32Finish (&ctx);
 


More information about the Fontconfig mailing list