Plan 9 from User Space's /usr/local/plan9/bin/sig

#!/usr/local/plan9/bin/rc
# Usage: sig key ...
#	prints out function signatures by grepping the manual

. 9.rc
*=`{echo $*|tr A-Z a-z|tr -dc 'a-z0-9_ \012'}	# fold case, delete funny chars
if(~ $#* 0){
	echo Usage: sig function ... >[1=2]
	exit 1
}

noplan9=()
for(p in $path) {
	if(! ~ $p $PLAN9/bin)
		noplan9=($noplan9 $p)
}	

for (i) {
	files=`{grep -il '[ 	]\*?'$i'\(' $PLAN9/man/man3/*.3*}
	for(j in $files) {
		{echo .nr LL 20i; 9 sed -n '/^.SH SYNOPSIS/,/^.SH.*DESCR/p'  $j } |
			nroff -man |
			sed '
				:a
				/,$/ {
					N
					s/\n//
				}
				ta
				s/[ 	]+/ /g' |
			grep -i -e '[ 	]\*?'$i'\(' | sed 's/^[ +]/	/'
	}
	{ path=$noplan9; man 2 $i; man 3 $i } >[2]/dev/null | nobs | sed -n '
		:d
		/SYNOPSIS/bp
		n
		bd
		:p
		/DESCRIPTION/bd
		p
		n
		bp
	' | grep -i -e '[ 	]\*?'$i'\(' | sed 's/^[ +]/	/'
}

exit 0

Space Glenda

Copyright © 2005 Lucent Technologies, Russ Cox, MIT.
See license for details.