diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test-migration.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/test-migration.c b/test/test-migration.c index a0ab8390..97096518 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)) { |