diff options
author | Linus Heckemann <git@sphalerite.org> | 2018-08-13T09·27+0200 |
---|---|---|
committer | Linus Heckemann <git@sphalerite.org> | 2018-08-13T09·27+0200 |
commit | d7402c9cd5c17644d73b2a7a39e10be22fffeb00 (patch) | |
tree | b8dbb47c0a4396d3f8655f75a3efaa93a5aa98a0 /src | |
parent | f72c907ad833fa26800ad1694e63f3cec952b444 (diff) |
dirOf: allow use on non-absolute paths
Diffstat (limited to 'src')
-rw-r--r-- | src/libexpr/primops.cc | 2 | ||||
-rw-r--r-- | src/libutil/util.cc | 2 |
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); } |