バッファの内容を外部プログラムで変換する

ええと、折角作ったところに水差すのもアレだけど、それ普通に shell-command-on-region で出来るよ!一番簡単なのは Ctrl-1 Meta-| (最後の文字はパイプ記号ね)。
バッファ全体を対象にしたいならこんな感じ。

(defun shell-command-on-buffer (command)
  (interactive "sShell command on buffer: ")
  (shell-command-on-region 1 (1+ (buffer-size)) command))

ていうか、ちゃんと interactive を使おう。関数に与えるパラメータは関数本体で取得するんじゃなくて、interactive 使うのが基本。再利用性も高くなるし。複雑な場合は文字列じゃなくて評価式を置いて list を返すようにしておけばいい。