[Mew-dist 08290] Re: namazu.el for mew
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
1999年 3月 26日 (金) 13:04:33 JST
白井です。
白井> 1. "z^" (mew-namazu-search-parent)
白井> imhist でも同じことが出来ますが、*親* の message を追いかける
白井> namazu 版です。IM なら可能な annotate 情報の検索は捨てました。
バグってました。;_;
namazu.h の #define QUERY_MAX_LENGTH 256
より長い検索パターンははじかれちゃうのでガードしました。
手入力のパターンはガードしていません。
また、人それぞれだと思うのですが、
#define DBNAMELENG_MAX 256
はもっと大きめの値にして make した方が良いかもしれません。
--- mew-namazu.el.orig Fri Mar 26 12:41:00 1999
+++ mew-namazu.el Fri Mar 26 12:42:17 1999
@@ -63,6 +63,10 @@
;; fast-pick mode =>なるだけ elisp で summary を作る mode。
(defvar mew-namazu-use-fast-pick t "*Use fast pick mode.")
+;; namazu.h の QUERY_MAX_LENGTH と同じ値を入れる。
+(defvar mew-namazu-query-max-length 256
+ "*Namazu query string max length.")
+
;; namazu の index を作る Perl script。
(defvar mew-namazu-prog-mknmz "mknmz" "*Namazu make index program.")
;; -u => uuencode と BinHex の部分を無視する
@@ -108,7 +112,7 @@
(defun mew-namazu-search-parent (&optional mid)
(interactive)
(let ((folder (mew-summary-folder-name))
- (idh (list mew-in-reply-to: mew-references:))
+ (idh (list mew-references: mew-in-reply-to:))
mess ref pid rh)
(if mid
(setq pid (list mid)
@@ -137,12 +141,15 @@
(forward-line -1)))
(set-marker mew-summary-inbox-position (point) (current-buffer))
(message "Searching parent ...")
- (let ((pattern (concat "( "
- (mapconcat
- '(lambda (id) (format "+message-id:%s" id))
- pid " | ")
- " )"))
- range)
+ (let ((pattern "")
+ (addpattern "+message-id:"))
+ (while pid
+ (if (> (length (concat pattern addpattern (car pid)))
+ mew-namazu-query-max-length)
+ (setq pid nil)
+ (setq pattern (concat pattern addpattern (car pid)))
+ (setq addpattern " | +message-id:")
+ (setq pid (delete (car pid) pid))))
(setq range (and (not mid)
(nreverse (mew-namazu-pick folder pattern))))
(if (null range)
Mew-dist メーリングリストの案内