[Mew-dist 1887] Re: mew-summary-search-parent
Mito
mit at example.com
1997年 9月 4日 (木) 22:08:39 JST
※ "な" こと motonori at example.com さんの
『[Mew-dist 1886] Re: mew-summary-search-parent』からの引用です。
な> ありがとうございます。ちなみに、imput で annotate=on になっていると、
な> Replied: Message-Id: <message-id>
な> Forwarded: Message-Id: <message-id>
な> Resent: Message-Id: <message-id>
な> といった子メッセージの情報が残るので、これをたどっていく操作も
な> 実装されると嬉しいです。
message-id を検索するヘッダの順は適当に変更してください。
# Mew からは annotate=on できませんよね?
# すみません、perl はよくわからないのですが、Config では on
# にできないようだったのでテストはしていません。(_ _)
# どういう場合に annotate=on で imput するのでしょう?
--
9/4 22:07頃
NECソフトウェア新潟 水戸
mailto:mit at example.com
-------------- next part --------------
(defun mew-summary-search-parent ()
(interactive)
(let ((folder (mew-summary-folder-name))
(pnum "0")
(nomatch t)
mess ref pid pf rh
(idh (list "References:"
"In-Reply-To:"
"Replied:"
"Forwarded:"
"Resent:")))
(if (not (or (mew-summary-message-number) (mew-summary-part-number)))
(error "No message")
(mew-summary-display t)
(setq mess (or (mew-cache-hit
(cons (buffer-name) (mew-summary-message-number)))
(mew-buffer-message)))
(set-mark (point))
(set-buffer mess)
(while idh
(setq rh (car idh))
(setq ref (mew-header-get-value rh))
(if ref
(setq idh nil)
(setq idh (cdr idh))))
(if (and ref (string-match "<[^>]*>\\( *<[^>]*>\\)*" ref))
(setq ref (substring ref (match-beginning 0) (match-end 0))))
(if (not ref)
(error "No References header")
(while ref
(if (not (string-match "<[^>]*>" ref))
(setq ref nil)
(setq pid (substring ref (match-beginning 0) (match-end 0)))
(setq ref (substring ref (match-end 0)))))
(set-buffer (get-buffer-create mew-buffer-tmp))
(erase-buffer)
(message "searching parent...")
(call-process mew-prog-imhist nil t nil (concat "--lookup=" pid))
(message "searching parent...done")
(goto-char (point-min))
(while
(and nomatch
(re-search-forward "\\(\\+[^,]*\\)/\\([1-9][0-9]*\\)" nil t))
(let ((next (match-end 0)))
(setq pf (buffer-substring (match-beginning 1) (match-end 1)))
(setq pnum (buffer-substring
(match-beginning 2) (match-end 2)))
(if (string= folder pf)
(if (string= pnum "0")
(error "No parent message in this folder.")
(set-buffer folder)
(mew-summary-jump-message pnum)
(setq nomatch nil))
(goto-char next))))
(if nomatch
(if (string= pnum "0")
(error "No parent message")
(message (concat "Parent message is " pnum
" in " pf " folder"))))
))))
Mew-dist メーリングリストの案内