[mew-win32 4465] Re: MasterPW に C-g 連打で固まる
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2008年 1月 15日 (火) 12:00:22 JST
山本です。
> (1) mew-rendezvous() で待っているとき C-g で抜けた場合の対処
このマクロなんですが、
+(defmacro mew-rendezvous (who &optional iquit)
;; Wait for the termination of WHO.
;; Emacs does not provide synchronize mechanism with
;; an asynchronous process. So, take this way.
- `(while ,who
- (sit-for 0.1)
- ;; accept-process-output or sleep-for is not enough
- (discard-input)))
+ `(let ((inhibit-quit ,iquit))
+ (while ,who
+ (sit-for 0.1)
+ ;; accept-process-output or sleep-for is not enough
+ (discard-input)
+ (when (and inhibit-quit quit-flag)
+ (setq ,who nil)))))
mew-ssh/ssl で
(mew-rendezvous (null (mew-ssl-get-status pnm)))
としているために、setq できません。
やるとしたら、
(condition-case nil
(mew-rendezvous mew-passwd-rendezvous)
(quit (setq mew-passwd-rendezvous nil)))
ぐらいではないでしょうか?
そもそも、C-g したときに sentinel は呼ばれませんか?
呼ばれるなら、この処理は不要ですね?
sentinel で set-buffer しないだけで十分ですね?
試す環境がないので、試して頂けると嬉しいです。
--かず
Mew-win32 メーリングリストの案内