David <[EMAIL PROTECTED]> writes:

Hi David, hi Ted,

>> You could use the Gnus registry if it's loaded.  It will tell you the
>> last place a message ID was seen (it learns this by looking at the
>> visible messages every time you enter a group, and by hooking into
>> spool/move/copy/delete on each backend).
>
> Yes, I guess the best way would be to first check the registry for the
> group and do the additional mairix search only if the registry is not
> loaded or does not know the location of the message. I don't want to
> rely solely on the registry though, because of the limitations you
> describe:

Here's a works-for-me draft:

--8<---------------cut here---------------start------------->8---
(setq gnus-registry-max-entries 10000
      gnus-registry-use-long-group-names t)

(gnus-registry-initialize)

;;;; Select an article by message-id with the registry

(defun th-gnus-registry-select-article (message-id)
  (interactive "sMessage-ID: ")
  (let ((group-buffer (get-buffer gnus-group-buffer))
        (group (gnus-registry-fetch-group message-id)))
    (pop-to-buffer group-buffer)
    (gnus-group-list-all-groups)
    (gnus-group-goto-group group t)
    (gnus-group-select-group 1)
    (gnus-summary-refer-article message-id)))

(defun th-gnus-select-article-in-original-group (header)
  (interactive (gnus-interactive "H"))
  (th-gnus-registry-select-article
   (mail-header-message-id header)))
--8<---------------cut here---------------end--------------->8---

I've bound th-gnus-select-article-in-original-group to "M-^" in nnmairix
groups to get fast access to it.

One annoying thing is that it seems I must use (gnus-group-select-group
1), if I provide 0 or nil, the group won't be selected.  So you'll have
another message in the group after you press "M-^" in the nnmairix
group.

Improvements welcome.

Bye,
Tassilo



_______________________________________________
info-gnus-english mailing list
info-gnus-english@gnu.org
http://lists.gnu.org/mailman/listinfo/info-gnus-english

Reply via email to