blob: b765aa80b877c116329c88f7e26e8608335f8a21 (
plain)
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
|
#!/usr/bin/env rc
. $PLAN9/man/fonts
cmd=n
sec=()
S=$PLAN9/man
d=0
fn roff {
preproc=()
x=`{doctype $2}
if (~ $1 t) {
if(~ $x *grap*)
preproc=($preproc grap)
if(~ $x *pic*)
preproc=($preproc pic)
Nflag=-Tutf
}
if not {
Nflag=-N
}
if(~ $x *eqn*)
preproc=($preproc eqn)
if(~ $x *tbl*)
preproc=($preproc tbl)
switch($#preproc) {
case 0
{echo -n $FONTS; cat $2< /dev/null} | troff $Nflag -$MAN
case 1
{echo -n $FONTS; cat $2< /dev/null} | $preproc | troff $Nflag -$MAN
case 2
{echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | troff $Nflag -$MAN
case 3
{echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | $preproc(3) | | troff $Nflag -$MAN
case *
{echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | $preproc(3) | | $preproc(4) | troff $Nflag -$MAN
}
}
while(~ $d 0) {
if(~ $#* 0) {
echo 'Usage: man [-ntp] [-s sec] [0-9] [0-9] ... name1 name2 ...' >[1=2]
exit
}
if(test -d $S/man$1){
sec=($sec $1)
shift
}
if not switch($1) {
case -t ; cmd=t ; shift
case -n ; cmd=n ; shift
case -p ; cmd=p ; shift
case -P ; cmd=P ; shift
case * ; d=1
}
}
if(~ $#sec 0) {
sec=`{ls -pd $S/man[0-9]* | sed 's/man//'}
}
ix=$S/man$sec/INDEX
if(~ $#* 1) pat='^'^$1^' '
if not pat='^('^`{echo $* | 9sed 's/ /|/g'}^') '
fils=()
for(i in $S/man$sec){
if(/bin/test -f $i/INDEX){
try=`{grep $pat $i/INDEX | 9sed 's/^[^ ]* //'}
if(! ~ $#try 0)
fils=($fils $i/$try)
}
}
# bug: should also do following loop if not all pages found
if(~ $#fils 0) {
# nothing in INDEX. try for file of given name
for(i) {
for(n in $sec) {
try=$S/man$n/$i.$n*
if (/bin/test -f $try)
fils=($fils $try)
}
}
if(~ $#fils 0) {
echo 'man: no manual page' >[1=2]
exit 'no man'
}
}
for(i in $fils) {
if(! /bin/test -f $i)
echo need $i >[1=2]
if not {
switch($cmd) {
case t
roff t $i
case p
roff t $i | proof
case P
roff t $i |tr2post |psfonts |page
case n
roff n $i | 9sed '
${
/^$/p
}
//N
/^\n$/D'
}
}
}
|