Function: gnus-summary-first-subject
gnus-summary-first-subject is an interactive and byte-compiled
function defined in gnus-sum.el.gz.
Signature
(gnus-summary-first-subject &optional UNREAD UNDOWNLOADED UNSEEN)
Documentation
Go to the first subject satisfying any non-nil constraint.
If UNREAD is non-nil, the article should be unread. If UNDOWNLOADED is non-nil, the article should be undownloaded. If UNSEEN is non-nil, the article should be unseen as well as unread. Returns the article selected or nil if there are no matching articles.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
;; Walking around summary lines.
(defun gnus-summary-first-subject (&optional unread undownloaded unseen)
"Go to the first subject satisfying any non-nil constraint.
If UNREAD is non-nil, the article should be unread.
If UNDOWNLOADED is non-nil, the article should be undownloaded.
If UNSEEN is non-nil, the article should be unseen as well as unread.
Returns the article selected or nil if there are no matching articles."
(interactive "P" gnus-summary-mode)
(cond
;; Empty summary.
((null gnus-newsgroup-data)
(gnus-message 3 "No articles in the group")
nil)
;; Pick the first article.
((not (or unread undownloaded unseen))
(goto-char (gnus-data-pos (car gnus-newsgroup-data)))
(gnus-data-number (car gnus-newsgroup-data)))
;; Find the first unread article.
(t
(let ((data gnus-newsgroup-data))
(while (and data
(let ((num (gnus-data-number (car data))))
(or (memq num gnus-newsgroup-unfetched)
(not (or (and unread
(memq num gnus-newsgroup-unreads))
(and undownloaded
(memq num gnus-newsgroup-undownloaded))
(and unseen
(memq num gnus-newsgroup-unseen)
(memq num gnus-newsgroup-unreads)))))))
(setq data (cdr data)))
(prog1
(if data
(progn
(goto-char (gnus-data-pos (car data)))
(gnus-data-number (car data)))
(gnus-message 3 "No more%s articles"
(let* ((r (when unread " unread"))
(d (when undownloaded " undownloaded"))
(s (when unseen " unseen"))
(l (delq nil (list r d s))))
(cond ((= 3 (length l))
(concat r "," d ", or" s))
((= 2 (length l))
(concat (car l) ", or" (cadr l)))
((= 1 (length l))
(car l))
(t
""))))
nil
)
(gnus-summary-position-point))))))