Add blank lines to pgindent.
This commit is contained in:
parent
591b9b091c
commit
1f735c32b2
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# $PostgreSQL: pgsql/src/tools/pgindent/pgindent,v 1.90 2006/12/27 23:03:52 momjian Exp $
|
# $PostgreSQL: pgsql/src/tools/pgindent/pgindent,v 1.91 2007/11/15 21:52:39 momjian Exp $
|
||||||
|
|
||||||
# Known bugs:
|
# Known bugs:
|
||||||
#
|
#
|
||||||
@ -47,6 +47,7 @@ do
|
|||||||
sed 's;\([} ]\)else[ ]*\(/\*.*[^\*][^/]\)$;\1else\
|
sed 's;\([} ]\)else[ ]*\(/\*.*[^\*][^/]\)$;\1else\
|
||||||
\2;g' |
|
\2;g' |
|
||||||
detab -t4 -qc |
|
detab -t4 -qc |
|
||||||
|
|
||||||
# work around bug where function that defines no local variables misindents
|
# work around bug where function that defines no local variables misindents
|
||||||
# switch() case lines and line after #else. Do not do for struct/enum.
|
# switch() case lines and line after #else. Do not do for struct/enum.
|
||||||
awk ' BEGIN {line1 = ""; line2 = ""}
|
awk ' BEGIN {line1 = ""; line2 = ""}
|
||||||
@ -69,6 +70,7 @@ do
|
|||||||
if (NR >= 1)
|
if (NR >= 1)
|
||||||
print line1;
|
print line1;
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# prevent indenting of code in 'extern "C"' blocks
|
# prevent indenting of code in 'extern "C"' blocks
|
||||||
awk ' BEGIN {line1 = ""; line2 = ""; skips = 0}
|
awk ' BEGIN {line1 = ""; line2 = ""; skips = 0}
|
||||||
{
|
{
|
||||||
@ -103,8 +105,10 @@ do
|
|||||||
if (NR >= 1 && skips <= 1)
|
if (NR >= 1 && skips <= 1)
|
||||||
print line1;
|
print line1;
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# protect backslashes in DATA()
|
# protect backslashes in DATA()
|
||||||
sed 's;^DATA(.*$;/*&*/;' |
|
sed 's;^DATA(.*$;/*&*/;' |
|
||||||
|
|
||||||
# protect wrapping in CATALOG()
|
# protect wrapping in CATALOG()
|
||||||
sed 's;^CATALOG(.*$;/*&*/;' >/tmp/$$a
|
sed 's;^CATALOG(.*$;/*&*/;' >/tmp/$$a
|
||||||
|
|
||||||
@ -1878,30 +1882,37 @@ do
|
|||||||
-Tz_stream \
|
-Tz_stream \
|
||||||
-Tz_streamp \
|
-Tz_streamp \
|
||||||
/tmp/$$a >/tmp/$$ 2>&1
|
/tmp/$$a >/tmp/$$ 2>&1
|
||||||
|
|
||||||
if [ "$?" -ne 0 -o -s /tmp/$$ ]
|
if [ "$?" -ne 0 -o -s /tmp/$$ ]
|
||||||
then echo
|
then echo
|
||||||
echo "$FILE"
|
echo "$FILE"
|
||||||
cat /tmp/$$
|
cat /tmp/$$
|
||||||
fi
|
fi
|
||||||
cat /tmp/$$a |
|
cat /tmp/$$a |
|
||||||
|
|
||||||
# restore DATA/CATALOG lines
|
# restore DATA/CATALOG lines
|
||||||
sed 's;^/\*\(DATA(.*\)\*/$;\1;' |
|
sed 's;^/\*\(DATA(.*\)\*/$;\1;' |
|
||||||
sed 's;^/\*\(CATALOG(.*\)\*/$;\1;' |
|
sed 's;^/\*\(CATALOG(.*\)\*/$;\1;' |
|
||||||
|
|
||||||
# remove tabs and retab with four spaces
|
# remove tabs and retab with four spaces
|
||||||
detab -t8 -qc |
|
detab -t8 -qc |
|
||||||
entab -t4 -qc |
|
entab -t4 -qc |
|
||||||
sed 's;^/\* Open extern \"C\" \*/$;{;' |
|
sed 's;^/\* Open extern \"C\" \*/$;{;' |
|
||||||
sed 's;^/\* Close extern \"C\" \*/$;};' |
|
sed 's;^/\* Close extern \"C\" \*/$;};' |
|
||||||
sed 's;/\*---X_X;/* ---;g' |
|
sed 's;/\*---X_X;/* ---;g' |
|
||||||
|
|
||||||
# workaround indent bug for 'static'
|
# workaround indent bug for 'static'
|
||||||
sed 's;^static[ ][ ]*;static ;g' |
|
sed 's;^static[ ][ ]*;static ;g' |
|
||||||
|
|
||||||
# remove too much indenting after closing brace
|
# remove too much indenting after closing brace
|
||||||
sed 's;^} [ ]*;} ;' |
|
sed 's;^} [ ]*;} ;' |
|
||||||
|
|
||||||
# indent single-line after-'else' comment by only one tab
|
# indent single-line after-'else' comment by only one tab
|
||||||
sed 's;\([} ]\)else[ ]*\(/\*.*\*/\)[ ]*$;\1else \2;g' |
|
sed 's;\([} ]\)else[ ]*\(/\*.*\*/\)[ ]*$;\1else \2;g' |
|
||||||
|
|
||||||
# pull in #endif comments
|
# pull in #endif comments
|
||||||
sed 's;^#endif[ ][ ]*/\*;#endif /*;' |
|
sed 's;^#endif[ ][ ]*/\*;#endif /*;' |
|
||||||
# work around #else indenting next line if #ifdef defines variables at top
|
|
||||||
# work around misindenting of function with no variables defined
|
# work around misindenting of function with no variables defined
|
||||||
awk '
|
awk '
|
||||||
{
|
{
|
||||||
@ -1912,10 +1923,13 @@ do
|
|||||||
}
|
}
|
||||||
else print $0;
|
else print $0;
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# add space after comments that start on tab stops
|
# add space after comments that start on tab stops
|
||||||
sed 's;\([^ ]\)\(/\*.*\*/\)$;\1 \2;' |
|
sed 's;\([^ ]\)\(/\*.*\*/\)$;\1 \2;' |
|
||||||
|
|
||||||
# move trailing * in function return type
|
# move trailing * in function return type
|
||||||
sed 's;^\([A-Za-z_][^ ]*\)[ ][ ]*\*$;\1 *;' |
|
sed 's;^\([A-Za-z_][^ ]*\)[ ][ ]*\*$;\1 *;' |
|
||||||
|
|
||||||
# remove un-needed braces around single statements
|
# remove un-needed braces around single statements
|
||||||
# Do not use because it uglifies PG_TRY/PG_CATCH blocks and probably
|
# Do not use because it uglifies PG_TRY/PG_CATCH blocks and probably
|
||||||
# isn't needed for general use.
|
# isn't needed for general use.
|
||||||
@ -1945,6 +1959,7 @@ do
|
|||||||
# if (NR >= 1 && skips <= 2)
|
# if (NR >= 1 && skips <= 2)
|
||||||
# print line2;
|
# print line2;
|
||||||
# }' |
|
# }' |
|
||||||
|
|
||||||
# remove blank line between opening brace and block comment
|
# remove blank line between opening brace and block comment
|
||||||
awk '
|
awk '
|
||||||
{
|
{
|
||||||
@ -1973,6 +1988,7 @@ do
|
|||||||
if (NR >= 1 && skips <= 2)
|
if (NR >= 1 && skips <= 2)
|
||||||
print line2;
|
print line2;
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# remove trailing blank lines, helps with adding blank before trailing #endif
|
# remove trailing blank lines, helps with adding blank before trailing #endif
|
||||||
awk ' BEGIN {blank_lines = 0;}
|
awk ' BEGIN {blank_lines = 0;}
|
||||||
{
|
{
|
||||||
@ -1986,6 +2002,7 @@ do
|
|||||||
print line1;
|
print line1;
|
||||||
}
|
}
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# remove blank line before #else, #elif, and #endif
|
# remove blank line before #else, #elif, and #endif
|
||||||
awk ' BEGIN {line1 = ""; line2 = ""; skips = 0}
|
awk ' BEGIN {line1 = ""; line2 = ""; skips = 0}
|
||||||
{
|
{
|
||||||
@ -2010,6 +2027,7 @@ do
|
|||||||
if (NR >= 1 && skips <= 1)
|
if (NR >= 1 && skips <= 1)
|
||||||
print line1;
|
print line1;
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# add blank line before #endif if it is the last line in the file
|
# add blank line before #endif if it is the last line in the file
|
||||||
awk ' BEGIN {line1 = ""; line2 = ""}
|
awk ' BEGIN {line1 = ""; line2 = ""}
|
||||||
{
|
{
|
||||||
@ -2023,6 +2041,7 @@ do
|
|||||||
printf "\n";
|
printf "\n";
|
||||||
print line1;
|
print line1;
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# Move prototype names to the same line as return type. Useful for ctags.
|
# Move prototype names to the same line as return type. Useful for ctags.
|
||||||
# Indent should do this, but it does not. It formats prototypes just
|
# Indent should do this, but it does not. It formats prototypes just
|
||||||
# like real functions.
|
# like real functions.
|
||||||
@ -2066,6 +2085,7 @@ do
|
|||||||
}
|
}
|
||||||
else print $0;
|
else print $0;
|
||||||
}' |
|
}' |
|
||||||
|
|
||||||
# fix indenting of typedef caused by __cplusplus in libpq-fe.h
|
# fix indenting of typedef caused by __cplusplus in libpq-fe.h
|
||||||
(
|
(
|
||||||
if echo "$FILE" | grep -q 'libpq-fe.h$'
|
if echo "$FILE" | grep -q 'libpq-fe.h$'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user