From 2a3b1df42317b34619b6770f1589f87521d2d6f1 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 9 Jan 2015 14:56:25 +0100 Subject: [PATCH] Fix builtins.readDir on XFS The DT_UNKNOWN fallback code was getting the type of the wrong path, causing readDir to report "directory" as the type of every file. Reported by deepfire on IRC. --- src/libexpr/primops.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index 119e71a04..422ec971c 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -796,7 +796,7 @@ static void prim_readDir(EvalState & state, const Pos & pos, Value * * args, Val for (auto & ent : entries) { Value * ent_val = state.allocAttr(v, state.symbols.create(ent.name)); if (ent.type == DT_UNKNOWN) - ent.type = getFileType(path); + ent.type = getFileType(path + "/" + ent.name); mkStringNoCopy(*ent_val, ent.type == DT_REG ? "regular" : ent.type == DT_DIR ? "directory" :