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