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