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