1 1.1 mrg #! /bin/sh 2 1.2 perry # 3 1.2 perry # $NetBSD: cknames,v 1.2 1998/01/09 08:04:57 perry Exp $ 4 1.2 perry # 5 1.1 mrg set x $* 6 1.1 mrg . ./.param 7 1.1 mrg 8 1.1 mrg trap "rm -f $TMPDIR/*$$; exit;" 2 9 1.1 mrg 10 1.1 mrg for sec in $DIRLST 11 1.1 mrg do 12 1.1 mrg /bin/ls $MANDIR/man$sec > $TMPDIR/man${sec}$$ 13 1.1 mrg done 14 1.1 mrg 15 1.1 mrg for sec in $DIRLST 16 1.1 mrg do 17 1.1 mrg cd $MANDIR/man$sec 18 1.1 mrg dt=`date` 19 1.1 mrg echo "$dt\n" > $TMPDIR/not.one.line$sec 20 1.1 mrg echo "$dt\n" > $TMPDIR/name.order$sec 21 1.1 mrg echo "$dt\n" > $TMPDIR/file.match$sec 22 1.1 mrg echo "$dt\n" > $TMPDIR/no.TH$sec 23 1.1 mrg echo "$dt\n" > $TMPDIR/no.NAME$sec 24 1.1 mrg while read file 25 1.1 mrg do 26 1.1 mrg so=`line < $file | sed "s/ .*$//"` 27 1.1 mrg if test "$so" = ".so" 28 1.1 mrg then 29 1.1 mrg continue 30 1.1 mrg fi 31 1.1 mrg grep "^.SH NAME" $file > /dev/null 32 1.1 mrg if test $? -eq 1 33 1.1 mrg then 34 1.1 mrg echo $file >> $TMPDIR/no.NAME$sec 35 1.1 mrg continue 36 1.1 mrg fi 37 1.1 mrg grep "^.SH SYNOPSIS" $file > /dev/null 38 1.1 mrg if test $? -eq 0 39 1.1 mrg then 40 1.1 mrg lines=`cat $file | sed -n "/\.SH NAME/,/\.SH SYNOP/p" | wc -l | sed "s/ //g"` 41 1.1 mrg else 42 1.1 mrg lines=`cat $file | sed -n "/\.SH NAME/,/\.SH DESCR/p" | wc -l | sed "s/ //g"` 43 1.1 mrg fi 44 1.1 mrg if test $lines -gt 3 45 1.1 mrg then 46 1.1 mrg echo $file >> $TMPDIR/not.one.line$sec 47 1.1 mrg continue 48 1.1 mrg fi 49 1.1 mrg th=`grep "^.TH" $file | line` 50 1.1 mrg if test -z "$th" 51 1.1 mrg then 52 1.1 mrg echo $file >> $TMPDIR/no.TH$sec 53 1.1 mrg continue 54 1.1 mrg fi 55 1.1 mrg set $th 56 1.1 mrg name=`echo $2 | tr [A-Z] [a-z]` 57 1.1 mrg suf=`echo $3 | tr [A-Z] [a-z]` 58 1.1 mrg fname="${name}.$suf" 59 1.1 mrg if test $fname != $file 60 1.1 mrg then 61 1.1 mrg echo $file >> $TMPDIR/file.match$sec 62 1.1 mrg fi 63 1.1 mrg ed - $file > $TMPDIR/tmp.$$ <<! 64 1.1 mrg /^.SH NAME/+p 65 1.1 mrg q 66 1.1 mrg ! 67 1.1 mrg nname=`cat $TMPDIR/tmp.$$ | sed -e "s/ .*//" -e "s/,.*//"` 68 1.1 mrg rm -f $TMPDIR/tmp.$$ 69 1.1 mrg if test $name != $nname 70 1.1 mrg then 71 1.1 mrg echo $file >> $TMPDIR/name.order$sec 72 1.1 mrg fi 73 1.1 mrg done < $TMPDIR/man${sec}$$ 74 1.1 mrg done 75 1.1 mrg 76 1.1 mrg rm -f $TMPDIR/*$$ 77