diff options
author | Peter Stephenson <pws@zsh.org> | 2017-04-28 10:20:35 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2017-04-28 10:22:43 +0100 |
commit | ed4e37e45c2f5761981cdc6027a5d6abc753176a (patch) | |
tree | 2395b7c4996c93021f2d306796c25b6ca66e0565 /Src | |
parent | d7110d8f01cae8c8d51c7abd0255f533cd8b8623 (diff) | |
download | zsh-ed4e37e45c2f5761981cdc6027a5d6abc753176a.tar.gz zsh-ed4e37e45c2f5761981cdc6027a5d6abc753176a.tar.xz zsh-ed4e37e45c2f5761981cdc6027a5d6abc753176a.zip |
41020: Fix "command -p"; "-p" was incorrectly left in command arguments
Also add tests for known precommand modifier issues.
Diffstat (limited to 'Src')
-rw-r--r-- | Src/exec.c | 9 |
1 files changed, 8 insertions, 1 deletions
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 |