なんか今更といわれそうですが(^_^;、最近、
C-x C-m c utf-8 [CR] M-x shell [CR]
が効かないことに気づいたことから start-process で
coding-system-for-{read|write} が効いてないことを知りました。
start-process-internal の DOC-string には
INCODE and OUTCODE specify the coding-system objects used in input/output
from/to the process.
という記述があり write-region-internal などと同様に coding-system を
指定するための引数を暗示していますが、実際には
Args are NAME BUFFER PROGRAM &rest PROGRAM-ARGS
にあるようにそういう引数はありません。GNU Emacs 20.[45] の
start-process の対応箇所に存在する coding-system-for-{read|write} 用の
code がないのです。
call-process や call-process-region には
coding-system-for-{read|write} が効くのになぜか start-process にだけは
効かない(同様の理由で modify-coding-system-alist も効かない)のは明ら
かに変ですからこれはbug だと思います。
個人的には start-process を再定義して elisp の世界で対処しましたが、他
の入出力関数との対称性を考えれば start-process-internal に
coding-system を指定するための引数をつける方が良いかも知れません。
;; でも後に付けれないので問題かも。
識者の御意見が伺えれば幸いです。
;; ついでに恰好良く修正して patch を送って頂けるととても happy
;;; 国際競争人間力がなくてすみません(^_^;;;
--
感じてたことさ ; 守岡 知彦 (MORIOKA Tomohiko)
ずっとずっと前から ; Email: <tomo(a)m17n.org>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;