[Mew-dist 530] Re: new mew-sort.el
Takashi P.KATOH
p-katoh at example.com
1997年 2月 27日 (木) 15:43:50 JST
かとぺ@東北大です。
From: SAKAI Kiyotaka <ksakai at example.com>
Subject: [Mew-dist 527] Re: new mew-sort.el
>> - "S" とすると sort する field を聞いてくる。
>> - C-u で region に対して sort を行なう。
^^^
C-u S です (_o_)
> 使ってみましたが、なかなかいいですね。ただ、region に対する sort がう
> まく動いていないように思えます。
すみません。bug です (_o_)
>> (それ以前に mew-summary-sort-fields の形式が格好悪い...)
> それならば、変数を 2つに分けてしまうのはどうでしょうか?
> もっとも、今のままでも問題ないという気もしますが。
そうですね。
mew-summary-sort-datefields と mew-summary-sort-textfields
ってとこでしょうか。
う〜ん、今のままとどっちがいいのかな...
あと、field の補完のときの default ですが、
- (あれば) 前回使ったもの (<- 現状)
- 固定 (pick のように)
のどっちが便利でしょう?
そうそう、最大の問題点なんですが、どなたか英語を直してくださ
いませんか? f(^^;
# あまりにダサすぎるので...
ということで version 0.03 (主に bug fix) を付けます。
ついでに http://www.shiratori.riec.tohoku.ac.jp/~p-katoh/Mew/
ってのも作ってみました (ほとんど情報ないですが)。
--
東北大学大学院 情報科学研究科 白鳥研究室 加藤 貴司
p-katoh at example.com / Takashi P.KATOH
http://www.shiratori.riec.tohoku.ac.jp/~p-katoh/MAIL/
-------------- next part --------------
;;; mew-sort.el
;;;
;;; Copyright (C) 1996 and 1997 Takashi P.KATOH
;;;
;;; This emacs lisp library confirms
;;; GNU GENERAL PUBLIC LICENSE Version 2.
;;;
;;; Author: Takashi P.KATOH <p-katoh at example.com>
;;; Kazuhiko Yamamoto <kazu at example.com>
;;; Created: Febraury 6, 1996
;;; Revised: Febraury 27, 1997
;;;
(defconst mew-sort-version "mew-sort.el version 0.03")
(require 'mew)
(defvar mew-summary-sort-fields
'(("Date" t) ("Subject") ("From") ("To") ("Newsgroups") ("Posted" t))
"*Field list for mew-summary-sort.
(\"Foo\" t) means sortm will be executed with \"-datefield\" option.")
(defvar mew-summary-sort-last-field "From"
"Latest field used by mew-summary-sort.")
(defun mew-summary-sort-body (msgs &optional method)
(let* ((folder (buffer-name))
(msgs (if (listp msgs) msgs (list msgs)))
(completion-ignore-case t)
(field
(completing-read
(concat "Sort " method (if method " ") folder " by?"
(if mew-summary-sort-last-field
(concat " (default " mew-summary-sort-last-field "): ")
": ")) mew-summary-sort-fields)))
(setq field (if (string-equal field "") mew-summary-sort-last-field field)
mew-summary-sort-last-field field)
(if (null (mew-summary-exclusive-p))
()
(if (mew-summary-mark-exist-p (list mew-mark-rmm mew-mark-refile))
(if (mew-y-or-n-p
"Marked messages exist. Process mark before scan? ")
(mew-summary-exec)))
(setq mew-summary-buffer-process t)
(message "Sorting %s by %s ... " folder field)
(if (cdr (assoc field mew-summary-sort-fields))
(apply 'call-process mew-prog-sortm nil nil nil
(append (list folder) msgs (list "-datefield" field)))
(apply 'call-process mew-prog-sortm nil nil nil
(append (list folder)
msgs
(list "-textfield" field "-limit" "0"))))
(message "Sorting %s by %s ... done" folder field)
(setq mew-summary-buffer-process nil)
(let ((buffer-read-only nil)) (erase-buffer));; for update
(mew-summary-scan-body folder (mew-input-range folder))
)
))
(defun mew-summary-sort (&optional arg)
(interactive "P")
(if arg
(mew-summary-sort-region (region-beginning) (region-end))
(mew-summary-sort-body "all")))
(defun mew-summary-sort-region (r1 r2)
(interactive "r")
(let (from to msgs)
(save-excursion
(goto-char r1)
(setq from
(or (mew-summary-message-number)
(progn
(re-search-backward mew-summary-message-regex nil t nil)
(mew-summary-message-number))))
(goto-char r2)
(setq to
(or (mew-summary-message-number)
(progn
(re-search-backward mew-summary-message-regex nil t nil)
(mew-summary-message-number))))
(if (< (string-to-int from) (string-to-int to))
(mew-summary-sort-body (concat from "-" to) "region")
(mew-summary-sort-body (concat to "-" from) "region")))))
(defun mew-summary-mark-sort (&optional r1 r2)
(interactive)
(mew-summary-sort-body
(mew-summary-mark-collect
mew-mark-hop (or r1 (point-min)) (or r2 (point-max)))
"marked messages"))
(provide 'mew-sort)
Mew-dist メーリングリストの案内