From 70e2e3d8b1189c2c74007b39137ba475ae9f1cbb Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Thu, 13 Jul 2006 16:39:20 +0000
Subject: [PATCH] Improve pginclude tools to process include file usage by
 other include files.

---
 src/tools/pginclude/pgdefine    | 11 ++++++++---
 src/tools/pginclude/pgrminclude |  4 +++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/tools/pginclude/pgdefine b/src/tools/pginclude/pgdefine
index 41e71b452dc..52a775e163c 100755
--- a/src/tools/pginclude/pgdefine
+++ b/src/tools/pginclude/pgdefine
@@ -1,14 +1,19 @@
 :
 # create macro calls for all defines in the file
 
-# $PostgreSQL: pgsql/src/tools/pginclude/pgdefine,v 1.3 2006/03/11 04:38:42 momjian Exp $
+# $PostgreSQL: pgsql/src/tools/pginclude/pgdefine,v 1.4 2006/07/13 16:39:20 momjian Exp $
 
 trap "rm -f /tmp/$$" 0 1 2 3 15
 for FILE
 do
 	cat "$FILE" | grep "^#define" >/tmp/$$
-	cat /tmp/$$ | sed -n 's/^#define[ 	][ 	]*\([a-zA-Z0-9_]*\)[ 	][ 	]*[^ 	].*$/(void)\1;/p'
-	cat /tmp/$$ | sed -n 's/^#define[ 	][ 	]*\([a-zA-Z0-9_]*([^)]*)\).*$/(=void)\1;/p' |
+	cat /tmp/$$ | sed -n 's/^#define[ 	][ 	]*\([a-zA-Z0-9_]*\)[ 	][ 	]*[^ 	].*\\\\$/\1;/p'
+	cat /tmp/$$ | sed -n 's/^#define[ 	][ 	]*\([a-zA-Z0-9_]*\)[ 	][ 	]*[^ 	].*[^\\\\]$/(void)\1;/p'
+
+	(
+		cat /tmp/$$ | sed -n 's/^#define[ 	][ 	]*\([a-zA-Z0-9_]*([^)]*)\).*\\\\$/\1;/p'
+		cat /tmp/$$ | sed -n 's/^#define[ 	][ 	]*\([a-zA-Z0-9_]*([^)]*)\).*[^\\\\]$/(=void)\1;/p'
+	) |
 	sed 's/([a-zA-Z0-9_ ][a-zA-Z0-9_ ]*)/(0)/g' |
 	sed 's/([a-zA-Z0-9_ ]*,/(0,/g' |
 	sed 's/,[a-zA-Z0-9_ ]*,/,0,/g' |
diff --git a/src/tools/pginclude/pgrminclude b/src/tools/pginclude/pgrminclude
index 33dd11eeff8..f1cf26091e7 100755
--- a/src/tools/pginclude/pgrminclude
+++ b/src/tools/pginclude/pgrminclude
@@ -1,7 +1,7 @@
 :
 # remove extra #include's
 
-# $PostgreSQL: pgsql/src/tools/pginclude/pgrminclude,v 1.13 2006/07/12 16:28:27 momjian Exp $
+# $PostgreSQL: pgsql/src/tools/pginclude/pgrminclude,v 1.14 2006/07/13 16:39:20 momjian Exp $
 
 trap "rm -f /tmp/$$.c /tmp/$$.o /tmp/$$ /tmp/$$a /tmp/$$b" 0 1 2 3 15
 find . \( -name CVS -a -prune \) -o -type f -name '*.[ch]' -print | 
@@ -71,6 +71,8 @@ do
 				cat /tmp/$$b
 				cat /tmp/$$.c
 			fi
+			grep -v '^#include[ 	][ 	]*[<"]'"$INCLUDE"'[>"]' \
+				"$FILE" >/tmp/$$b
 			mv /tmp/$$b "$FILE"
 		fi
 	done
-- 
GitLab