--- /dev/null
+#
+# 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;/
+