勝手に default-process-coding-system 変えるなよ。
diff -u ess-20171022.322/lisp/ess-r-mode.el.old ess-20171022.322/lisp/ess-r-mode.el
--- ess-20171022.322/lisp/ess-r-mode.el.old 2017-10-29 01:06:34.182359100 +0900
+++ ess-20171022.322/lisp/ess-r-mode.el 2017-10-29 00:53:10.316792600 +0900
@@ -556,7 +556,8 @@
(eq system-type 'cygwin))
(setq use-dialog-box nil)
(when ess-microsoft-p ;; default-process-coding-system would break UTF locales on Unix
- (setq default-process-coding-system '(undecided-dos . undecided-dos))))
+ ;;(setq default-process-coding-system '(undecided-dos . undecided-dos))
+ ))
(inferior-ess r-start-args cust-alist gdbp)
read.csvで入力した文字とバッファから入力した文字がどうしてもどちらか一方が化けてしまうので調べた。
Rがutf-8で入出力しているのかなと思って調べたら、Windows版はちゃんと現在のコードページで入出力してくれていた。 調べてみると process-coding-system のENCODING側がundecided-dosだから何事かと思ったら default-process-coding-system がRを起動した後だと書き換わっていた。 何でグローバルな設定である default-process-coding-system を勝手に書き換えちゃうかなー。
他にもWindows対応のコード(ess-microsoft-pで処理を分けているところ)は色々と変なところが多いね。