diff options
author | Danny Wilson <danny@prime.vc> | 2015-11-07T03·51+0100 |
---|---|---|
committer | Danny Wilson <danny@prime.vc> | 2015-11-07T03·51+0100 |
commit | cdb346c65eeb9f976cf3db21b3cb2f7d8837cf6b (patch) | |
tree | 386245c3d4acca4bbc88c805a1db25953c9eba2a /src/libutil | |
parent | 5bc12454fd0ca07c26de197daaf0b52188d517b5 (diff) |
Fix build on Solaris
d_type is not part of the POSIX spec unfortunately.
Diffstat (limited to 'src/libutil')
-rw-r--r-- | src/libutil/util.cc | 4 | ||||
-rw-r--r-- | src/libutil/util.hh | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc index 27116fd18297..d1b67c6d4515 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 038838820899..2edc5344fdc1 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 { |