summaryrefslogtreecommitdiffstats
path: root/share/man/tools/cknames
blob: f1d018a6bf7d239775a8e3c484d77122ba926381 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#! /bin/sh
set x $*
. ./.param

trap "rm -f $TMPDIR/*$$; exit;" 2

for sec in $DIRLST
do
	/bin/ls $MANDIR/man$sec > $TMPDIR/man${sec}$$
done

for sec in $DIRLST
do
	cd $MANDIR/man$sec
	dt=`date`
	echo "$dt\n" > $TMPDIR/not.one.line$sec
	echo "$dt\n" > $TMPDIR/name.order$sec
	echo "$dt\n" > $TMPDIR/file.match$sec
	echo "$dt\n" > $TMPDIR/no.TH$sec
	echo "$dt\n" > $TMPDIR/no.NAME$sec
	while read file
	do
		so=`line < $file | sed "s/ .*$//"`
		if test "$so" = ".so"
		then
			continue
		fi
		grep "^.SH NAME" $file > /dev/null
		if test $? -eq 1
		then
			echo $file >> $TMPDIR/no.NAME$sec
			continue
		fi
		grep "^.SH SYNOPSIS" $file > /dev/null
		if test $? -eq 0
		then
			lines=`cat $file | sed -n "/\.SH NAME/,/\.SH SYNOP/p" | wc -l | sed "s/ //g"`
		else
			lines=`cat $file | sed -n "/\.SH NAME/,/\.SH DESCR/p" | wc -l | sed "s/ //g"`
		fi
		if test $lines -gt 3
		then
			echo $file >> $TMPDIR/not.one.line$sec
			continue
		fi
		th=`grep "^.TH" $file | line`
		if test -z "$th"
		then
			echo $file >> $TMPDIR/no.TH$sec
			continue
		fi
		set $th
		name=`echo $2 | tr [A-Z] [a-z]`
		suf=`echo $3 | tr [A-Z] [a-z]`
		fname="${name}.$suf"
		if test $fname != $file
		then
			echo $file >> $TMPDIR/file.match$sec
		fi
		ed - $file > $TMPDIR/tmp.$$ <<!
			/^.SH NAME/+p
			q
!
		nname=`cat $TMPDIR/tmp.$$ | sed -e "s/ .*//" -e "s/,.*//"`
		rm -f $TMPDIR/tmp.$$
		if test $name != $nname
		then
			echo $file >> $TMPDIR/name.order$sec
		fi
	done < $TMPDIR/man${sec}$$
done

rm -f $TMPDIR/*$$
OpenPOWER on IntegriCloud