[mew-dist 20690] Re: refile by character code
Tatsuya Kinoshita
tats at example.com
2002年 3月 30日 (土) 00:45:06 JST
In message [mew-dist 20686], on Thu, 28 Mar 2002,
Tak Ota <Takaaki.Ota at example.com> wrote:
> mew-refile-guss-alist を初めて知りました。これは便利ですね。
refile-guessで使われる関数は、変数mew-refile-guess-controlに登録
されています。さらに凝った判定が必要なら、この変数に自前の関数を
登録することで対応できます。
*
mew-refile-guess-alistで指定した日本語(non-ASCII)の判定で、うまく
マッチしてくれない、`o', `M-o', `C-u o'で結果が異なる、という場合
があることに気づいたので、修正してパッチを作りました。
mew-refile-guess-fastがtだと、高速化のため`Subject:'以外のフィー
ルドについてはデコードを省略する場合があります。
`Subject:'以外のフィールドについてnon-ASCIIで判定したい場合には、
mew-refile-guess-fastをnilにする必要があります。(手元では2〜3倍
程度時間がかかり、数百通を`M-o'で処理する際には気になりました)
--
木下達也
-------------- next part --------------
This patch is written by Tatsuya Kinoshita. Copyright is disclaimed.
diff -ur mew.orig/mew-refile.el mew/mew-refile.el
--- mew.orig/mew-refile.el Sat Mar 30 00:11:13 2002
+++ mew/mew-refile.el Sat Mar 30 00:12:26 2002
@@ -506,15 +506,18 @@
(setq delbuf t)
(set-buffer buf)
(mew-erase-buffer)
- (mew-insert-message fld msg mew-cs-autoconv
+ (mew-insert-message fld msg mew-cs-text-for-read
mew-header-reasonable-size)
- (goto-char (point-min))
- (if (and (re-search-forward (concat "^$\\|^" mew-subj:) nil t)
- (not (looking-at "^$")))
- (let ((med (point)))
- (forward-line)
- (mew-header-goto-next)
- (mew-header-decode-region mew-subj: med (point)))))
+ (if (not mew-refile-guess-fast)
+ (let ((mew-use-highlight-header nil))
+ (mew-decode-rfc822-header))
+ (goto-char (point-min))
+ (if (and (re-search-forward (concat "^$\\|^" mew-subj:) nil t)
+ (not (looking-at "^$")))
+ (let ((med (point)))
+ (forward-line)
+ (mew-header-goto-next)
+ (mew-header-decode-region mew-subj: med (point))))))
;; need to make a cache or a message buffer.
(mew-summary-display nil)
;; mew-cache-hit should be first since we want to get
@@ -568,8 +571,10 @@
(save-excursion
(set-buffer tmpbuf)
(mew-erase-buffer)
- (mew-insert-message fld msg mew-cs-autoconv
+ (mew-insert-message fld msg mew-cs-text-for-read
mew-header-reasonable-size)
+ (let ((mew-use-highlight-header nil))
+ (mew-decode-rfc822-header))
(setq guess (mew-refile-guess nil t)))
(mew-remove-buffer tmpbuf)
(mew-window-configure 'message)
diff -ur mew.orig/mew-vars.el mew/mew-vars.el
--- mew.orig/mew-vars.el Sat Mar 30 00:11:13 2002
+++ mew/mew-vars.el Sat Mar 30 00:12:26 2002
@@ -1818,6 +1818,13 @@
:group 'mew-refile
:type 'boolean)
+(defcustom mew-refile-guess-fast t
+ "*If *non-nil*, 'mew-summary-refile-body' omits MIME decoding
+except Subject:. If you want to handle non-ASCII on any fields,
+set this variable to nil."
+ :group 'mew-refile
+ :type 'boolean)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Case guess
Mew-dist メーリングリストの案内