aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-08-09 04:59:10 +0000
committerBruce Momjian <bruce@momjian.us>1998-08-09 04:59:10 +0000
commita08dc16c47604be9d205e5e88e77d95ab5cc2309 (patch)
treec6a7affdcd939b6638b76018e156b55e24650c92 /src
parent111b80ce00922acbc9405b0c418d30387c908bb2 (diff)
downloadpostgresql-a08dc16c47604be9d205e5e88e77d95ab5cc2309.tar.gz
postgresql-a08dc16c47604be9d205e5e88e77d95ab5cc2309.zip
New pgindent.
Diffstat (limited to 'src')
-rw-r--r--src/backend/optimizer/plan/initsplan.c4
-rw-r--r--src/backend/optimizer/util/clauses.c4
-rw-r--r--src/include/optimizer/clauses.h4
-rwxr-xr-xsrc/tools/pgindent/pgindent64
4 files changed, 63 insertions, 13 deletions
diff --git a/src/backend/optimizer/plan/initsplan.c b/src/backend/optimizer/plan/initsplan.c
index 5b3f05dbc61..7aacff64b18 100644
--- a/src/backend/optimizer/plan/initsplan.c
+++ b/src/backend/optimizer/plan/initsplan.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.16 1998/08/09 04:17:38 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.17 1998/08/09 04:59:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -172,7 +172,7 @@ add_clause_to_rels(Query *root, List *clause)
/*
* Retrieve all relids and vars contained within the clause.
*/
- clause_relids_vars((Node *) clause, &relids, &vars);
+ clause_get_relids_vars((Node *) clause, &relids, &vars);
clauseinfo->clause = (Expr *) clause;
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index 61a7f2d473e..1a304e316e0 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.18 1998/08/07 05:02:22 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.19 1998/08/09 04:59:06 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -352,7 +352,7 @@ pull_constant_clauses(List *quals, List **constantQual)
*
*/
void
-clause_relids_vars(Node *clause, List **relids, List **vars)
+clause_get_relids_vars(Node *clause, List **relids, List **vars)
{
List *clvars = pull_var_clause(clause);
List *var_list = NIL;
diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h
index 5c92930f404..024b225907b 100644
--- a/src/include/optimizer/clauses.h
+++ b/src/include/optimizer/clauses.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: clauses.h,v 1.10 1998/02/26 04:42:13 momjian Exp $
+ * $Id: clauses.h,v 1.11 1998/08/09 04:59:08 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -35,7 +35,7 @@ extern bool and_clause(Node *clause);
extern Expr *make_andclause(List *andclauses);
extern List *pull_constant_clauses(List *quals, List **constantQual);
-extern void clause_relids_vars(Node *clause, List **relids, List **vars);
+extern void clause_get_relids_vars(Node *clause, List **relids, List **vars);
extern int NumRelids(Node *clause);
extern bool contains_not(Node *clause);
extern bool join_clause_p(Node *clause);
diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent
index 33b6e06072a..67fa47d6257 100755
--- a/src/tools/pgindent/pgindent
+++ b/src/tools/pgindent/pgindent
@@ -26,10 +26,12 @@ for FILE
do
cat $FILE |
sed 's;/\* *---;/*---X_X;g' |
+# workaround for indent bug with 'else' handling
sed 's;\([} ]\)else[ ]*\(/\*.*\)$;\1else\
-\2;g' | # workaround for indent bug
+\2;g' |
detab -t4 -qc |
- sed 's;^DATA(.*$;/*&*/;' >/tmp/$$a # protect backslashes in DATA()
+# protect backslashes in DATA()
+ sed 's;^DATA(.*$;/*&*/;' >/tmp/$$a
# We get the list of typedef's from /src/tools/find_typedef
indent -bad -bap -bc -bl -d0 -cdb -nce -nfc1 -di12 -i4 -l75 \
@@ -792,12 +794,17 @@ do
cat /tmp/$$a |
sed 's;^/\*\(DATA(.*\)\*/$;\1;' |
sed 's;/\*---X_X;/* ---;g' |
- sed 's;^static[ ][ ]*;static ;g' | # workaround indent bug
+# workaround indent bug
+ sed 's;^static[ ][ ]*;static ;g' |
sed 's;^}[ ][ ]*/\*;} /*;' |
detab -t8 -qc |
entab -t4 -qc |
- sed 's;^\([A-Za-z_][^ ]*\)[ ][ ]*\*$;\1 *;' | # move trailing * in function return type
- awk ' { line3 = $0; /* remove un-needed braces around single statements */
+# move trailing * in function return type
+ sed 's;^\([A-Za-z_][^ ]*\)[ ][ ]*\*$;\1 *;' |
+# remove un-needed braces around single statements
+ awk '
+ {
+ line3 = $0;
if (skips > 0)
skips--;
if (line1 ~ " *{$" &&
@@ -823,9 +830,52 @@ do
if (skips <= 2)
print line2;
}' |
+# 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
+# like real functions.
+ awk ' BEGIN {paren_level = 0}
+ {
+ if ($0 ~ /^[a-zA-Z_][a-zA-Z_0-9]*[^\(]*$/)
+ {
+ saved_len = 0;
+ saved_lines[++saved_len] = $0;
+ if ((getline saved_lines[++saved_len]) == 0)
+ print saved_lines[1];
+ else
+ if (saved_lines[saved_len] !~ /^[a-zA-Z_][a-zA-Z_0-9]*\(/ ||
+ saved_lines[saved_len] ~ /^[a-zA-Z_][a-zA-Z_0-9]*\(.*\)$/ ||
+ saved_lines[saved_len] ~ /^[a-zA-Z_][a-zA-Z_0-9]*\(.*\);$/)
+ {
+ print saved_lines[1];
+ print saved_lines[2];
+ }
+ else
+ {
+ while (1)
+ {
+ if ((getline saved_lines[++saved_len]) == 0)
+ break;
+ if (saved_lines[saved_len] ~ /\);?$/ ||
+ saved_lines[saved_len] ~ /^[^ ]/ ||
+ saved_lines[saved_len] ~ /^$/)
+ break;
+ }
+ for (i=1; i <= saved_len; i++)
+ {
+ if (i == 1 && saved_lines[saved_len] ~ /\);$/)
+ {
+ printf "%s", saved_lines[i];
+ if (substr(saved_lines[i], length(saved_lines[i]),1) != "*")
+ printf " ";
+ }
+ else print saved_lines[i];
+ }
+ }
+ }
+ else print $0;
+ }' |
cat >/tmp/$$ && cat /tmp/$$ >$FILE
done
-# The 'for' loop makes these backup files useless
-# so delete them
+# The 'for' loop makes these backup files useless so delete them
rm -f *a.BAK