#!/bin/rc # def: print C function definition rfork e if(~ $#* 0){ echo 'usage: def function [ path ... ]' >[1=2] exit usage } pat='^'$1'\(' shift if(~ $#* 0) *=/sys/src/lib* *=`{rgrep -np '\.c$' $pat $* | awk -F : '{ print $1, $2 }'} while(~ $#1 1 && ~ $#2 1){ file=$1 line=$2 prev=`{echo $line - 1 | bc} if(~ $prev 0) prev=1 echo $file:$line sed -n $prev',/^}[ ]*$/p' $file shift 2 }