aboutsummaryrefslogtreecommitdiff
path: root/bfd/doc/unPROTO
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/doc/unPROTO')
-rwxr-xr-xbfd/doc/unPROTO18
1 files changed, 18 insertions, 0 deletions
diff --git a/bfd/doc/unPROTO b/bfd/doc/unPROTO
new file mode 100755
index 0000000..a6f9520
--- /dev/null
+++ b/bfd/doc/unPROTO
@@ -0,0 +1,18 @@
+#
+# 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;/
+