[Mew-dist 15324] どこでも親探し
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2000年 12月 7日 (木) 13:49:26 JST
mew-thread.el の mew-summary-thread-parent() なのですが、thread
の indent を使わなくても、以下の様にすると『普通の folder』でも
親や子供を検索できますがいかがなものでしょうか。
"親探し" は thread folder より普通の folder の方がありがたみがあ
ります。
(defun mew-summary-thread-parent (&optional child)
"Move onto the parent message of the current message.
If called with '\\[universal-argument]', move onto the child message."
(interactive "P")
(mew-summary-msg
(let ((pos (point))
(msg (if child "Child" "Parent"))
id regex)
(if (not (looking-at "[^\r]*\r[^<]+\\(<[^>]*>\\) \\(<[^>]*>\\)\n"))
(message "No required header.")
(if child
(setq id (mew-match 1)
regex (concat "\r[^<]+<[^>]*> " (regexp-quote id)))
(setq id (mew-match 2)
regex (concat "\r[^<]+" (regexp-quote id))))
(if (string= id "<>")
(message "No required header.")
(goto-char (point-min))
(if (re-search-forward regex nil t)
(progn
(beginning-of-line)
(mew-summary-display nil)
(message (format "%s detect." msg)))
(goto-char pos)
(message (format "No %s detect in this folder." msg))))))))
# 少々力付くで regex を書いてますけど。^^;
また、
(defun mew-scan-get-line (mew-vec WIDTH &optional VIRTUALP)
(let* ((TOTAL 0)
(line (mapconcat (function mew-scan-get-piece)
mew-summary-buffer-scan-form ""))
(my-id "") (par-id "") fld msg ld)
(if (string-match mew-regex-id (MEW-ID))
(setq my-id (mew-match 1 (MEW-ID))))
(if (string-match mew-regex-id (MEW-IRT))
(setq par-id (mew-match 1 (MEW-IRT)))
(if (string-match mew-regex-id (MEW-REF))
(let ((beg (match-beginning 1))
(end (match-end 1))
(start (match-end 0)))
(while (string-match mew-regex-id (MEW-REF) start)
(setq beg (match-beginning 1))
(setq end (match-end 1))
(setq start (match-end 0)))
(setq par-id (substring (MEW-REF) beg end)))))
(if (null VIRTUALP)
(setq ld (format "\r <%s> <%s>\n" my-id par-id))
(setq fld (mew-scan-get-folder mew-vec))
(setq msg (mew-scan-get-message mew-vec))
(setq ld (format "\r %s %s <%s> <%s>\n" fld msg my-id par-id)))
(cons line ld)))
の様にして『普通の virtual folder』でも my-id, par-id をつけるよ
うにすれば、virtual でも親や子供をたどれる様になります。これも便
利かと。
# これをやると mew-nmz.el で一カ所動作不良を起こしますが、それ以
# 外の動作は大丈夫だと思います。
--
白井秀行 (mailto:shirai at example.com)
Mew-dist メーリングリストの案内