[Mew-dist 990] Re: How do you refile?
尾澤稔
ozawa at example.com
1997年 6月 3日 (火) 09:34:25 JST
尾澤@沖電気です。
knishida> 見たところ、設定に従って自動的に分類する機能ではなく、ユーザの意
knishida> 図をサポートする方針であるようですが、いまひとつスマートに使いこ
knishida> なせません。ML のように、明らかに格納場所が決まっているようなメー
knishida> ルでも、いちいち `o'(mew-summary-refile)を押すたびにリターンしな
knishida> いといけないのも面倒ですし、マークを付けて一括移動もできるようで
knishida> すが、やはりわかりきったものはわかりきったところに納めてほしいで
knishida> す。過去のメールを取り寄せてみると、Auto refile のためのコードも
knishida> 流れていたようですが、これはマージされないのでしょうか?
これは私が流したものです。
メールに添付しておきますので、参考にして下さい。
最初(mew-auto-refile.el)のが、すべてのメールに対してリファイルを行なうも
のです。
mew-auto-refile-effective-folder-guess で t に設定した推測が有効になりま
す。
mew-auto-refile-exec を t にしておくと、mew-summary-exec まで自動で行な
います。
二つめ(mew-mark-refile-by-guess.el)のが、マーク(*)のついているメールだけ
を対象にリファイルを行なうものです。
mew-mark-refile-effective-folder-guess で t に設定した推測が有効になりま
す。
mew-summary-mark-all を行なってから
mew-summary-mark-refile-by-guess
とすれば最初のと同じ動作をします。
尾澤 稔
ozawa at example.com
-------------- next part --------------
;;; mew-auto-refile.el
;;;
;;; Copyright (C) 1997 Minoru Ozawa
;;;
;;; This emacs lisp library conforms
;;; GNU GENERAL PUBLIC LICENSE Version 2.
;;;
;;; Author: Minoru Ozawa <ozawa at example.com>
;;; Created: April 4, 1997
;;; Revised:
;;;
(defvar mew-auto-refile-effective-folder-guess
'(
(mew-guess-by-alist . t)
(mew-guess-by-folder . nil)
(mew-guess-by-message-id . nil)
(mew-guess-by-from . nil)
(mew-guess-by-default . nil)
)
"When folder is fixed, the establishment or they make which associative list effective."
)
(defvar mew-auto-refile-exec nil
"The establishment it is filed reason perfectly by automatism.
This value appends only a mark at the time of nil.")
(defun mew-auto-refile-get-folder ()
(interactive)
(let ((mew-summary-buffer-disp-msg nil)
(mew-summary-refile-last-destination nil)
;;(mew-analysis nil)
msg-buffer learn-info)
(setq msg-buffer (or (mew-summary-display t)
(mew-buffer-message)))
(save-excursion
(set-buffer msg-buffer)
(setq learn-info (mew-refile-folder-guess))
)
(if (mew-auto-refile-effective-folder-guess learn-info)
(nth 0 learn-info)
nil)
)
)
(defun mew-auto-refile-effective-folder-guess (learn-info)
(let ()
(cdr (assoc (nth 1 learn-info) mew-auto-refile-effective-folder-guess))
))
(defun mew-auto-refile ()
(interactive)
(let (folder mark msg)
(message "Auto refiling ...")
(save-excursion
(goto-char (point-min))
(while (not (eobp))
(setq folder (mew-auto-refile-get-folder))
(setq mark (mew-summary-get-mark))
(setq msg (mew-summary-message-number))
(if (or (not folder) (eq mark mew-mark-refile) (eq mark mew-mark-rmm))
nil
(mew-summary-refile-mark folder)
)
(forward-line 1)
(while (mew-summary-part-number)
(forward-line 1))
))
(if mew-auto-refile-exec
(mew-summary-exec))
(message "Auto refileing ... done")
))
(provide 'mew-auto-refile)
-------------- next part --------------
;;; mew-mark-refile-by-guess.el
;;;
;;; Copyright (C) 1997 Minoru Ozawa
;;;
;;; This emacs lisp library conforms
;;; GNU GENERAL PUBLIC LICENSE Version 2.
;;;
;;; Author: Minoru Ozawa <ozawa at example.com>
;;; Created: April 4, 1997
;;; Revised:
;;;
(defvar mew-mark-refile-effective-folder-guess
'(
(mew-guess-by-alist . t)
(mew-guess-by-message-id . t)
(mew-guess-by-from . t)
(mew-guess-by-folder . nil)
(mew-guess-by-default . nil)
)
"When folder is fixed, the establishment or they make which associative list effective."
)
(defun mew-summary-mark-refile-by-guess ()
(interactive)
(let ((regex (concat mew-summary-message-regex
(regexp-quote (char-to-string mew-mark-hop))))
(mew-summary-buffer-disp-msg nil)
folder)
(save-excursion
(goto-char (point-min))
(if (not (re-search-forward regex nil t))
(message "No marked messages")
(message "Marked message refiling ...")
(beginning-of-line)
(while (re-search-forward regex nil t)
(let ((mew-summary-buffer-disp-msg nil)
(mew-summary-refile-last-destination nil)
;;(mew-analysis nil)
(mew-analysis-now mew-analysis)
msg-buffer learn-info)
(setq msg-buffer (or (mew-summary-display t)
(mew-buffer-message)))
(save-excursion
(set-buffer msg-buffer)
(setq learn-info (mew-refile-folder-guess))
)
(if (not
(cdr
(assoc
(nth 1 learn-info) mew-mark-refile-effective-folder-guess))
)
nil
(setq mew-analysis nil)
(setq folder (nth 0 learn-info))
(let ((buffer-read-only nil));; mew-summary-unmark
(delete-backward-char 1)
(insert " "))
(mew-summary-refile-mark folder)
(forward-line 1)
(setq mew-analysis mew-analysis-now)
)
))
(message "Marked message refiling ... Done")
)
))
)
(defun mew-summary-refile-check-guess ()
(interactive)
(let* ((begin (save-excursion (beginning-of-line) (point)))
(end (save-excursion (end-of-line) (point)))
(msg (mew-summary-mark-collect mew-mark-refile begin end))
folder)
(if (not msg)
(message "No refile mark")
(setq folder (car (cdr (assoc (car msg) mew-summary-buffer-refile))))
(message (format "Refiling folder is \"%s\"" (car folder)))
)
))
(provide 'mew-mark-refile-by-guess)
Mew-dist メーリングリストの案内