[mew-win32 4466] Re: MasterPW に C-g 連打 で固まる
Hideyuki SHIRAI (白井秀行) <[email protected]>
| Newsgroups | gmane.mail.mew.windows |
|---|---|
| Organization | Resident at Meadowy farm. |
| Message-ID | <[email protected]> |
From: Kazu Yamamoto () <[email protected]> Subject: [mew-win32 4465] Re: MasterPW C-g Message-ID: <[email protected]> Date: Tue, 15 Jan 2008 12:00:22 +0900 (JST) > > (1) mew-rendezvous() C-g > > > > 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 OK (defun mew-passwd-load () .... (condition-case nil (mew-rendezvous mew-passwd-rendezvous) (quit (setq mew-passwd-rendezvous nil) (if (and (processp pro) (memq pro '(run stop))) (kill-process pro)))) (defun mew-passwd-sentinel (process event) (setq mew-passwd-rendezvous nil)) gpg Meadow 100% NG (condition-case nil (mew-rendezvous mew-passwd-rendezvous) (quit (setq mew-passwd-rendezvous nil))) (if (and (processp pro) (memq pro '(run stop))) (kill-process pro)) gpg Meadow 100% NG C-g NG > Meadow inhibit-quit & quit-flag UNIX quit-flag => t sentinel -- (mailto:[email protected]) Index: mew-passwd.el =================================================================== RCS file: /cvsmew/mew/mew-passwd.el,v retrieving revision 1.12 diff -u -r1.12 mew-passwd.el --- mew-passwd.el 25 Jul 2007 06:06:59 -0000 1.12 +++ mew-passwd.el 15 Jan 2008 09:31:51 -0000 @@ -154,6 +154,15 @@ ;;; Load and save ;;; +(defmacro mew-passwd-rendezvous () + `(let ((inhibit-quit t)) + (setq mew-passwd-rendezvous t) + (while mew-passwd-rendezvous + (sit-for 0.1) + ;; accept-process-output or sleep-for is not enough + (discard-input) + (if quit-flag (setq mew-passwd-rendezvous nil))))) + (defun mew-passwd-load () (let ((process-connection-type mew-connection-type2) (file (expand-file-name mew-passwd-file mew-conf-path)) @@ -169,8 +178,7 @@ "-d" "--yes" "--output" tfile file)) (set-process-filter pro 'mew-passwd-filter) (set-process-sentinel pro 'mew-passwd-sentinel) - (setq mew-passwd-rendezvous t) - (mew-rendezvous mew-passwd-rendezvous) + (mew-passwd-rendezvous) (when mew-passwd-master (let ((coding-system-for-read 'undecided)) (insert-file-contents tfile)) @@ -204,8 +212,7 @@ "--yes" "--output" file tfile)) (set-process-filter pro 'mew-passwd-filter) (set-process-sentinel pro 'mew-passwd-sentinel) - (setq mew-passwd-rendezvous t) - (mew-rendezvous mew-passwd-rendezvous) + (mew-passwd-rendezvous) (if (file-exists-p file) (throw 'loop nil)) (setq i (1+ i))) (message "Master password is wrong! Passwords not saved") @@ -242,9 +249,7 @@ (setq mew-passwd-rendezvous nil)))))) (defun mew-passwd-sentinel (process event) - (save-excursion - (set-buffer (process-buffer process)) - (setq mew-passwd-rendezvous nil))) + (setq mew-passwd-rendezvous nil)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;