This can format all PostgreSQL *.c and *.h files, but excludes *.y, and *.l
files.

Get the list of typedef's included in pgindent by running this on the
pgsql/bin and pgsql/lib directories:

	/src/tools/find_typedef

and update the list in pgindent.  This requires the binaries have debug 
symbols.

From the top directory, run:

  find . -name '*.[ch]' -type f -print | egrep -v '\+\+|s_lock.h' | xargs -n100 pgindent

The stock BSD indent has two bugs.  First, a comment after the word 'else'
causes the rest of the file to be ignored.  Second, it silently ignores
typedefs after getting the first 100.

Both problems are worked-around in this script.  We also include a patch
for the second bug in:

	/src/tools/pgindent/indent.bsd.patch

Even with the workaround, installation of the patch produces better
output.  You can get a patched BSD indent from ftp://ftp.postgresql.org/pub/dev.

GNU indent, version 2.2.6, has several problems, and is not recommended.
These bugs become pretty major when you are doing >400k lines of code.
If you don't believe me, take a directory and make a copy.  Run pgindent
on the copy using GNU indent, and do a diff -r. You will see what I
mean. GNU indent does some things better, but mangles too.


---------------------------------------------------------------------------

For java, we use astyle, http://astyle.sourceforge.net/, with the
following options:

	find . \( -name '*.java' -o -name '*.java.in' \) -print |
		xargs -n100 pgjindent

---------------------------------------------------------------------------

For cpp, we use astyle, http://astyle.sourceforge.net/, with the
following options:

	find src/interfaces/libpq++ -name '*.[ch]' -print |
		xargs -n100 pgcppindent

