1MANDIR=/usr/man 2TMPDIR=/usr/man/tmp 3TOOLS=$MANDIR/tools 4 5trap "rm $TMPDIR/tmp.$$ ; exit" 2 3 15 6 7P=108 8p="" 9if test "$1" = "-p" 10then 11 P=65 12 p=-p 13 shift 14fi 15 16if test $# -eq 0 17then 18 echo "tocrc: no argument" 19 exit 20fi 21 22if test $# -eq 2 23then 24 : create toc input file for one section only 25 26 > $TMPDIR/tocx$1 27 for file in $MANDIR/man$1/*.$1* 28 do 29 if test ! -s $file 30 then 31 continue 32 fi 33 so=`line < $file | sed "s/ .*//"` 34 if test "$so" = ".so" 35 then 36 continue 37 fi 38 ed - $file > $TMPDIR/tmp.$$ <<! 39 H 40 /^\.TH/p 41 q 42! 43 loc=`cat $TMPDIR/tmp.$$ | sed "s/.*local.*/local/"` 44 if test "$loc" = "local" 45 then 46 continue 47 fi 48 name=`basename $file` 49 name=`echo $name | sed "s/\.\(.\{1,2\}\)\$/(\1)/"` 50 ed - $file > $TMPDIR/tmp.$$ <<! 51 /^.SH NAME/+p 52 q 53! 54 desc=`line < $TMPDIR/tmp.$$` 55 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/$/./"` 56 if test -n "$desc" 57 then 58 echo $desc >> $TMPDIR/tocx$1 59 fi 60 rm -f $TMPDIR/tmp.$$ 61 done 62else case $1 in 63 all ) 64 : tocx files for all sections and everything else 65 66 for x in 1 2 3 4 5 6 7 8 67 do 68 $0 $p $x $x 69 done 70 $0 $p t 71 ;; 72 t ) 73 : permuted index and toc files 74 75 if test ! -f $TMPDIR/tocx1 76 then 77 echo "tocrc: some tocx? files missing" 78 exit 79 fi 80 cat $TMPDIR/tocx? > $TMPDIR/cattoc 81 ed - $TMPDIR/cattoc <<! 82 H 83 g/(1c)/s//(1C)/ 84 g/(1m)/s//(1M)/ 85 g/(1g)/s//(1G)/ 86 g/(3c)/s//(3C)/ 87 g/(3m)/s//(3M)/ 88 g/(3s)/s//(3S)/ 89 g/(3x)/s//(3X)/ 90 g/"\."/d 91 w 92 q 93! 94 ptx -r -t -b $TOOLS/break -f -w $P -i $TOOLS/ignore $TMPDIR/cattoc $MANDIR/man0/ptxx 95 for x in 1 2 3 4 5 6 7 8 96 do 97 ed - $TMPDIR/tocx$x << ! 98 H 99 /^intro/m0 100 1,\$s/ .*:// 101 1,\$s/.$// 102 1,\$s/([1-8][a-z]\{0,1\}) /" "/ 103 1,\$s/.*/.xx "&"/ 104 g/""/d 105 w $MANDIR/man0/toc$x 106 q 107! 108 done 109 ;; 110 * ) 111 $0 $p $1 $1 112 ;; 113 esac 114fi 115