diff options
author | Bruce Momjian <bruce@momjian.us> | 2001-11-07 21:24:28 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2001-11-07 21:24:28 +0000 |
commit | e644fc25c75e33441c0c73897fe974d2a1c31a92 (patch) | |
tree | 00a555a7fd1a9194097823e149cc706579117205 | |
parent | a69833c5833cb62beff77248574c1beaadea0734 (diff) | |
download | postgresql-e644fc25c75e33441c0c73897fe974d2a1c31a92.tar.gz postgresql-e644fc25c75e33441c0c73897fe974d2a1c31a92.zip |
Prevent indenting of 'extern "C"' blocks.
-rwxr-xr-x | src/tools/pgindent/pgindent | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index faa192c94f9..913f09823df 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 | |