Prevent indenting of 'extern "C"' blocks.

This commit is contained in:
Bruce Momjian 2001-11-07 21:24:28 +00:00
parent a69833c583
commit e644fc25c7
1 changed files with 34 additions and 0 deletions

View File

@ -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 |