Function: org-gnus-follow-link

org-gnus-follow-link is a byte-compiled function defined in ol-gnus.el.gz.

Signature

(org-gnus-follow-link &optional GROUP ARTICLE)

Documentation

Follow a Gnus link to GROUP and ARTICLE.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ol-gnus.el.gz
(defun org-gnus-follow-link (&optional group article)
  "Follow a Gnus link to GROUP and ARTICLE."
  (require 'gnus)
  (funcall (cdr (assq 'gnus org-link-frame-setup)))
  (when gnus-other-frame-object (select-frame gnus-other-frame-object))
  (let ((group (org-no-properties group))
	(article (org-no-properties article)))
    (cond
     ((and group article)
      (gnus-activate-group group)
      (condition-case nil
	  (let ((msg "Couldn't follow Gnus link.  Summary couldn't be opened."))
	    (pcase (gnus-find-method-for-group group)
	      (`(nndoc . ,_)
	       (if (gnus-group-read-group t nil group)
		   (gnus-summary-goto-article article nil t)
		 (message msg)))
	      (_
	       (let ((articles 1)
		     group-opened)
		 (while (and (not group-opened)
			     ;; Stop on integer overflows.  Note: We
			     ;; can drop this once we require at least
			     ;; Emacs 27, which supports bignums.
			     (> articles 0))
		   (setq group-opened (gnus-group-read-group articles t group))
		   (setq articles (if (< articles 16)
				      (1+ articles)
				    (* articles 2))))
		 (if group-opened
		     (gnus-summary-goto-article article nil t)
		   (message msg))))))
	(quit
	 (message "Couldn't follow Gnus link.  The linked group is empty."))))
     (group (gnus-group-jump-to-group group)))))