[Mew-dist 1115] non-analysis patch when too large mail

SAKAI Kiyotaka ksakai at example.com
1997年 6月 24日 (火) 17:34:15 JST


巨大なメールを受け取ったときに、"This mail size is 200000. Truncate
it?" などと聞かれてきますが、これは欝陶しいですし、途中で切られるのも
何か嫌ですよね。

もともと、この機能がインプリメントされたのは、巨大なメールを表示させる
ときに MIME の解析させると時間がかかりすぎるためという理由ですが、巨大
なメールに対しては無条件に analysis を行わないようにすればいいのではな
いでしょうか。("." で表示させたときは解析を行う。)

以下にこれを実現するためのパッチを付けておきます。(mew-1.82 用ですが、
mew-1.70 でも少しの変更で対応できると思います。)

# この truncate の問題が対応できれば、SPACE 連打だけでは y or n を聞か
# れてくることはなくなりますので、s/mew-y-or-n-p/y-or-n-p/ しちゃって
# もいいかと思います。
-- 
酒井 清隆 (E-mail: ksakai at example.com)

-------------- next part --------------
===================================================================
RCS file: RCS/mew-summary.el,v
retrieving revision 1.2
diff -u -r1.2 mew-summary.el
--- mew-summary.el	1997/06/24 06:59:25	1.2
+++ mew-summary.el	1997/06/24 08:21:43
@@ -711,7 +711,7 @@
 	      (if (or (null notforce)
 		      (null ofld-msg)
 		      (null (equal (cons fld msg) ofld-msg)))
-		  (if (or (interactive-p) mew-analysis)
+		  (if (or (interactive-p))
 		      (setq cache
 			    (mew-summary-display-message
 			     fld msg buf 'analysis))
@@ -749,7 +749,8 @@
 
 (defun mew-summary-display-message (fld msg buf &optional analysis)
   ;; message buffer
-  (let ((hit nil) (zmacs-regions nil) (buffer-read-only nil))
+  (let ((hit nil) (zmacs-regions nil) (buffer-read-only nil)
+	(file (mew-expand-folder fld msg)))
     (erase-buffer) ;; for PGP pass phrase input
     (mew-decode-syntax-delete)
     (mew-summary-mode-line buf)
@@ -762,9 +763,12 @@
     (setq mew-decode-syntax nil)
     (cond
      ((equal fld mew-draft-folder)
-      (insert-file-contents (mew-expand-folder fld msg)))
-     ((not (or mew-analysis analysis))
-      (insert-file-contents (mew-expand-folder fld msg))
+      (insert-file-contents file))
+     ((and (not analysis)
+	   (or (not mew-analysis)
+	       (and (> (mew-file-size file) mew-file-max-size)
+		    (message "Analysis skipped because this mail is too large"))))
+      (insert-file-contents file)
       (mew-header-arrange))
      (t
       (setq hit (mew-cache-message (cons fld msg)))
-------------- next part --------------
===================================================================
RCS file: RCS/mew-decode.el,v
retrieving revision 1.1
diff -u -r1.1 mew-decode.el
--- mew-decode.el	1997/06/24 07:18:15	1.1
+++ mew-decode.el	1997/06/24 07:47:50
@@ -287,12 +287,7 @@
   (if (and mew-emacs-p mew-mule-p) (setq mc-flag nil))
   (mew-erase-buffer)  
   (mew-frwlet mew-cs-noconv-eof mew-cs-noconv
-   (let ((size (mew-file-size file)))
-     (if (and (> size mew-file-max-size)
-	      (mew-y-or-n-p "This mail size is %s. Truncate it? " size))
-	 (setq size mew-file-max-size))
-     (insert-file-contents file nil 0 size)
-     ))
+	      (insert-file-contents file nil))
   (goto-char (point-min))
   ;; Illegal messages may not have end-of-header.
   ;; Truncated messages may not have end-of-header.
-------------- next part --------------
===================================================================
RCS file: RCS/mew-ext.el,v
retrieving revision 1.1
diff -u -r1.1 mew-ext.el
--- mew-ext.el	1997/06/24 08:06:12	1.1
+++ mew-ext.el	1997/06/24 08:06:33
@@ -497,11 +497,7 @@
    (let* ((file (mew-syntax-get-member params "name"))
 	  (size (mew-file-size file)))
      (if (file-exists-p file)
-	 (if (> size mew-file-max-size)
-	     (if (mew-y-or-n-p "This mail size is %s. Truncate it? " size)
-		 (insert-file-contents file nil 0 mew-file-max-size)
-	       (insert-file-contents file))
-	   (insert-file-contents file)))
+	 (insert-file-contents file))
      ))
   )
 


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