From ed4e37e45c2f5761981cdc6027a5d6abc753176a Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 28 Apr 2017 10:20:35 +0100 Subject: 41020: Fix "command -p"; "-p" was incorrectly left in command arguments Also add tests for known precommand modifier issues. --- Src/exec.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'Src/exec.c') diff --git a/Src/exec.c b/Src/exec.c index e0fc54445..9a75dd284 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -2824,7 +2824,7 @@ execcmd_exec(Estate state, Execcmd_params eparams, * Otherwise, just leave marked as BINF_COMMAND * modifier with no additional action. */ - LinkNode argnode, oldnode; + LinkNode argnode, oldnode, pnode = NULL; char *argdata, *cmdopt; int has_p = 0, has_vV = 0, has_other = 0; argnode = firstnode(preargs); @@ -2845,6 +2845,7 @@ execcmd_exec(Estate state, Execcmd_params eparams, * also traditional behaviour. */ has_p = 1; + pnode = argnode; break; case 'v': case 'V': @@ -2882,6 +2883,12 @@ execcmd_exec(Estate state, Execcmd_params eparams, } else if (has_p) { /* Use default path */ use_defpath = 1; + /* + * We don't need this node as we're not treating + * "command" as a builtin this time. + */ + if (pnode) + uremnode(preargs, pnode); } /* * Else just any trailing -- cgit 1.4.1