* dirOf: return a path if the argument is a path.
This commit is contained in:
parent
cf705eaf78
commit
cba913c521
1 changed files with 6 additions and 2 deletions
|
@ -316,11 +316,15 @@ static Expr primBaseNameOf(EvalState & state, const ATermVector & args)
|
|||
|
||||
|
||||
/* Return the directory of the given path, i.e., everything before the
|
||||
last slash. */
|
||||
last slash. Return either a path or a string depending on the type
|
||||
of the argument. */
|
||||
static Expr primDirOf(EvalState & state, const ATermVector & args)
|
||||
{
|
||||
PathSet context;
|
||||
return makeStr(dirOf(coerceToPath(state, args[0], context)), context);
|
||||
Expr e = evalExpr(state, args[0]); ATerm dummy;
|
||||
bool isPath = matchPath(e, dummy);
|
||||
Path dir = dirOf(coerceToPath(state, e, context));
|
||||
return isPath ? makePath(toATerm(dir)) : makeStr(dir, context);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue