--- /dev/null
+#!/bin/gawk -f
+
+# awk script that reads a patch from stdin and prints all #define statements
+# that match the following patttern:
+# +#ifndef <symbol>
+# +#define <symbol> <text>
+# +#endif
+
+BEGIN {
+ previous_is_ifndef = 0
+ symbol = ""
+}
+
+{
+ is_ifndef = match($0, "^+#ifndef (.*)$", a)
+ if (is_ifndef)
+ symbol = a[1]
+ is_define = previous_is_ifndef && match($0, "^+#define " + symbol)
+ if (is_define)
+ define = $0
+ is_endif = match($0, "^+#endif$")
+ if (before_previous_is_ifndef && previous_is_define && is_endif)
+ print define
+ before_previous_is_ifndef = previous_is_ifndef
+ previous_is_ifndef = is_ifndef
+ previous_is_define = is_define
+}