diff options
Diffstat (limited to 'Functions/Misc/run-help')
-rw-r--r-- | Functions/Misc/run-help | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Functions/Misc/run-help b/Functions/Misc/run-help index 837ce1ff0..6a1b3a418 100644 --- a/Functions/Misc/run-help +++ b/Functions/Misc/run-help @@ -49,6 +49,7 @@ if [[ $places = *"not found"* && $1 != ${(Q)1} ]]; then noalias=1 fi +{ while ((i++ < $#places)) do what=$places[$i] @@ -56,7 +57,8 @@ do builtin print -r $what case $what in (*( is an alias)*) - [[ ${what[(w)6]:t} != ${what[(w)1]} ]] && run-help ${what[(w)6]:t} + [[ ${what[(w)6]:t} != ${what[(w)1]} ]] && + run_help_orig_cmd=${what[(w)1]} run-help ${what[(w)6]:t} ;; (*( is a * function)) case ${what[(w)1]} in @@ -96,9 +98,9 @@ do builtin print -z "$cmd_args" cmd_args=( ${(z)cmd_args} ) # Discard environment assignments, etc. - while [[ $cmd_args[1] != $1 ]] + while [[ $cmd_args[1] != ${run_help_orig_cmd:-$1} ]] do - shift cmd_args + shift cmd_args || return 1 done eval "run-help-$1:t ${(q@)cmd_args[2,-1]}" else @@ -115,3 +117,6 @@ do [[ $what == [qQ] ]] && break fi done +} always { + unset run_help_orig_cmd +} |