gnuserv/gnuclientとemacsserver/emacsclientの違い

俺は昔からgnuserv/gnuclientを使ってきたが、Emacs23になったら、multi-ttyもあることだし乗り換えようと思っていた。しかし…カレントバッファが常にサーバのバッファで実行されるため、「現在の」カレントバッファを取得してくれない。
Emacs23だとmulti-ttyがあるから仕方ないのかな。

$ emacsclient -e '(current-buffer)' -n 
#<buffer  *server*>
$ gnudoit '(current-buffer)'
2009-09-29.txt

さらに、出力の表記も微妙に異なる。

$ emacsclient -e '"a"' -n         
"a"
$ gnudoit '"a"'                   
a

なお、gnudoitは「gnuclient -batch -eval」の略だと考えてよい。実際はシェルスクリプトである。