[mew-dist 26597] Re: Mew 4.3 に向けて
HASHI Hiroaki
hasi at example.com
2005年 9月 13日 (火) 20:10:53 JST
橋です。
> Namazu の改良もマージしたいですが、間に合わなければ Mew 4.4 で、
> ですね。
"k/"が動かないと非常に困るので、動くようにしてみました。
やったこと
- "k/"でnamazuを使用可能に。
- "k?","k/"のpattern入力時の補完をmew-nmzと同じに。(現在のメールのヘッ
ダの値を元に補完リストを作る)
- "k/"で検索対象のフォルダ名の入力を可能に(namazuの時だけ、pattern入
力した後にフォルダ名を聞いてくる)
user interfaceはなるべくmew-nmzと同じにしたかったので、他のmethodを使っ
ている時とちょっと違ってしまっています。
やってないこと
- patternの補完は、namazu以外でも使えるかも。(うるさくなければ)
- mew-nmz.elのいらなくなったコードの削除
namazu以外の検索engineでは試してません。(変化ないはずです)
-------------- next part --------------
Index: mew-complete.el
===================================================================
RCS file: /cvsmew/mew/mew-complete.el,v
retrieving revision 1.71
diff -u -r1.71 mew-complete.el
--- mew-complete.el 4 Feb 2005 15:50:03 -0000 1.71
+++ mew-complete.el 13 Sep 2005 05:18:15 -0000
@@ -473,6 +473,7 @@
(let* ((pat (mew-delete-pattern))
(clist (append '("(" "!")
mew-pick-field-list
+ mew-nmz-gather-header-list
(mapcar 'car mew-pick-macro-alist))))
(if (null pat)
(mew-complete-window-show clist)
Index: mew-nmz.el
===================================================================
RCS file: /cvsmew/mew/mew-nmz.el,v
retrieving revision 1.28
diff -u -r1.28 mew-nmz.el
--- mew-nmz.el 30 Aug 2005 08:42:38 -0000 1.28
+++ mew-nmz.el 13 Sep 2005 05:18:15 -0000
@@ -98,12 +98,12 @@
:type '(repeat string))
(defcustom mew-nmz-pick-gather-field-list
- `((,mew-from: address "+from:" "+to:" "+cc:")
- (,mew-to: address "+from:" "+to:" "+cc:")
- (,mew-cc: address "+from:" "+to:" "+cc:")
- (,mew-message-id: msgid "+message-id:" "+in-reply-to:" "+references:")
- (,mew-in-reply-to: msgid "+message-id:" "+in-reply-to:" "+references:")
- (,mew-references: msgid "+message-id:" "+in-reply-to:" "+references:"))
+ `((,mew-from: address "from=" "to=" "cc=")
+ (,mew-to: address "from=" "to=" "cc=")
+ (,mew-cc: address "from=" "to=" "cc=")
+ (,mew-message-id: msgid "message-id=" "in-reply-to=" "references=")
+ (,mew-in-reply-to: msgid "message-id=" "in-reply-to=" "references=")
+ (,mew-references: msgid "message-id=" "in-reply-to=" "references="))
"*A list of completion keyword from message."
:group 'mew-nmz
:type '(repeat (list string
@@ -217,6 +217,8 @@
(t mew-cs-text-for-write))
"*Coding system to write 'NMZ.field.uri'.")
+(defvar mew-nmz-pick-folder-name nil)
+
(defconst mew-nmz-result-regex
(concat "^\\(.*\\)" (regexp-quote mew-path-separator) "\\([0-9]+\\)"))
@@ -907,7 +909,7 @@
(mew-input-clear)
(mew-input-folder-clean-up)
(let ((map (copy-keymap mew-input-folder-map))
- (case:folder (concat (or (mew-summary-folder-name) "+")
+ (case:folder (concat (or mew-nmz-pick-folder-name "+")
(if mew-nmz-input-folders-asterisk "*" ""))))
(define-key map "*" 'mew-input-folder-self-insert)
(let* ((init (mew-canonicalize-case-folder case:folder))
Index: mew-search.el
===================================================================
RCS file: /cvsmew/mew/mew-search.el,v
retrieving revision 1.13
diff -u -r1.13 mew-search.el
--- mew-search.el 6 Sep 2005 09:08:36 -0000 1.13
+++ mew-search.el 13 Sep 2005 05:18:15 -0000
@@ -26,7 +26,7 @@
nil mew-google-register
mew-pick-canonicalize-pattern-google)
(namazu "Namazu" ,mew-prog-namazu
- mew-search-with-namazu nil
+ mew-search-with-namazu mew-search-virtual-with-namazu
mew-nmz-index-folder nil
mew-pick-canonicalize-pattern-namazu)))
@@ -98,6 +98,9 @@
(name (mew-search-get-name ent))
(canon-func (mew-search-get-func-canonicalize-pattern ent))
(folder (mew-pickable-folder))
+ (mew-nmz-gather-header-list (if (eq mew-search-method 'namazu)
+ (mew-nmz-pick-pattern-gather-header)
+ nil))
pattern msgs)
(mew-pickable
(if (not (fboundp func))
@@ -118,6 +121,10 @@
(func (mew-search-get-func-virtual ent))
(name (mew-search-get-name ent))
(canon-func (mew-search-get-func-canonicalize-pattern ent))
+ (mew-nmz-gather-header-list (if (eq mew-search-method 'namazu)
+ (mew-nmz-pick-pattern-gather-header)
+ nil))
+ (mew-nmz-pick-folder-name (mew-summary-folder-name))
vfolder opattern pattern file opts rttl file-rttl)
(if (not (fboundp func))
(message "This command cannot be used")
@@ -306,6 +313,29 @@
(defun mew-search-with-namazu (pattern folder)
(mew-nmz-multi-pick (list (mew-nmz-expand-folder folder)) pattern nil 'single))
+(defun mew-search-virtual-with-namazu (pattern)
+ (let* ((flds (mew-nmz-input-folders))
+ (file (mew-make-temp-name))
+ (rttl 0)
+ nmzdirs fldmsgs fld msgs path)
+ (mew-nmz-setup)
+ (setq nmzdirs (mew-nmz-flds-to-indexs flds))
+ (setq fldmsgs (mew-nmz-multi-pick nmzdirs pattern nil))
+ (while fldmsgs
+ (setq fld (car (car fldmsgs)))
+ (setq path (mew-path-to-folder (mew-expand-folder fld)))
+ (insert "CD: " path "\n")
+ (setq msgs (cdr (car fldmsgs)))
+ (while msgs
+ (setq rttl (1+ rttl))
+ (insert (car msgs) "\n")
+ (setq msgs (cdr msgs)))
+ (setq fldmsgs (cdr fldmsgs)))
+ (mew-frwlet
+ mew-cs-text-for-read mew-cs-text-for-write
+ (write-region (point-min) (point-max) file nil 'nomsg))
+ (list file rttl)))
+
(defun mew-nmz-index-folder (folder)
(mew-nmz-mknmz folder nil 'msg))
Mew-dist メーリングリストの案内