[mew-dist 26415] C-g when "utf-8 is used. OK? (y-or-n)"

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2005年 6月 15日 (水) 18:54:56 JST


mew-ask-charset でないメールを C-cC-m すると

"utf-8 is used. OK? (y-or-n)"

などと聞かれますが、そのときに C-g すると、+draft/n にあるメッセー
ジはすでに Base64 されているので救えません。(という話を聞きました)

すぐそのバッファに移って undo すればいいのですが、自動で undo す
るのが良いと思います。

○案一
--- mew-encode.el	26 May 2005 15:34:56 +0900	1.82
+++ mew-encode.el	15 Jun 2005 18:28:50 +0900	
@@ -716,7 +716,8 @@
 	(unless (mew-member-case-equal cst mew-ask-charset)
 	  (setq ask-cst t))))
       (if (and ask-cst
-	       (not (y-or-n-p (format "%s is used. OK? " cst))))
+	       (let ((inhibit-quit t)) 
+		 (not (y-or-n-p (format "%s is used. OK? " cst)))))
 	  (mew-encode-error "Modify body")))
     (mew-case-equal cte mew-8bit)))

○案二
--- mew-encode.el	26 May 2005 15:34:56 +0900	1.82
+++ mew-encode.el	15 Jun 2005 18:42:41 +0900	
@@ -716,7 +716,9 @@
 	(unless (mew-member-case-equal cst mew-ask-charset)
 	  (setq ask-cst t))))
       (if (and ask-cst
-	       (not (y-or-n-p (format "%s is used. OK? " cst))))
+	       (condition-case nil
+		   (not (y-or-n-p (format "%s is used. OK? " cst)))
+		 (quit t)))
 	  (mew-encode-error "Modify body")))
     (mew-case-equal cte mew-8bit)))

○案三
--- mew-encode.el	26 May 2005 15:34:56 +0900	1.82
+++ mew-encode.el	15 Jun 2005 18:45:05 +0900	
@@ -371,6 +371,10 @@
 	(error
 	 (mew-encode-undo)
 	 (message "%s" (mew-tinfo-get-encode-err))
+	 (setq ret nil))
+	(quit
+	 (mew-encode-undo)
+	 (message "quit")
 	 (setq ret nil))))
     ret))
 
@@ -447,6 +451,10 @@
 	(error
 	 (mew-encode-undo)
 	 (message "%s" (mew-tinfo-get-encode-err))
+	 (setq ret nil))
+	(quit
+	 (mew-encode-undo)
+	 (message "quit")
 	 (setq ret nil))))
     ret))
 

## C-g に対する耐性は (案三) が一番高いかな?
 
-- 
白井秀行 (mailto:shirai at example.com)



Mew-dist メーリングリストの案内