|
|
|
|
|
|
|
test/test-migration.c | 18 ++++++++++++++++++
|
|
|
|
1 file changed, 18 insertions(+)
|
|
|
|
|
|
|
|
New commits:
|
|
|
|
commit 76ea9af816a50c6bb0b3dc2960460a90fadd9cdb
|
|
|
|
Author: Akira TAGOH <akira@tagoh.org>
|
|
|
|
Date: Tue Oct 22 15:00:29 2013 +0900
|
|
|
|
|
|
|
|
Use stat() if there are no d_type in struct dirent
|
|
|
|
|
|
|
|
Reported by Thomas Klausner
|
|
|
|
|
|
|
|
diff --git a/test/test-migration.c b/test/test-migration.c
|
|
|
|
index a0ab839..9709651 100644
|
|
|
|
--- a/test/test-migration.c
|
|
|
|
+++ b/test/test-migration.c
|
|
|
|
@@ -4,6 +4,11 @@
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <dirent.h>
|
|
|
|
+#ifndef HAVE_STRUCT_DIRENT_D_TYPE
|
|
|
|
+#include <sys/types.h>
|
|
|
|
+#include <sys/stat.h>
|
|
|
|
+#include <unistd.h>
|
|
|
|
+#endif
|
|
|
|
#include <fontconfig/fontconfig.h>
|
|
|
|
|
|
|
|
FcBool
|
|
|
|
@@ -36,6 +41,9 @@ unlink_dirs(const char *dir)
|
|
|
|
size_t len = strlen (dir);
|
|
|
|
char *n = NULL;
|
|
|
|
FcBool ret = FcTrue;
|
|
|
|
+#ifndef HAVE_STRUCT_DIRENT_D_TYPE
|
|
|
|
+ struct stat statb;
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
if (!d)
|
|
|
|
return FcFalse;
|
|
|
|
@@ -53,7 +61,17 @@ unlink_dirs(const char *dir)
|
|
|
|
strcpy (n, dir);
|
|
|
|
n[len] = '/';
|
|
|
|
strcpy (&n[len + 1], e->d_name);
|
|
|
|
+#ifdef HAVE_STRUCT_DIRENT_D_TYPE
|
|
|
|
if (e->d_type == DT_DIR)
|
|
|
|
+#else
|
|
|
|
+ if (stat (n, &statb) == -1)
|
|
|
|
+ {
|
|
|
|
+ fprintf (stderr, "E: %s\n", n);
|
|
|
|
+ ret = FcFalse;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ if (S_ISDIR (statb.st_mode))
|
|
|
|
+#endif
|
|
|
|
{
|
|
|
|
if (!unlink_dirs (n))
|
|
|
|
{
|