>>131の話を踏まえると以下の方法でgrep問題なども回避できるんだけど、
>>133の方法とどちらがいいんだろう。

(defadvice start-process (around ad-start-process-to-fake last activate)
(when (and (ad-get-arg 2)
(or process-connection-type
(member (replace-regexp-in-string "\\.exe$" "" (file-name-nondirectory (ad-get-arg 2)))
fakecygpty-program-list)))
(ad-set-args 3 (cons (ad-get-arg 2) (ad-get-args 3)))
(ad-set-arg 2 "fakecygpty"))
ad-do-it)

(defadvice process-send-eof (around ad-process-send-eof activate)
(if (and (ad-get-arg 0)
(string= (car (process-command (ad-get-arg 0))) "fakecygpty"))
(process-send-string (ad-get-arg 0) (kbd "C-d"))
ad-do-it))