Blame


1 2b85f70d 2005-01-11 devnull #!/usr/local/plan9/bin/rc
2 5645c4af 2005-01-11 devnull
3 5645c4af 2005-01-11 devnull . $PLAN9/man/fonts
4 5645c4af 2005-01-11 devnull
5 5645c4af 2005-01-11 devnull cmd=n
6 5645c4af 2005-01-11 devnull sec=()
7 5645c4af 2005-01-11 devnull S=$PLAN9/man
8 5645c4af 2005-01-11 devnull d=0
9 5645c4af 2005-01-11 devnull
10 5645c4af 2005-01-11 devnull fn roff {
11 5645c4af 2005-01-11 devnull preproc=()
12 5645c4af 2005-01-11 devnull x=`{doctype $2}
13 5645c4af 2005-01-11 devnull if (~ $1 t) {
14 5645c4af 2005-01-11 devnull if(~ $x *grap*)
15 5645c4af 2005-01-11 devnull preproc=($preproc grap)
16 5645c4af 2005-01-11 devnull if(~ $x *pic*)
17 5645c4af 2005-01-11 devnull preproc=($preproc pic)
18 5645c4af 2005-01-11 devnull Nflag=-Tutf
19 5645c4af 2005-01-11 devnull }
20 5645c4af 2005-01-11 devnull if not {
21 5645c4af 2005-01-11 devnull Nflag=-N
22 5645c4af 2005-01-11 devnull }
23 5645c4af 2005-01-11 devnull if(~ $x *eqn*)
24 5645c4af 2005-01-11 devnull preproc=($preproc eqn)
25 5645c4af 2005-01-11 devnull if(~ $x *tbl*)
26 5645c4af 2005-01-11 devnull preproc=($preproc tbl)
27 5645c4af 2005-01-11 devnull switch($#preproc) {
28 5645c4af 2005-01-11 devnull case 0
29 5645c4af 2005-01-11 devnull {echo -n $FONTS; cat $2< /dev/null} | troff $Nflag -$MAN
30 5645c4af 2005-01-11 devnull case 1
31 5645c4af 2005-01-11 devnull {echo -n $FONTS; cat $2< /dev/null} | $preproc | troff $Nflag -$MAN
32 5645c4af 2005-01-11 devnull case 2
33 5645c4af 2005-01-11 devnull {echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | troff $Nflag -$MAN
34 5645c4af 2005-01-11 devnull case 3
35 5645c4af 2005-01-11 devnull {echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | $preproc(3) | | troff $Nflag -$MAN
36 5645c4af 2005-01-11 devnull case *
37 5645c4af 2005-01-11 devnull {echo -n $FONTS; cat $2< /dev/null} | $preproc(1) | $preproc(2) | $preproc(3) | | $preproc(4) | troff $Nflag -$MAN
38 5645c4af 2005-01-11 devnull }
39 5645c4af 2005-01-11 devnull }
40 5645c4af 2005-01-11 devnull
41 5645c4af 2005-01-11 devnull while(~ $d 0) {
42 5645c4af 2005-01-11 devnull if(~ $#* 0) {
43 5645c4af 2005-01-11 devnull echo 'Usage: man [-ntp] [-s sec] [0-9] [0-9] ... name1 name2 ...' >[1=2]
44 5645c4af 2005-01-11 devnull exit
45 5645c4af 2005-01-11 devnull }
46 5645c4af 2005-01-11 devnull if(test -d $S/man$1){
47 5645c4af 2005-01-11 devnull sec=($sec $1)
48 5645c4af 2005-01-11 devnull shift
49 5645c4af 2005-01-11 devnull }
50 5645c4af 2005-01-11 devnull if not switch($1) {
51 5645c4af 2005-01-11 devnull case -t ; cmd=t ; shift
52 5645c4af 2005-01-11 devnull case -n ; cmd=n ; shift
53 5645c4af 2005-01-11 devnull case -p ; cmd=p ; shift
54 5645c4af 2005-01-11 devnull case -P ; cmd=P ; shift
55 5645c4af 2005-01-11 devnull case * ; d=1
56 5645c4af 2005-01-11 devnull }
57 5645c4af 2005-01-11 devnull }
58 5645c4af 2005-01-11 devnull if(~ $#sec 0) {
59 5645c4af 2005-01-11 devnull sec=`{ls -pd $S/man[0-9]* | sed 's/man//'}
60 5645c4af 2005-01-11 devnull }
61 5645c4af 2005-01-11 devnull ix=$S/man$sec/INDEX
62 5645c4af 2005-01-11 devnull if(~ $#* 1) pat='^'^$1^' '
63 5645c4af 2005-01-11 devnull if not pat='^('^`{echo $* | 9sed 's/ /|/g'}^') '
64 5645c4af 2005-01-11 devnull fils=()
65 5645c4af 2005-01-11 devnull for(i in $S/man$sec){
66 5645c4af 2005-01-11 devnull if(/bin/test -f $i/INDEX){
67 5645c4af 2005-01-11 devnull try=`{grep $pat $i/INDEX | 9sed 's/^[^ ]* //'}
68 5645c4af 2005-01-11 devnull if(! ~ $#try 0)
69 5645c4af 2005-01-11 devnull fils=($fils $i/$try)
70 5645c4af 2005-01-11 devnull }
71 5645c4af 2005-01-11 devnull }
72 5645c4af 2005-01-11 devnull # bug: should also do following loop if not all pages found
73 5645c4af 2005-01-11 devnull if(~ $#fils 0) {
74 5645c4af 2005-01-11 devnull # nothing in INDEX. try for file of given name
75 5645c4af 2005-01-11 devnull for(i) {
76 5645c4af 2005-01-11 devnull for(n in $sec) {
77 5645c4af 2005-01-11 devnull try=$S/man$n/$i.$n*
78 5645c4af 2005-01-11 devnull if (/bin/test -f $try)
79 5645c4af 2005-01-11 devnull fils=($fils $try)
80 5645c4af 2005-01-11 devnull }
81 5645c4af 2005-01-11 devnull }
82 5645c4af 2005-01-11 devnull if(~ $#fils 0) {
83 5645c4af 2005-01-11 devnull echo 'man: no manual page' >[1=2]
84 5645c4af 2005-01-11 devnull exit 'no man'
85 5645c4af 2005-01-11 devnull }
86 5645c4af 2005-01-11 devnull }
87 5645c4af 2005-01-11 devnull for(i in $fils) {
88 5645c4af 2005-01-11 devnull if(! /bin/test -f $i)
89 5645c4af 2005-01-11 devnull echo need $i >[1=2]
90 5645c4af 2005-01-11 devnull if not {
91 5645c4af 2005-01-11 devnull switch($cmd) {
92 5645c4af 2005-01-11 devnull case t
93 5645c4af 2005-01-11 devnull roff t $i
94 5645c4af 2005-01-11 devnull
95 5645c4af 2005-01-11 devnull case p
96 5645c4af 2005-01-11 devnull roff t $i | proof
97 5645c4af 2005-01-11 devnull
98 5645c4af 2005-01-11 devnull case P
99 b9087722 2005-01-11 devnull roff t $i |tr2post |psfonts |page
100 5645c4af 2005-01-11 devnull
101 5645c4af 2005-01-11 devnull case n
102 5645c4af 2005-01-11 devnull roff n $i | 9sed '
103 5645c4af 2005-01-11 devnull ${
104 5645c4af 2005-01-11 devnull /^$/p
105 5645c4af 2005-01-11 devnull }
106 5645c4af 2005-01-11 devnull //N
107 5645c4af 2005-01-11 devnull /^\n$/D'
108 5645c4af 2005-01-11 devnull }
109 5645c4af 2005-01-11 devnull }
110 5645c4af 2005-01-11 devnull }