summaryrefslogtreecommitdiff
path: root/dis/sig
blob: 9eb59a41b74c49b13252fc608dd6ae4ba3b1152d (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
#!/dis/sh.dis
# Usage: sig key ...
#	prints out function signatures by grepping the manual
# stolen from plan 9 via p9p and caerwyn
load std

x=$*
*=`{echo $x | tr A-Z a-z | tr -dc 'a-z0-9_ \012'} # fold case, delete funny chars
if {no $*} {
	echo Usage: sig function ... >[1=2]
	raise 'usage'
}

for i in $* {
	files=`{grep -il '[ 	]*'$i':[ 	]*fn\(' /man/2/*}
	for j in $files {
		sect=`{basename $j}^'(2)'
		{echo .nr LL 20i; sed -n '/^.SH SYNOPSIS/,/^.SH.*DESCR/p'  $j} |
#			os nroff -man |
			sed '
				:a
				/,$|:$/ {
					N
					s/\n//
				}
				ta
				s/[ 	]+/ /g' |
			grep -i '[	]*'$i':[ 	]*fn\(' | sed 's/^[ ]+/	/; s/;$/; \# '$sect'/'
	}
}

exit