[mew-dist 23951] Re: tuning

橋 宏彰 hasi at example.com
2003年 7月 30日 (水) 17:12:53 JST


橋です。

> > # 実装の都合を考えずにいえば、From:もTo:も必要になった時点で
> > # (mew-summary-form-fromの中とかで)decodeすればもっとも効率的ですが...
> 
> これは実装が難しいので、以下のようにしてみました。
> 
> ・mew-scan-decode-fields に To: を加えた
> ・mew-scan-header は、mew-scan-decode-fields にあるフィールドを 2 行
>   しか decode しない。
> 
> もしかすると、Subject: には 3 行ぐらい必要かもしれませんが、とりあえず
> これで様子を見て下さい。

しばらく暮らしてみましたが、やはりSubject:は3行は欲しいところです。(一
日に数通はSubject:が途中までのメールを見かけます)

こんなかんじではどうでしょうか。実験したかぎりでは、2行決め打ちと比べ
てもスピードはほとんどかわりませんでした。


Index: mew-scan.el
===================================================================
RCS file: /cvsmew/mew/mew-scan.el,v
retrieving revision 1.194
diff -u -r1.194 mew-scan.el
--- mew-scan.el	2003/07/23 08:00:28	1.194
+++ mew-scan.el	2003/07/25 10:18:16
@@ -417,12 +417,15 @@
 	    (forward-line)
 	  (setq key (mew-capitalize (mew-match-string 1)))
 	  (setq med (match-end 0))
-	  ;; two line is enough for Summary mode.
 	  (forward-line)
 	  (if (looking-at mew-lwsp) (forward-line))
 	  (when (and (setq n (mew-member-case-equal key mew-scan-fields))
 		     (string= (aref vec n) "")) ;; avoid multiple times
-	    (when (member key mew-scan-decode-fields)
+	    (when (setq lines (cdr (assoc key mew-scan-decode-fields)))
+	      (setq lines (- lines 2))
+	      (while (and (looking-at mew-lwsp) (> lines 0))
+		(forward-line)
+		(setq lines (- lines 1)))
 	      (mew-header-decode-region key med (point) draftp))
 	    ;; We need to keep composite properties of charset.
 	    ;; This must be "buffer-substring".
Index: mew-vars.el
===================================================================
RCS file: /cvsmew/mew/mew-vars.el,v
retrieving revision 1.196
diff -u -r1.196 mew-vars.el
--- mew-vars.el	2003/07/22 23:57:01	1.196
+++ mew-vars.el	2003/07/25 10:18:17
@@ -1136,7 +1136,7 @@
 (defvar mew-summary-form-func-prefix "mew-summary-form-"
   "The prefix for symbol used in 'mew-summary-form'.")
 
-(defvar mew-scan-decode-fields `(,mew-subj: ,mew-from: ,mew-to:))
+(defvar mew-scan-decode-fields `((,mew-subj: . 3) (,mew-from: . 2) (,mew-to: . 2)))
 
 (defcustom mew-thread-column 28
   "A position where thread indentation is inserted



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