From e644fc25c75e33441c0c73897fe974d2a1c31a92 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 7 Nov 2001 21:24:28 +0000 Subject: [PATCH] Prevent indenting of 'extern "C"' blocks. --- src/tools/pgindent/pgindent | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index faa192c94f..913f09823d 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -61,6 +61,37 @@ do if (NR >= 1) print line1; }' | +# prevent indenting of code in 'extern "C"' blocks + awk ' BEGIN {line1 = ""; line2 = ""; skips = 0} + { + line2 = $0; + if (skips > 0) + skips--; + if (line1 ~ "^extern[ ]*\"C\"" && + line2 ~ "^{[ ]*$") + { + # don't print first line + print "/* Open extern \"C\" */"; + line2 = ""; + skips = 2; + } + else if (line1 ~ "^#ifdef[ ]*__cplusplus" && + line2 ~ "^}[ ]*$") + { + print line1; + print "/* Close extern \"C\" */"; + line2 = ""; + skips = 2; + } + else + if (skips == 0 && NR >= 2) + print line1; + line1 = line2; + } + END { + if (NR >= 1 && skips <= 1) + print line1; + }' | # protect backslashes in DATA() sed 's;^DATA(.*$;/*&*/;' | # protect wrapping in CATALOG() @@ -1456,6 +1487,9 @@ do cat /tmp/$$a | sed 's;^/\*\(DATA(.*\)\*/$;\1;' | sed 's;^/\*\(CATALOG(.*\)\*/$;\1;' | + sed 's;^/\* Open extern \"C\" \*/$;extern "C"\ +{;' | + sed 's;^/\* Close extern \"C\" \*/$;};' | # remove tabs and retab with four spaces detab -t8 -qc | entab -t4 -qc | -- 2.40.0