From: "Bart Schaefer" <schaefer@candle.brasslantern.com>
To: zsh-workers@math.gatech.edu
Subject: Rewrite of Functions/run-help
Date: Mon, 5 Aug 1996 01:18:13 -0700 [thread overview]
Message-ID: <960805011813.ZM10875@candle.brasslantern.com> (raw)
Now that the help subdirectory isn't distributed with zsh any longer, the
Functions/run-help autoloadable function isn't very useful. Here's a new
version that uses `whence' to figure out the best way to run `man' (which
may mean not running it at all). It also happens to demonstrate "emulate"
plus the new POSIX case-statement syntax combined with zsh glob patterns
containing significant whitespace. ;->
----- snip ----- 8< ----- snip -----
#!/usr/local/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 run-help
#
# Bart Schaefer <schaefer@brasslantern.com>
#
emulate -R zsh # Requires zsh 3.0-pre5 or later
setopt localoptions
local what places
integer i=0
places=( "${(@f)$(builtin whence -va $1)}" )
while ((i++ < $#places))
do
what=$places[$i]
builtin print -r $what
case $what in
(*( is an alias)*)
[[ ${what[(w)6]:t} != ${what[(w)1]} ]] && run-help ${what[(w)6]:t}
;;
(*( is a * function))
builtin functions ${what[(w)1]} | ${=PAGER:-more}
;;
(*( is a * builtin))
case ${what[(w)1]} in
(compctl) man zshcompctl;;
(bindkey) man zshzle;;
(*setopt) man zshoptions;;
(*) man zshbuiltins;;
esac
;;
(*)
man $1
;;
esac
if ((i < $#places))
then
builtin print -nP "%SPress return for more help%s"
builtin read -q what
fi
done
----- snip ----- 8< ----- snip -----
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.nbn.com/people/lantern
New male in /home/schaefer:
>N 2 Justin William Schaefer Sat May 11 03:43 53/4040 "Happy Birthday"
reply other threads:[~1996-08-05 8:46 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=960805011813.ZM10875@candle.brasslantern.com \
--to=schaefer@candle.brasslantern.com \
--cc=schaefer@nbn.com \
--cc=zsh-workers@math.gatech.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).