Function: gnus-group-search-forward

gnus-group-search-forward is a byte-compiled function defined in gnus-group.el.gz.

Signature

(gnus-group-search-forward &optional BACKWARD ALL LEVEL FIRST-TOO)

Documentation

Move point to the next newsgroup with unread articles.

If BACKWARD is non-nil, move to the previous newsgroup instead. If ALL is non-nil, consider any newsgroup, not only those with unread articles. If LEVEL is non-nil, find group with level LEVEL, or higher if no such group exists. If FIRST-TOO, the current line is also eligible as a target.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-group.el.gz
(defun gnus-group-search-forward (&optional backward all level first-too)
  "Move point to the next newsgroup with unread articles.
If BACKWARD is non-nil, move to the previous newsgroup instead.
If ALL is non-nil, consider any newsgroup, not only those with
unread articles.  If LEVEL is non-nil, find group with level
LEVEL, or higher if no such group exists.  If FIRST-TOO, the
current line is also eligible as a target."
  (let ((way (if backward -1 1))
	(low gnus-level-killed)
	(beg (point))
	pos found lev)
    (if (and backward (progn (beginning-of-line) (bobp)))
	nil
      (unless first-too
	(forward-line way))
      (while (and
	      (not (eobp))
	      (not (setq
		    found
		    (and
		     (get-text-property (point) 'gnus-group)
		     (or all
			 (and
			  (let ((unread
				 (get-text-property (point) 'gnus-unread)))
			    (and (numberp unread) (> unread 0)))
			  (setq lev (get-text-property (point)
						       'gnus-level))
			  (<= lev gnus-level-subscribed)))
		     (or (not level)
			 (and (setq lev (get-text-property (point)
							   'gnus-level))
			      (or (= lev level)
				  (and (< lev low)
				       (< level lev)
				       (progn
					 (setq low lev)
					 (setq pos (point))
					 nil))))))))
	      (zerop (forward-line way)))))
    (if found
	(progn (gnus-group-position-point) t)
      (goto-char (or pos beg))
      (and pos t))))