diff options
Diffstat (limited to 'gnu/usr.bin/ptx/examples/luke/xxroff.sh')
-rw-r--r-- | gnu/usr.bin/ptx/examples/luke/xxroff.sh | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/gnu/usr.bin/ptx/examples/luke/xxroff.sh b/gnu/usr.bin/ptx/examples/luke/xxroff.sh new file mode 100644 index 0000000..55ef908 --- /dev/null +++ b/gnu/usr.bin/ptx/examples/luke/xxroff.sh @@ -0,0 +1,108 @@ +#!/bin/sh +# +# Author: Luke Kendall +# +MYNAME=`basename $0` +usage="usage: $MYNAME [man-directory] + (generates permuted index of -man files in directory)" +md=/usr/man +# +if [ $# = 0 ] +then + echo "$MYNAME: no man directory specified: assuming $md" +elif [ $# != 1 ] +then + echo "$usage" + exit 1 +elif [ -d $1 ] +then + md="$1" +else + echo "$usage" + exit 1 +fi +echo "Permuted index of $md:" +out=ptx.tr +# ------ clumsy permuted index macros (replaced by stuff below) ------------ +cat <<'EOF' > $out +.pn 1 +.de xx +\\$1 \\$2 \\fB\\$3\\fR \\$4 \\s-1\\$5\\s0 +.. +.pl 10i +.de NP +.ev 1 +.ft 1 +.ps 10 +.sp 0.75c +.tl '\s-2\\fIpermuted index\\fP\s0'\- \\n% \-'\s-2\\fIpermuted index\\fP\s0' +.pn +1 +.bp +.ev +.. +.wh 9i NP +.nf +.na +.ta 6.5i-1.1iR 6.5iR 6.51iR 6.52R +.ll 6.0i +.po 0i +.sp 0.25i +'\" +EOF +# ------ ------- ------- ------- ------- ------- +# ------ alternate permuted index macros (from net) ------------ +cat <<'EOF' > $out +.pl 10i +.de NP +.ev 1 +.ft 1 +.ps 10 +.sp 0.75c +.tl '\s-2\\fIpermuted index\\fP\s0'\- \\n% \-'\s-2\\fIpermuted index\\fP\s0' +.pn +1 +.bp +.ev +.. +.wh 9i NP +.po 0.5i +.sp 0.25i +.tr ~ \" tildes will translate to blanks +'\".ll 80 \" line length of output +.ll 6.0i \" line length of output +.nf \" must be in no-fill mode +.nr )r \n(.lu-10n \" set position of reference in line (10 less than length) +.nr )k \n()ru/2u \" set position of keyword (approx. centered) +.ds s2 ~~~ \" this is the center gap -- 3 spaces +.de xx \"definition of xx macro +.ds s1\" \" initialise to null string +.if \w@\\$2@ .ds s1 ~\" \"set to single blank if there is second arg +.ds s3\" \" initialise to null string +.if \w@\\$4@ .ds s3 ~\" \"set to single blank if there is second arg +.ds s4 ~\" \" set to single blank +.ds s5 ~\" \" set to single blank +.ds y \\*(s4\a\\*(s5\" \" blank, leader, blank +.ta \\n()ru-\w@\\*(s5@u \" set tab just to left of ref +\h@\\n()ku-\w@\\$1\\*(s1\\$2\\*(s2@u@\\$1\\*(s1\\$2\\*(s2\\$3\\*(s3\\$4\\*y\\$5 +.. + ~ +EOF +# ------ ------- ------- ------- ------- ------- +find $md -type f -name "*.[1-8nl]*" -print | +while read f +do + man=`basename $f` + man=`expr "$man" : "\(.*\)\.[^\.]*"` +echo $man: + # + # Use 1st non-"." and non-"'" started line as input to ptx (this + # should be the synopsis after the `.SH NAME'); + # strip any "\-" from it (a silly sort key for ptx to avoid); + # insert a leading man page name for the -r option to find + # + sed -n '/^[^.]/s/\\-//g;/^[^.]/p;/^[^.]/q' $f | sed "s/^/($man) /" +done | ptx -t -f -r >> $out +# +# Turn the troff'able permuted index file into PostScript +# +psroff -t -rL10i $out > ptx.ps +echo "$out and ptx.ps produced from man directory $md." |