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