Added to repository.
authorbvassche <bvassche@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Wed, 28 Oct 2009 10:43:22 +0000 (10:43 +0000)
committerbvassche <bvassche@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Wed, 28 Oct 2009 10:43:22 +0000 (10:43 +0000)
git-svn-id: https://scst.svn.sourceforge.net/svnroot/scst/trunk@1286 d57e44dd-8a1f-0410-8b47-8ef2f437770f

scripts/list-conditional-defines [new file with mode: 0755]

diff --git a/scripts/list-conditional-defines b/scripts/list-conditional-defines
new file mode 100755 (executable)
index 0000000..87def60
--- /dev/null
@@ -0,0 +1,27 @@
+#!/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
+}