From a08dc16c47604be9d205e5e88e77d95ab5cc2309 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sun, 9 Aug 1998 04:59:10 +0000 Subject: [PATCH] New pgindent. --- src/backend/optimizer/plan/initsplan.c | 4 +-- src/backend/optimizer/util/clauses.c | 4 +-- src/include/optimizer/clauses.h | 4 +-- src/tools/pgindent/pgindent | 64 ++++++++++++++++++++++++++++++---- 4 files changed, 63 insertions(+), 13 deletions(-) diff --git a/src/backend/optimizer/plan/initsplan.c b/src/backend/optimizer/plan/initsplan.c index 5b3f05dbc6..7aacff64b1 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 61a7f2d473..1a304e316e 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 5c92930f40..024b225907 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 33b6e06072..67fa47d625 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 -- 2.11.0