sig 658 B

1234567891011121314151617181920212223242526272829303132
  1. #!/dis/sh.dis
  2. # Usage: sig key ...
  3. # prints out function signatures by grepping the manual
  4. # stolen from plan 9 via p9p and caerwyn
  5. load std
  6. x=$*
  7. *=`{echo $x | tr A-Z a-z | tr -dc 'a-z0-9_ \012'} # fold case, delete funny chars
  8. if {no $*} {
  9. echo Usage: sig function ... >[1=2]
  10. raise 'usage'
  11. }
  12. for i in $* {
  13. files=`{grep -il '[ ]*'$i':[ ]*fn\(' /man/2/*}
  14. for j in $files {
  15. sect=`{basename $j}^'(2)'
  16. {echo .nr LL 20i; sed -n '/^.SH SYNOPSIS/,/^.SH.*DESCR/p' $j} |
  17. # os nroff -man |
  18. sed '
  19. :a
  20. /,$|:$/ {
  21. N
  22. s/\n//
  23. }
  24. ta
  25. s/[ ]+/ /g' |
  26. grep -i '[ ]*'$i':[ ]*fn\(' | sed 's/^[ ]+/ /; s/;$/; \# '$sect'/'
  27. }
  28. }
  29. exit