[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))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.