Michael Teichgr?bersrc: use whatis instead of whichc75df9717 years agoHistory
56 lines · 900 B · Text
RawDownload
#!/usr/local/plan9/bin/rc . 9.rcsym = 'threadmain?z	p9main?z	main?z' fn dbsrc{	echo $sym | db $1 >[2]/dev/null | 9 sed '/symbol not found/d;s/.*\(\) //'} fn go{	type=`{9 file $1}	switch($type){	case *script*		plumbit $1 '(script)'	case *executable* *'plan 9 boot image'* *'shared object'*		plumbit  `{dbsrc $1} '(executable)'	case *		echo 'src: can''t find source for '$1 - unrecognized type $type >[1=2]	}} fn plumbit{B $1} fn usage{	echo usage: 'src [-n] [-s symbol] executable ...'>[1=2]	exit usage} while(~ $1 -*)	switch($1){	case -n		shift		fn plumbit {echo $1}	case -s		shift		# add main in case symbol is undefined		sym=$1'?z			threadmain?z			p9main?z			main?z'		shift	case -*		usage	} if(~ $#* 0) usageifs=''for(i){	wi=`{whatis $i >[2]/dev/null}	if(test -f $i) go $i	if not if(~ $#wi 1 && test -f $wi) go $wi	if not echo 'src: can''t find '$i}