about summary refs log tree commit diff
path: root/src/libutil
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-01-05T12·49+0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-01-05T12·49+0100
commit6298afc0478222eb0d5e57eaafe46965a1df7ca3 (patch)
treec789fe66b6f4a1363bd23316f9a0b1a3d3266342 /src/libutil
parent36b9ce24b11a87b3e71f4f4fec9f3e5ad6af7b95 (diff)
parent69b9d8fdbd4d428515c15cf47c2ed2324f7aa021 (diff)
Merge pull request #685 from vizanto/master
POSIX compliant directory access (fixes build on Solaris)
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/util.cc2
-rw-r--r--src/libutil/util.hh6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 75032bf90d0b..c1585e27ea1f 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -232,7 +232,7 @@ DirEntries readDirectory(const Path & path)
         checkInterrupt();
         string name = dirent->d_name;
         if (name == "." || name == "..") continue;
-        entries.emplace_back(name, dirent->d_ino, dirent->d_type);
+        entries.emplace_back(name, dirent->d_ino, #ifdef HAVE_STRUCT_DIRENT_D_TYPE dirent->d_type #else DT_UNKNOWN #endif);
     }
     if (errno) throw SysError(format("reading directory ‘%1%’") % path);
 
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index f4026a0a884b..cf93c6378a06 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 {