[Mew-dist 03645] region pick
Akihiro Motoki
motoki at example.com
1998年 2月 4日 (水) 09:02:23 JST
元木です。
'?'(mew-summary-search-mark) を実行すると、条件にあったメールに '*'マーク
をつけることができますが、それを「指定した region 内のメール」に対して
できるようにしてみました。C-u ? とすると、region に対して検索します。
( ? としたときは今までと同じです)
# メールがたまってくると、全体に対してサーチをかけると遅くなりますよね。
region の指定についてですが、マークをつけた行から現在カーソルのある行まで
が範囲です。region でのソートと同じです。
--
━━━━━━━…………‥‥・・・ ・ ・・ .
元木 顕弘 / Akihiro Motoki ・
E-mail: motoki at example.com ・
URL: http://www.hal.t.u-tokyo.ac.jp/~motoki/ ‘ ・・ ‥…━━☆
-------------- next part --------------
--- ../mew-1.93b12.orig/mew-pick.el Sun Jan 25 21:05:29 1998
+++ mew-pick.el Wed Feb 4 05:56:05 1998
@@ -34,10 +34,16 @@
)
))
-(defun mew-summary-search-mark ()
+(defun mew-summary-search-mark (&optional arg)
"Pick messages according to a pick pattern which you input,
then put the '*' mark onto them."
- (interactive)
+ (interactive "P")
+ (if arg
+ (mew-summary-search-mark-region (region-beginning) (region-end))
+ (mew-summary-search-mark-region (point-min) (point-max))))
+
+(defun mew-summary-search-mark-region (r1 r2)
+ (interactive "r")
(if (equal (point-min) (point-max))
(message "No messages in this buffer.")
(let ((folder (buffer-name))
@@ -47,18 +53,23 @@
(range nil))
(setq pattern (mew-read-pick-pattern))
(message "Picking messages in %s ..." folder)
- (goto-char (point-min))
- (setq first (mew-summary-message-number))
- (goto-char (point-max))
- (forward-line -1)
- (setq last (mew-summary-message-number))
- (setq range (mew-summary-pick folder pattern (concat first "-" last)))
+ (goto-char r1)
+ (if (eobp)
+ () ;; r1 <= r2, so if r1 = (point-max) then no messages.
+ (setq first (mew-summary-message-number))
+ (goto-char r2)
+ (if (eobp)
+ (progn
+ (forward-line -1)
+ (setq r2 (point))))
+ (setq last (mew-summary-message-number))
+ (setq range (mew-summary-pick folder pattern (concat first "-" last))))
(message "Picking messages in %s ... done" folder)
(if (null range)
- ()
+ (message "No marked message.")
(message "Marking messages ... ")
- (goto-char (point-min))
- (while (not (eobp))
+ (goto-char r1)
+ (while (<= (point) r2)
(if (and (null (mew-summary-marked-p))
(mew-member-del (mew-summary-message-number) range))
(mew-summary-mark-as mew-mark-review))
Mew-dist メーリングリストの案内