zsh-workers
 help / color / mirror / code / Atom feed
b5e692198513b9286f7b34c40573975c5d85a3fc blob 3385 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
 
#!/bin/zsh
#
# Figure out where to get the best help, and get it.
#
# Install this function by placing it in your FPATH and then
# adding to your .zshrc the lines:
#	unalias run-help
#	autoload -Uz run-help
#

emulate -RL zsh

local HELPDIR="${HELPDIR:-@runhelpdir@}"

[[ $1 == "." ]] && 1="dot"
[[ $1 == ":" ]] && 1="colon"

# Check whether Util/helpfiles has been used to generate zsh help
if [[ $# == 0 || $1 == "-l" ]]
then
    if [[ -d $HELPDIR ]]
    then
	echo "Here is a list of topics for which special help is available:"
	echo ""
	print -rc $HELPDIR/*(:t)
    else
	echo "There is no list of special help topics available at this time."
    fi
    return 0
elif [[ -n "${HELPDIR:-}" && -r $HELPDIR/$1 && $1 != compctl ]]
then
    ${=PAGER:-more} $HELPDIR/$1
    return $?
fi

# No zsh help; use "whence" to figure out where else we might look
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 for (noglob|nocorrect))*)
	[[ ${what[(w)7]:t} != ${what[(w)1]} ]] &&
	  run_help_orig_cmd=${what[(w)1]} run-help ${what[(w)7]:t}
	;;
    (*( is an alias)*)
	[[ ${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
	(comp*) man zshcompsys;;
	(zf*) man zshftpsys;;
	(run-help) man zshcontrib;;
        ( * )
          local func=$what[(w)1]

          # Try to show function source from file, because parsed functions
          # don't contain comments.
          autoload +X -Uz $func
          if [[ -n $functions_source[$func] ]]; then
            ${=PAGER:-more} -- $functions_source[$func]
          else
            builtin functions $func | ${=PAGER:-more}
          fi
        ;;
	esac;;
    (*( is a * builtin))
	case ${what[(w)1]} in
	(compctl) man zshcompctl;;
	(comp*) man zshcompwid;;
	(bindkey|vared|zle) man zshzle;;
	(*setopt) man zshoptions;;
	(cap|getcap|setcap) ;&
	(clone) ;&
	(ln|mkdir|mv|rm|rmdir|sync) ;&
	(sched) ;&
	(echotc|echoti|sched|stat|zprof|zpty|zsocket|zstyle|ztcp) man zshmodules;;
	(zftp) man zshftpsys;;
	(*) man zshbuiltins;;
	esac
	;;
    (*( is hashed to *))
	man ${what[(w)-1]:t}
	;;
    (*( is a reserved word))
	man zshmisc
	;;
    (*)
	if ((! didman++))
	then
	    if whence "run-help-$1:t" >/dev/null
	    then
		local cmd_args
		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]}"
	    else
		POSIXLY_CORRECT=1 man $@:t
	    fi
	fi
	;;
    esac
    if ((i < $#places && ! didman))
    then
	builtin print -nP "%SPress any key for more help or q to quit%s"
	builtin read -k what
	[[ $what != $newline ]] && echo
	[[ $what == [qQ] ]] && break
    fi
done
} always {
  unset run_help_orig_cmd
}
debug log:

solving b5e692198 ...
found b5e692198 in https://inbox.vuxu.org/zsh-workers/CAHLkEDueeqLkvOrsqTEQ3mVus+Majw-DAT7RhDq2my1RWzTuhA@mail.gmail.com/
found e351dd6a6 in https://git.vuxu.org/mirror/zsh/
preparing index
index prepared:
100644 e351dd6a644162cdd5c2028f5b49e8d90658d005	Functions/Misc/run-help

applying [1/1] https://inbox.vuxu.org/zsh-workers/CAHLkEDueeqLkvOrsqTEQ3mVus+Majw-DAT7RhDq2my1RWzTuhA@mail.gmail.com/
diff --git a/Functions/Misc/run-help b/Functions/Misc/run-help
index e351dd6a6..b5e692198 100644

Checking patch Functions/Misc/run-help...
Applied patch Functions/Misc/run-help cleanly.

index at:
100644 b5e692198513b9286f7b34c40573975c5d85a3fc	Functions/Misc/run-help

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).