aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libutil/util.cc4
-rw-r--r--src/libutil/util.hh6
2 files changed, 10 insertions, 0 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 27116fd18..d1b67c6d4 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -232,7 +232,11 @@ DirEntries readDirectory(const Path & path)
checkInterrupt();
string name = dirent->d_name;
if (name == "." || name == "..") continue;
+#ifdef HAVE_STRUCT_DIRENT_D_TYPE
entries.emplace_back(name, dirent->d_ino, dirent->d_type);
+#else
+ entries.emplace_back(name, dirent->d_ino, getFileType(absPath(name, path)));
+#endif
}
if (errno) throw SysError(format("reading directory ‘%1%’") % path);
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index 038838820..2edc5344f 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -11,6 +11,12 @@
#include <cstdio>
+#ifndef HAVE_STRUCT_DIRENT_D_TYPE
+#define DT_UNKNOWN 0
+#define DT_REG 1
+#define DT_LNK 2
+#define DT_DIR 3
+#endif
namespace nix {