xref: /netbsd/share/man/tools/cknames (revision bf9ec67e)
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