diff options
Diffstat (limited to 'share/man/tools/tocrc')
-rwxr-xr-x | share/man/tools/tocrc | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/share/man/tools/tocrc b/share/man/tools/tocrc new file mode 100755 index 0000000..1d50a05 --- /dev/null +++ b/share/man/tools/tocrc @@ -0,0 +1,114 @@ +MANDIR=/usr/man +TMPDIR=/usr/man/tmp +TOOLS=$MANDIR/tools + +trap "rm $TMPDIR/tmp.$$ ; exit" 2 3 15 + +P=108 +p="" +if test "$1" = "-p" +then + P=65 + p=-p + shift +fi + +if test $# -eq 0 +then + echo "tocrc: no argument" + exit +fi + +if test $# -eq 2 +then + : create toc input file for one section only + + > $TMPDIR/tocx$1 + for file in $MANDIR/man$1/*.$1* + do + if test ! -s $file + then + continue + fi + so=`line < $file | sed "s/ .*//"` + if test "$so" = ".so" + then + continue + fi + ed - $file > $TMPDIR/tmp.$$ <<! + H + /^\.TH/p + q +! + loc=`cat $TMPDIR/tmp.$$ | sed "s/.*local.*/local/"` + if test "$loc" = "local" + then + continue + fi + name=`basename $file` + name=`echo $name | sed "s/\.\(.\{1,2\}\)\$/(\1)/"` + ed - $file > $TMPDIR/tmp.$$ <<! + /^.SH NAME/+p + q +! + desc=`line < $TMPDIR/tmp.$$` + desc=`echo $desc | sed -e "s/.s-1//g" -e "s/.s0//g" -e "s/.s+1//g" -e "s/ .- /: /" -e "s/^/$name /" -e "s/$/./"` + if test -n "$desc" + then + echo $desc >> $TMPDIR/tocx$1 + fi + rm -f $TMPDIR/tmp.$$ + done +else case $1 in + all ) + : tocx files for all sections and everything else + + for x in 1 2 3 4 5 6 7 8 + do + $0 $p $x $x + done + $0 $p t + ;; + t ) + : permuted index and toc files + + if test ! -f $TMPDIR/tocx1 + then + echo "tocrc: some tocx? files missing" + exit + fi + cat $TMPDIR/tocx? > $TMPDIR/cattoc + ed - $TMPDIR/cattoc <<! + H + g/(1c)/s//(1C)/ + g/(1m)/s//(1M)/ + g/(1g)/s//(1G)/ + g/(3c)/s//(3C)/ + g/(3m)/s//(3M)/ + g/(3s)/s//(3S)/ + g/(3x)/s//(3X)/ + g/"\."/d + w + q +! + ptx -r -t -b $TOOLS/break -f -w $P -i $TOOLS/ignore $TMPDIR/cattoc $MANDIR/man0/ptxx + for x in 1 2 3 4 5 6 7 8 + do + ed - $TMPDIR/tocx$x << ! + H + /^intro/m0 + 1,\$s/ .*:// + 1,\$s/.$// + 1,\$s/([1-8][a-z]\{0,1\}) /" "/ + 1,\$s/.*/.xx "&"/ + g/""/d + w $MANDIR/man0/toc$x + q +! + done + ;; + * ) + $0 $p $1 $1 + ;; + esac +fi |