diff options
-rw-r--r-- | Functions/Misc/run-help | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Functions/Misc/run-help b/Functions/Misc/run-help index a6755e72f..bae321890 100644 --- a/Functions/Misc/run-help +++ b/Functions/Misc/run-help @@ -33,15 +33,25 @@ then fi # No zsh help; use "whence" to figure out where else we might look -local what places newline=' +local what places noalias newline=' ' integer i=0 didman=0 places=( "${(@f)$(builtin whence -va $1)}" ) +if [[ $places = *"not found"* && $1 != ${(Q)1} ]]; then + # Different when unquoted, so try stripping quotes. + places=( "${(@f)$(builtin whence -va ${(Q)1})}" ) + if (( ${#places} )); then + set -- "${(Q)@}" + fi + # Quotation is significant to aliases, so suppress lookup. + noalias=1 +fi while ((i++ < $#places)) do what=$places[$i] + [[ -n $noalias && $what = *" is an alias "* ]] && continue builtin print -r $what case $what in (*( is an alias)*) @@ -71,8 +81,11 @@ do (*( is hashed to *)) man ${what[(w)-1]:t} ;; + (*( is a reserved word)) + man zshmisc + ;; (*) - ((! didman++)) && man $1 + ((! didman++)) && man $@ ;; esac if ((i < $#places && ! didman)) |