Function: gnus-try-warping-via-registry
gnus-try-warping-via-registry is an autoloaded, interactive and
byte-compiled function defined in gnus-registry.el.gz.
Signature
(gnus-try-warping-via-registry)
Documentation
Try to warp via the registry.
This will be done via the current article's source group based on data stored in the registry.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-registry.el.gz
;; largely based on nnselect-warp-to-article
(defun gnus-try-warping-via-registry ()
"Try to warp via the registry.
This will be done via the current article's source group based on
data stored in the registry."
(interactive)
(when (gnus-summary-article-header)
(let* ((message-id (mail-header-id (gnus-summary-article-header)))
;; Retrieve the message's group(s) from the registry
(groups (gnus-registry-get-id-key message-id 'group))
;; If starting from an ephemeral group, this describes
;; how to restore the window configuration
(quit-config
(gnus-ephemeral-group-p gnus-newsgroup-name))
(seen-groups (list (gnus-group-group-name))))
(catch 'found
(dolist (group (mapcar #'gnus-simplify-group-name groups))
;; skip over any groups we really don't want to warp to.
(unless (or (member group seen-groups)
(gnus-ephemeral-group-p group) ;; any ephemeral group
(memq (car (gnus-find-method-for-group group))
;; Specific methods; this list may need to expand.
'(nnselect)))
;; remember that we've seen this group already
(push group seen-groups)
;; first exit from any ephemeral summary buffer.
(when quit-config
(gnus-summary-exit)
;; and if the ephemeral summary buffer in turn came from
;; another summary buffer we have to clean that summary
;; up too.
(when (eq (cdr quit-config) 'summary)
(gnus-summary-exit))
;; remember that we've already done this part
(setq quit-config nil))
;; Try to activate the group. If that fails, just move
;; along. We may have more groups to work with
(when
(ignore-errors
(gnus-select-group-with-message-id group message-id) t)
(throw 'found t))))))))