diff options
author | Marlon Richert <marlon.richert@gmail.com> | 2021-09-06 13:45:36 -0700 |
---|---|---|
committer | Bart Schaefer <schaefer@ipost.com> | 2021-09-06 13:47:10 -0700 |
commit | 1508dc7486636edcb54e81f6a2fcf0faf180c7fa (patch) | |
tree | cdab91cbac7e0c0b1268111ab0266173b11a4da7 /Functions/Misc/run-help | |
parent | 35c87f0b3bc0ce5a22a6bf3b0f2b2a14a3993cea (diff) | |
download | zsh-1508dc7486636edcb54e81f6a2fcf0faf180c7fa.tar.gz zsh-1508dc7486636edcb54e81f6a2fcf0faf180c7fa.tar.xz zsh-1508dc7486636edcb54e81f6a2fcf0faf180c7fa.zip |
49218: run-help filters cmd_args before calling run-help-<command>
Diffstat (limited to 'Functions/Misc/run-help')
-rw-r--r-- | Functions/Misc/run-help | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Functions/Misc/run-help b/Functions/Misc/run-help index e351dd6a6..d52c1b032 100644 --- a/Functions/Misc/run-help +++ b/Functions/Misc/run-help @@ -101,12 +101,15 @@ do builtin getln cmd_args builtin print -z "$cmd_args" cmd_args=( ${(z)cmd_args} ) - # Discard environment assignments, etc. - while [[ $cmd_args[1] != ${run_help_orig_cmd:-$1} ]] - do - shift cmd_args || return 1 - done - eval "run-help-$1:t ${(q@)cmd_args[2,-1]}" + + # Discard the command itself & everything before it. + shift $cmd_args[(i)${run_help_orig_cmd:-$1}] cmd_args || + return + + # Discard options, parameter assignments & paths. + cmd_args=( ${cmd_args[@]:#([-+]*|*=*|*/*|\~*)} ) + + eval "run-help-$1:t ${(@q)cmd_args}" else POSIXLY_CORRECT=1 man $@:t fi |