[Mew-dist 2146] Re: refile
Yoshinari NOMURA
nom at example.com
1997年 9月 19日 (金) 21:19:32 JST
乃村 @mew.org です。
On Thu, 18 Sep 1997 18:42:53 +0900,
Yamashita Yuzo <you at example.com> said:
> To: 誰か
> From: 自分
>
> であるメッセージ(つまりは Bcc や Dcc で控えをとったメッセージ)
> を mew-summary-refile するとき、たとえ、
>
> +from/誰か
>
> というフォルダがあっても、refile の仕様により from は無視され
> るので、
>
> +from/自分
>
> になってしまいますよね。これ、前者に refile して欲しいことがほ
> とんどなのは、私だけでしょうか?
実は、以前もそういう提案をいただいて、昔は実装してました。From:
が自分だったら、To: foo の方を使って +from/foo を guess するとい
う仕様でした。
mew-refile を全面的に書き直したときに、「誰も気付きゃしないか」
と思って止めてしまいました。別関数で復活させましょうか。
mew-refile.el 0.57 -> 0.58 のパッチを以下に付けます。
変更点:
1. 佐藤@東邦大さんの [Mew-dist 2142] パッチの反映。
2. mew-refile-guess-by-from2 (ただし Undocumented) の追
加。From: が自分だったら、To: foo の方を使って
+from/fooを guess するという仕様です。
mew-refile-guess-control に適宜追加して下さい。
ただし、To: Cc: に一杯アドレスがあった場合は、
+from/xxx がマッチするだけ全部 guess します。
(+from/xxx が存在しなければ当然 guess しません)
--
nom
-------------- next part --------------
--- mew-refile.el.orig Thu Sep 18 10:30:23 1997
+++ mew-refile.el Fri Sep 19 21:06:09 1997
@@ -8,10 +8,10 @@
;;; Author: Yoshinari NOMURA <nom at example.com>
;;; Kazu Yamamoto <Kazu at example.com>
;;; Created: Jun 11, 1994
-;;; Revised: Sep 18, 1997
+;;; Revised: Sep 19, 1997
;;;
-(defconst mew-refile-version "mew-refile.el version 0.57")
+(defconst mew-refile-version "mew-refile.el version 0.58")
(require 'mew)
@@ -232,24 +232,48 @@
;
; by from returns: guess1
;
-(defun mew-refile-guess-by-from ()
- (let ((from (or (mew-header-get-address "From:") "")) default)
+(defun mew-refile-guess-by-from (&optional addr)
+ (let ((from (or addr (mew-header-get-address "From:") "")) default)
; load alist if not
(if (not mew-refile-from-alist)
(setq mew-refile-from-alist
(mew-refile-alist-load mew-refile-from-file-name)))
; search from alist
- (setq default (mew-refile-guess-by-default))
+ (setq default (mew-refile-guess-by-default from))
(if (file-exists-p (mew-expand-folder default))
default
(cdr (assoc from mew-refile-from-alist)))
))
;
+; by To: or Cc: when From: is mine. (Undocumented)
+;
+(defun mew-refile-guess-by-from2 ()
+ (let ((to-cc (mew-header-address-collect '("To:" "Cc:" "Apparently-To:")))
+ (from (mew-header-get-address "From:"))
+ ret return)
+ (if (catch 'my-addr
+ (mapcar (lambda (a)
+ (if (string-match a from)
+ (throw 'my-addr t)))
+ (append
+ (list (concat "^" (regexp-quote (user-login-name)) "$")
+ (concat "^" mew-mail-address "$"))
+ mew-mail-address-list))
+ nil)
+ (progn
+ (while to-cc
+ (if (setq ret (mew-refile-guess-by-from (car to-cc)))
+ (setq return (append return (list ret))))
+ (setq to-cc (cdr to-cc)))
+ (mew-refile-list-uniq return))
+ ())))
+
+;
; by default returns: guess1
;
-(defun mew-refile-guess-by-default ()
- (let ((from (or (mew-header-get-address "From:") "")))
+(defun mew-refile-guess-by-default (&optional addr)
+ (let ((from (or addr (mew-header-get-address "From:") "")))
(if (and mew-folders-default-folder
(not (equal "" mew-folders-default-folder)))
(concat (file-name-as-directory mew-folders-default-folder)
@@ -579,7 +603,8 @@
(defun mew-summary-auto-refile ()
(interactive)
- (let ((mew-analysis nil)
+ (if (equal major-mode 'mew-summary-mode)
+ (progn (let ((mew-analysis nil)
(lines (count-lines (point-min) (point-max)))
(line 1))
(message "Auto refiling ...")
@@ -592,6 +617,8 @@
(/ (* 100 line) lines))
(setq line (1+ line)))
(message "Auto refileing ... done"))))
+ (progn (message "only summary buffer can use mew-summary-auto-refile!")
+ )))
;;
;; "mx" extension
Mew-dist メーリングリストの案内