mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +01:00
* 13281: Functions/Misc/mere: new implementation.
Completion/User/_mere: new completion function for mere.
This commit is contained in:
parent
81185fe668
commit
35ac156d86
@ -1,3 +1,8 @@
|
||||
2000-12-15 Tanaka Akira <akr@zsh.org>
|
||||
|
||||
* 13281: Functions/Misc/mere: new implementation.
|
||||
Completion/User/_mere: new completion function for mere.
|
||||
|
||||
2000-12-13 Clint Adams <schizo@debian.org>
|
||||
|
||||
* 13250: Completion/User/.distfiles, Completion/User/_dict:
|
||||
|
3
Completion/User/_mere
Normal file
3
Completion/User/_mere
Normal file
@ -0,0 +1,3 @@
|
||||
#compdef mere
|
||||
|
||||
_files -g '*.[1-9]([a-z]|) *.man'
|
@ -1,3 +1,83 @@
|
||||
#! /bin/sh
|
||||
# read a man page in the current directory
|
||||
nroff -man -Tman $1 | less -s
|
||||
# read a man page
|
||||
|
||||
setopt localoptions extendedglob
|
||||
|
||||
local manual="$1" col=col terminal=man magic line
|
||||
|
||||
# /usr/bin/col on SunOS 4 doesn't support -x.
|
||||
if [[ -x /usr/5bin/col ]]; then
|
||||
col=/usr/5bin/col;
|
||||
fi
|
||||
|
||||
# SunOS 5 has no `man' terminal.
|
||||
if [[ -d /usr/share/lib/nterm &&
|
||||
! -e /usr/share/lib/nterm/tab.$terminal ]]; then
|
||||
terminal=lp;
|
||||
fi
|
||||
|
||||
# HP-UX has no `man' terminal.
|
||||
if [[ -d /usr/share/lib/term &&
|
||||
! -e /usr/share/lib/term/tab$terminal ]]; then
|
||||
terminal=lp;
|
||||
fi
|
||||
|
||||
# Unixware has no `man' terminal.
|
||||
if [[ -d /usr/ucblib/doctools/nterm &&
|
||||
! -e /usr/ucblib/doctools/nterm/tab.$terminal ]]; then
|
||||
terminal=lp;
|
||||
fi
|
||||
|
||||
# Solaris has SGML manuals.
|
||||
if [[ -f /usr/lib/sgml/sgml2roff ]] &&
|
||||
[[ "$(read -er < $manual)" = "<!DOCTYPE"* ]]; then
|
||||
/usr/lib/sgml/sgml2roff $manual | {
|
||||
read -r line
|
||||
if [[ $line = ".so "* ]]; then
|
||||
# There is no cascading .so directive.
|
||||
# On Solaris 7, at least.
|
||||
/usr/lib/sgml/sgml2roff ${line#.so }
|
||||
else
|
||||
print -lr - "$line"
|
||||
cat
|
||||
fi
|
||||
}
|
||||
else
|
||||
read -u0 -k 2 magic < $manual
|
||||
case $magic in
|
||||
$'\037\235') zcat $manual;;
|
||||
$'\037\213') gzip -dc $manual;;
|
||||
*) cat $manual;;
|
||||
esac
|
||||
fi | (
|
||||
# cd is required to work soelim called by nroff.
|
||||
case $manual in
|
||||
*/man/man*/*) cd ${manual:h:h};;
|
||||
*/man/sman*/*) cd ${manual:h:h};;
|
||||
esac
|
||||
read -r line
|
||||
# The first line beginning with '\" shows preprocessors.
|
||||
# Unknown preprocessors is ignored.
|
||||
if [[ $line = "'\\\" "* ]]; then
|
||||
typeset -A filter
|
||||
filter=(
|
||||
e neqn
|
||||
g grap
|
||||
p pic
|
||||
r refer
|
||||
t tbl
|
||||
v vgrind
|
||||
)
|
||||
eval ${(j:|:)${${(s::)line#\'\\\" }//(#m)?/$filter[$MATCH]}}
|
||||
elif [[ $line = "'\\\"! "* ]]; then
|
||||
typeset -A filter
|
||||
filter=(
|
||||
eqn neqn
|
||||
)
|
||||
eval ${(j:|:)${${${${(s:|:)line#\'\\\"! }# ##}% ##}//(#m)*/$filter[$MATCH]}}
|
||||
else
|
||||
print -lr - "$line"
|
||||
cat
|
||||
fi |
|
||||
nroff -T$terminal -man | $col -x
|
||||
) |
|
||||
${MANPAGER:-${PAGER:-more}} -s
|
||||
|
Loading…
Reference in New Issue
Block a user