ソースコード整形

Java 用のはたくさんあり。

GNU indent

C言語用。
引数で指定したファイルを書き換え、元のファイルを .BAK という拡張子でバックアップをとる。
FreeBSD の indent は indent *.c とすると最後のファイルに上書き出力してしまうとんでもない代物。
GNU indent にはいろいろ追加のオプションがあるようだ。
現在の .indent.pro

-bad	宣言ブロックの後に空行を入れる
-bap	関数本体の後に空行を入れる
-nut	タブをスペースに展開
-i4		4タブ
-c40	1行コメントは40桁目から
-nce	} else のとき else の前に改行を入れる
-di8	構造体のメンバ名を型名からどれだけインデントするか
-nfcb	ブロックコメントを整形しない
-l120	1行の最大幅

astyle

マニュアル
http://homepage2.nifty.com/tenk/lib/doc/astyle_j.htm
~/.astylerc にオプションを書いておく。

オプション
--style=ansi
--style=kr
--indent-preprocessor
好みのオプション
--pad=all カッコと演算子の周りにスペースを入れる(会社でやってる人多し)
--indent-labels     goto のラベルの行のインデントを1つさげる。
--brackets=break-closing-headers   else の前で改行する
好みでないオプション
--break-elseifs        else if の else と if の間で改行する(好みでない)

bcpp

beautify C++ programs
http://invisible-island.net/
使ったことない。

GreatCode

おそらくこれが最強。ただしバギー。
今後の開発に期待。