Function: gnus-summary-initial-limit

gnus-summary-initial-limit is a byte-compiled function defined in gnus-sum.el.gz.

Signature

(gnus-summary-initial-limit &optional SHOW-IF-EMPTY)

Documentation

Figure out what the initial limit is supposed to be on group entry.

This entails weeding out unwanted dormants, low-scored articles, fetch-old-headers verbiage, and so on.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-initial-limit (&optional show-if-empty)
  "Figure out what the initial limit is supposed to be on group entry.
This entails weeding out unwanted dormants, low-scored articles,
fetch-old-headers verbiage, and so on."
  ;; Most groups have nothing to remove.
  (unless (or gnus-inhibit-limiting
	      (and (null gnus-newsgroup-dormant)
		   (eq gnus-newsgroup-display #'gnus-not-ignore)
		   (not (eq gnus-fetch-old-headers 'some))
		   (not (numberp gnus-fetch-old-headers))
		   (not (eq gnus-fetch-old-headers 'invisible))
		   (null gnus-summary-expunge-below)
		   (not (eq gnus-build-sparse-threads 'some))
		   (not (eq gnus-build-sparse-threads 'more))
		   (null gnus-thread-expunge-below)))
    (push gnus-newsgroup-limit gnus-newsgroup-limits)
    (setq gnus-newsgroup-limit nil)
    (maphash
     (lambda (_id deps)
       (unless (car deps)
	 ;; These threads have no parents -- they are roots.
	 (let ((nodes (cdr deps))
	       thread)
	   (while nodes
	     (if (and gnus-thread-expunge-below
		      (< (gnus-thread-total-score (car nodes))
			 gnus-thread-expunge-below))
		 (gnus-expunge-thread (pop nodes))
	       (setq thread (pop nodes))
	       (gnus-summary-limit-children thread))))))
     gnus-newsgroup-dependencies)
    ;; If this limitation resulted in an empty group, we might
    ;; pop the previous limit and use it instead.
    (when (and (not gnus-newsgroup-limit)
	       show-if-empty)
      (setq gnus-newsgroup-limit (pop gnus-newsgroup-limits)))
    gnus-newsgroup-limit))