#
# The PROTO macro is a subterfuge to be compatible with both ANSI and K&R 
# declaration syntax.  It's not widely known, so for the docn just map the 
# thing to ANSI declaration syntax.
# 
# First, join up defns broken across multiple lines in source---but leave
# any linebreaks, to prettify our examples 
:pbegn
/PROTO(.*, *$/N
s/\n/?/
t pbegn
s/?/\
/g
# Now actually do the PROTO interpretation.
# A PROTO invocation looks like
#   PROTO( resulttype, function, (arglist));
s/[ 	]*PROTO(\(.*\),[\n 	]*\(.*\),[\n 	]*\((.*)\));/\1 \2\3;/

