diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Functions/Misc/run-help | 11 |
2 files changed, 14 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 1ec204772..234691a37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-12-16 Peter Stephenson <pws@csr.com> + + * 27492 based on Jörg Sommer: 27473: Functions/Misc/run-help: + fix alias problem. + 2009-12-14 Peter Stephenson <p.w.stephenson@ntlworld.com> * 27518: Completion/Unix/Command/_configure: suggest some @@ -12492,5 +12497,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.4843 $ +* $Revision: 1.4844 $ ***************************************************** 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 +} |