[mew-dist 27425] Re: Hyper Estraier
Tatsuya Kinoshita
tats at example.com
2006年 10月 24日 (火) 00:30:45 JST
On October 23, 2006, [mew-dist 27424],
kazu (at iij.ad.jp) wrote:
> Hyperestraier のみ 2 回訊くようにしました。
>
> 1) キーワードを入れる
> 「キーワード」
> 2) 絞り込みの条件を入れる
> 「from=kazu subject=foo」
> 絞り込まない場合は、単に RET
ありがとうございました。概ね良さそうです。
[mew-dist 27259](2006-08-27)からの残りをパッチにしておきます。
* "=", "!="では大文字小文字を区別しないように
* "==", "!=="対応
* head対応 (mew-pick-filter-est-head-fields)
* キーワード先頭での"!"対応 ("ANDNOT mew-dist" -> "[UVSET] ANDNOT mew-dist")
あと、パッチにはしていませんが、field=valueの形になっていないと、
mew-pick-filter-est-kyvlの(nth 0 kyvl)でwrong-type-argumentエラーになる
ことに気づきました。
----
--- mew.orig/mew-pick.el
+++ mew/mew-pick.el
@@ -652,16 +652,22 @@
(defun mew-pick-pattern-est-kyvl (kyvl)
(error "'%s' is not supported" kyvl))
+(defvar mew-pick-filter-est-head-fields "date,subject,from,to,cc,resent-from,resent-to,resent-cc,reply-to,mail-followup-to,x-mail-count,x-ml-count,x-ml-name,x-seqno,x-sequence,mailinglist-id,message-id,in-reply-to,references,newsgroups,followup-to")
+
(defun mew-pick-filter-est-kyvl (kyvl)
(let ((op (nth 0 kyvl))
(ky (nth 1 kyvl))
- (vl (nth 2 kyvl))
- ret)
- (setq ret (cons vl ret))
+ (vl (nth 2 kyvl)))
+ (if (string= ky "head")
+ (setq ky mew-pick-filter-est-head-fields))
(cond
((string= op "=")
+ (setq op "ISTRINC"))
+ ((string= op "==")
(setq op "STRINC"))
((string= op "!=")
+ (setq op "!ISTRINC"))
+ ((string= op "!==")
(setq op "!STRINC"))
(t
(error "'%s' is not supported" op)))
--- mew.orig/mew-search.el
+++ mew/mew-search.el
@@ -550,6 +550,8 @@
(setq path (substring path len))
(setq path (file-name-as-directory path))
(setq attr (format "@uri STRINC %s" (mew-q-encode-string path ?%)))
+ (if (string-match "^ *ANDNOT " pattern)
+ (setq pattern (concat "[UVSET] " pattern)))
(setq args (list "-vu" "-max" "-1" "-ord" "@cdate NUMA" casket pattern))
(setq filter (nreverse filter))
(while filter
----
--
木下達也
Mew-dist メーリングリストの案内