[Mew-dist 15731] Re: Isn't HUGE useless?

Tatsuya Kinoshita tatsuyak at example.com
2001年 1月 5日 (金) 20:30:55 JST


In message "[Mew-dist 15727] Re: Isn't HUGE useless?"
Tak Ota <Takaaki.Ota at example.com> wrote:

> 御送りしたパッチは「オプションにして選択できるように」したつもりだった
> んですけど…逆に現在の方が HUGE を強制しているように思えます。

現在の方は、scan-formの桁がずれないように、size欄の数値を3桁以内に
収める、という方針があるように見えます。

しかし、ごくまれではありますが、メールのサイズが大きい場合に、浮動
小数点として計算され、size欄の数値が3桁を超えてしまう場合があるよう
です。

その対策用パッチを作りました。また、HUGEの表示を変数で切り替えでき
るようにもしてみました。

-- 
木下達也 (Tatsuya Kinoshita)
-------------- next part --------------

 This patch is written by Tatsuya Kinoshita.

 Permission is granted to use, copy, distribute, and/or modify it 
 without restriction.  There is NO WARRANTY.

diff -ur mew-1.95b94/mew-scan.el mew-1.95b94-tats20010105b/mew-scan.el
--- mew-1.95b94/mew-scan.el	Thu Dec 28 16:54:12 2000
+++ mew-1.95b94-tats20010105b/mew-scan.el	Fri Jan  5 19:59:17 2001
@@ -101,22 +101,26 @@
 
 (defun mew-scan-form-size ()
   "A function to return the size of the message. Should be used
-with -4. See also 'mew-scan-form-size-0k'."
-  (let ((len (length mew-scan-form-size-unit))
+with -4. See also 'mew-scan-form-size-0k' and 'mew-scan-form-size-huge'."
+  (let ((len-1 (1- (length mew-scan-form-size-unit)))
 	(SIZE (mew-scan-usc-size (mew-scan-split-usc (MEW-UIDL))))
 	(i 0) size unit)
     (if (string= SIZE "")
 	(setq size (mew-file-get-size (mew-expand-folder (MEW-FLD) (MEW-NUM))))
       (setq size (string-to-int SIZE)))
-    (while (and (< i len) (>= size 1000))
+    (while (and (< i len-1) (>= size 1000))
       (setq size (/ size 1000))
       (setq i (1+ i)))
-    (if (= i len)
+    (if (and mew-scan-form-size-huge (>= size 1000))
 	"HUGE"
       (setq unit (nth i mew-scan-form-size-unit))
       (if (and mew-scan-form-size-0k (string= unit ""))
 	  "0k"
-	(concat (int-to-string size) unit)))))
+	(concat
+	 (if (integerp size)
+	     (int-to-string size)
+	   (format "%.0f" size))
+	 unit)))))
 
 (defun mew-scan-form-extract-addr (addr)
   "Extract addr according to 'mew-scan-form-extract-rule'."
diff -ur mew-1.95b94/mew-vars.el mew-1.95b94-tats20010105b/mew-vars.el
--- mew-1.95b94/mew-vars.el	Thu Dec 28 16:52:43 2000
+++ mew-1.95b94-tats20010105b/mew-vars.el	Fri Jan  5 19:05:58 2001
@@ -554,6 +554,10 @@
   "*If non-nil, the size of message is displayed as '0k'
 if the size is less than 1k byte.")
 
+(defvar mew-scan-form-size-huge t
+  "*If non-nil, the size of message is displayed as 'HUGE'
+if the size is greater than or equal to 1000.")
+
 (defvar mew-scan-fields
   '("Folder:" "Filename:" "Subject:" "Date:" "From:" "To:"
     "Content-Type:" "Message-Id:" "X-Mew-UIDL:"


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