tocrc revision 1.1
11.1SmrgMANDIR=/usr/man 21.1SmrgTMPDIR=/usr/man/tmp 31.1SmrgTOOLS=$MANDIR/tools 41.1Smrg 51.1Smrgtrap "rm $TMPDIR/tmp.$$ ; exit" 2 3 15 61.1Smrg 71.1SmrgP=108 81.1Smrgp="" 91.1Smrgif test "$1" = "-p" 101.1Smrgthen 111.1Smrg P=65 121.1Smrg p=-p 131.1Smrg shift 141.1Smrgfi 151.1Smrg 161.1Smrgif test $# -eq 0 171.1Smrgthen 181.1Smrg echo "tocrc: no argument" 191.1Smrg exit 201.1Smrgfi 211.1Smrg 221.1Smrgif test $# -eq 2 231.1Smrgthen 241.1Smrg : create toc input file for one section only 251.1Smrg 261.1Smrg > $TMPDIR/tocx$1 271.1Smrg for file in $MANDIR/man$1/*.$1* 281.1Smrg do 291.1Smrg if test ! -s $file 301.1Smrg then 311.1Smrg continue 321.1Smrg fi 331.1Smrg so=`line < $file | sed "s/ .*//"` 341.1Smrg if test "$so" = ".so" 351.1Smrg then 361.1Smrg continue 371.1Smrg fi 381.1Smrg ed - $file > $TMPDIR/tmp.$$ <<! 391.1Smrg H 401.1Smrg /^\.TH/p 411.1Smrg q 421.1Smrg! 431.1Smrg loc=`cat $TMPDIR/tmp.$$ | sed "s/.*local.*/local/"` 441.1Smrg if test "$loc" = "local" 451.1Smrg then 461.1Smrg continue 471.1Smrg fi 481.1Smrg name=`basename $file` 491.1Smrg name=`echo $name | sed "s/\.\(.\{1,2\}\)\$/(\1)/"` 501.1Smrg ed - $file > $TMPDIR/tmp.$$ <<! 511.1Smrg /^.SH NAME/+p 521.1Smrg q 531.1Smrg! 541.1Smrg desc=`line < $TMPDIR/tmp.$$` 551.1Smrg 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/$/./"` 561.1Smrg if test -n "$desc" 571.1Smrg then 581.1Smrg echo $desc >> $TMPDIR/tocx$1 591.1Smrg fi 601.1Smrg rm -f $TMPDIR/tmp.$$ 611.1Smrg done 621.1Smrgelse case $1 in 631.1Smrg all ) 641.1Smrg : tocx files for all sections and everything else 651.1Smrg 661.1Smrg for x in 1 2 3 4 5 6 7 8 671.1Smrg do 681.1Smrg $0 $p $x $x 691.1Smrg done 701.1Smrg $0 $p t 711.1Smrg ;; 721.1Smrg t ) 731.1Smrg : permuted index and toc files 741.1Smrg 751.1Smrg if test ! -f $TMPDIR/tocx1 761.1Smrg then 771.1Smrg echo "tocrc: some tocx? files missing" 781.1Smrg exit 791.1Smrg fi 801.1Smrg cat $TMPDIR/tocx? > $TMPDIR/cattoc 811.1Smrg ed - $TMPDIR/cattoc <<! 821.1Smrg H 831.1Smrg g/(1c)/s//(1C)/ 841.1Smrg g/(1m)/s//(1M)/ 851.1Smrg g/(1g)/s//(1G)/ 861.1Smrg g/(3c)/s//(3C)/ 871.1Smrg g/(3m)/s//(3M)/ 881.1Smrg g/(3s)/s//(3S)/ 891.1Smrg g/(3x)/s//(3X)/ 901.1Smrg g/"\."/d 911.1Smrg w 921.1Smrg q 931.1Smrg! 941.1Smrg ptx -r -t -b $TOOLS/break -f -w $P -i $TOOLS/ignore $TMPDIR/cattoc $MANDIR/man0/ptxx 951.1Smrg for x in 1 2 3 4 5 6 7 8 961.1Smrg do 971.1Smrg ed - $TMPDIR/tocx$x << ! 981.1Smrg H 991.1Smrg /^intro/m0 1001.1Smrg 1,\$s/ .*:// 1011.1Smrg 1,\$s/.$// 1021.1Smrg 1,\$s/([1-8][a-z]\{0,1\}) /" "/ 1031.1Smrg 1,\$s/.*/.xx "&"/ 1041.1Smrg g/""/d 1051.1Smrg w $MANDIR/man0/toc$x 1061.1Smrg q 1071.1Smrg! 1081.1Smrg done 1091.1Smrg ;; 1101.1Smrg * ) 1111.1Smrg $0 $p $1 $1 1121.1Smrg ;; 1131.1Smrg esac 1141.1Smrgfi 115