Is there a better/more comprehensive program for formatting C code than
the 1994 version of indent available on ftp.gnu.org? Are the versions of
indent on various Unixes (eg Solaris) better than the gnu version?

I would like a program that could be run over several C files as opposed
to an interactive editor. Another of the things that I am looking for
is a program that will allow me to say where spaces on a line should be.
E.g., I would like function calls to look like:

foo( p1, p2);

I seem to recall reading about a program that took a prototype sample of
code and inferred the formatting from it and then fomatted other code
with what it learned.