[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:6754] grep-mode and fakecygpty
- X-ml-count: 6759
- Subject: Re: [MD:6754] grep-mode and fakecygpty
- From: Kyotaro HORIGUCHI <horiguti@xxxxxxxxxxx>
- Date: Fri, 02 Sep 2005 23:34:30 +0900 (JST)
- User-agent: Mew version 4.2.53 on Emacs 22.0 / Mule 5.0 (榊) / Meadow-3.00-dev (菊)
ほりぐちです. 解決方法のメモ. あとで commit します.
> trunk/3828 で M-x grep が動かなくなりました. fakecygpty 上の
> bash が速攻で終了してしまいます.
grep.el には問題はなく, linux 上ではちゃんと動きます. 問題は
NTEmacs では process-send-eof で パイプをクローズしてしまうことで
した. pty のつもりで動いているときにこれはいやです.
process->pty_flag をプロセスの初期化処理のあとで TRUE にしてやる
ことで問題は(見た限りでは^^;)副作用なく解決するので, これを実現す
る枠を拡張します.
・mw32-process-wrapper-alist で従来 VAL となっているところを拡張し
て (cons PROG LISPFUN) とも設定できるようにして, LISPFUN を
general-argument-editing-function から呼び出すようにする.
・LISPFUN の中で, 現在初期化中の lisp-process を取得するための変数
(mw32-process-under-setup)と process->pty_flag をセットする関数
(mw32-set-pty-flag), そしてmw32-set-pty-flagを使って pty_flag を
TRUE にする関数(set-process-connection-type-pty) を追加.
これで, .emacs などで以下のように書くことで正しい動作を行うように
なります.
| (setq mw32-process-wrapper-alist
| '(("/\\(svn\\|ssh\\|bash\\|tcsh\\|gpg[esvk]?\\)\\.exe" .
| (nil . ("fakecygpty.exe" . set-process-connection-type-pty)))))
--
ほりぐちきょうたろう