[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:6582] Make friends with cygwin pty by fakecygpty.
- X-ml-count: 6586
- Subject: Re: [MD:6582] Make friends with cygwin pty by fakecygpty.
- From: Kyotaro HORIGUCHI <horiguti@xxxxxxxxxxx>
- Date: Mon, 13 Jun 2005 23:04:11 +0900 (JST)
- User-agent: Mew version 4.2.50 on Emacs 21.4 / Mule 5.0 (榊) / Meadow-2.10 (朝顔)
ほりぐちです. 2.10 はまだ変更を加えていいのでしょうか.
callproc.c, process.c, mw32misc.el です.
OKなら, あとで commit しちゃいます.
> 小関さんと日記でやりとりしていた
> http://www.mew.org/~kazu/proj/prog/gpg.el ですが、こいつも gpg
> の passphase でうまくいかないので fakecygpty を試してみました。
>
> d) gpg.el が動いた :-)
とりあえず使うアテはあるという感じですかね.
> ただし、調子にのって Mew から使う gpg も f_gpg.exe にしたところ、
> まったくもって Mew が動かなくなってしまったので、
まぁそうですね. Meadow は pipe でつないでいるつもりでもプロセス
には pty がつながっているので固まってしまうようです.
まぁ使えそうな雰囲気ということで Meadow に入れてみました.
一応 fakecygpty がなければ何事もなかったかのように動きます.
mw32-process-wrapper-alist という変数で制御します.
(setq mw32-process-wrapper-alist
'(("/\\(ssh\\|bash\\|tcsh\\|gpg[esvk]?\\)\\.exe" .
(nil . "fakecygpty.exe"))))
とやると call-process の時は直接起動. start-process の時は
fakecygpty(新) を介してプログラムを起動します.
Windows ではプロセス起動の際に call-process なのか start-process
なのかの情報が落ちてしまうので, mw32-process-expects-pty という変
数を使って general-process-argument-editing-function に引き渡すこ
とで pty/pipe の切り替えを行っています.
これで, 各々の設定は以下のように変わります.
・f_xxx.exe は不必要. たとえば c:/meadow2/bin/fakecgypty.exe があ
ればOK.
・explicit-shell-file-name は普通のコマンド名を指定(元に戻す)
・tramp の設定はさらに簡単に (setq tramp-encoding-shell "bash") でOK
・gpg についても問題なし.
--
ほりぐちきょうたろう