]> granicus.if.org Git - postgresql/commitdiff
New pgindent.
authorBruce Momjian <bruce@momjian.us>
Sun, 9 Aug 1998 04:59:10 +0000 (04:59 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 9 Aug 1998 04:59:10 +0000 (04:59 +0000)
src/backend/optimizer/plan/initsplan.c
src/backend/optimizer/util/clauses.c
src/include/optimizer/clauses.h
src/tools/pgindent/pgindent

index 5b3f05dbc615b079f89dda57ecf7b4d51bae7334..7aacff64b18349b782f719989213804c98bbbd5b 100644 (file)
@@ -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;
index 61a7f2d473ee2fac2f3d9e64b5f4a05a348a1d2c..1a304e316e03521abc9b05b17a464113ed179010 100644 (file)
@@ -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;
index 5c92930f404722ec49ca934bddf2d80e5e7956b9..024b225907b0ec94f0c0953c2dbeef0daec6b3fa 100644 (file)
@@ -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);
index 33b6e06072ae2135bd7b18ba21550b8f967f50c6..67fa47d62570cdf8723a1ca167bd0a43bf9830c8 100755 (executable)
@@ -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