Function: gnus-summary-walk-group-buffer
gnus-summary-walk-group-buffer is a byte-compiled function defined in
gnus-sum.el.gz.
Signature
(gnus-summary-walk-group-buffer FROM-GROUP CMD UNREAD BACKWARD START)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-walk-group-buffer (_from-group cmd unread backward start)
(let ((keystrokes '((?\C-n (gnus-group-next-unread-group 1))
(?\C-p (gnus-group-prev-unread-group 1))))
(cursor-in-echo-area t)
keve key group ended prompt)
(with-current-buffer gnus-group-buffer
(goto-char start)
(setq group
(if (eq gnus-keep-same-level 'best)
(gnus-summary-best-group gnus-newsgroup-name)
(gnus-summary-search-group backward gnus-keep-same-level))))
(while (not ended)
(setq prompt
(format
"No more%s articles%s " (if unread " unread" "")
(if (and group
(not (gnus-ephemeral-group-p gnus-newsgroup-name)))
(format " (Type %s for %s [%s])"
(single-key-description cmd)
group
(gnus-group-unread group))
(format " (Type %s to exit %s)"
(single-key-description cmd)
gnus-newsgroup-name))))
;; Confirm auto selection.
(setq key (car (setq keve (gnus-read-event-char prompt)))
ended t)
(cond
((assq key keystrokes)
(let ((obuf (current-buffer)))
(switch-to-buffer gnus-group-buffer)
(when group
(gnus-group-jump-to-group group))
(eval (cadr (assq key keystrokes)) t)
(setq group (gnus-group-group-name))
(switch-to-buffer obuf))
(setq ended nil))
((equal key cmd)
(if (or (not group)
(gnus-ephemeral-group-p gnus-newsgroup-name))
(gnus-summary-exit)
(gnus-summary-next-group nil group backward)))
(t
(push (cdr keve) unread-command-events))))))