about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLinus Heckemann <git@sphalerite.org>2018-08-13T09·27+0200
committerLinus Heckemann <git@sphalerite.org>2018-08-13T09·27+0200
commitd7402c9cd5c17644d73b2a7a39e10be22fffeb00 (patch)
treeb8dbb47c0a4396d3f8655f75a3efaa93a5aa98a0
parentf72c907ad833fa26800ad1694e63f3cec952b444 (diff)
dirOf: allow use on non-absolute paths
-rw-r--r--src/libexpr/primops.cc2
-rw-r--r--src/libutil/util.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 8ace6db4d11d..32d6640fad28 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -866,7 +866,7 @@ static void prim_baseNameOf(EvalState & state, const Pos & pos, Value * * args,
 static void prim_dirOf(EvalState & state, const Pos & pos, Value * * args, Value & v)
 {
     PathSet context;
-    Path dir = dirOf(state.coerceToPath(pos, *args[0], context));
+    Path dir = dirOf(state.coerceToString(pos, *args[0], context, false, false));
     if (args[0]->type == tPath) mkPath(v, dir.c_str()); else mkString(v, dir, context);
 }
 
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 6bc64ae75a42..4cc7455be6cb 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -167,7 +167,7 @@ Path dirOf(const Path & path)
 {
     Path::size_type pos = path.rfind('/');
     if (pos == string::npos)
-        throw Error(format("invalid file name '%1%'") % path);
+        return ".";
     return pos == 0 ? "/" : Path(path, 0, pos);
 }