diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index dd7704649e16a7627a13d5ce56ae38e6fd3fb7a0..616aad0a71e5963d4e7ab76f214e8a683c1b9576 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -67,11 +67,14 @@ do line2 = $0; if (skips > 0) skips--; - if (line1 ~ "^extern[ ]*\"C\"" && - line2 ~ "^{[ ]*$") + if (line1 ~ "^#ifdef[ ]*__cplusplus" && + line2 ~ "^extern[ ]*\"C\"[ ]*$") { - # do not print first line - print "/* Open extern \"C\" */"; + print line1; + print line2; + if (getline && $0 ~ /^{[ ]*$/) + print "/* Open extern \"C\" */"; + else print $0; line2 = ""; skips = 2; } @@ -1490,8 +1493,7 @@ do # remove tabs and retab with four spaces detab -t8 -qc | entab -t4 -qc | - sed 's;^/\* Open extern \"C\" \*/$;extern "C"\ -{;' | + sed 's;^/\* Open extern \"C\" \*/$;{;' | sed 's;^/\* Close extern \"C\" \*/$;};' | sed 's;/\*---X_X;/* ---;g' | # workaround indent bug