Function: gnus-summary-limit
gnus-summary-limit is a byte-compiled function defined in
gnus-sum.el.gz.
Signature
(gnus-summary-limit ARTICLES &optional POP)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-limit (articles &optional pop)
(if pop
;; We pop the previous limit off the stack and use that.
(setq articles (car gnus-newsgroup-limits)
gnus-newsgroup-limits (cdr gnus-newsgroup-limits))
;; We use the new limit, so we push the old limit on the stack.
(push gnus-newsgroup-limit gnus-newsgroup-limits))
;; Set the limit.
(setq gnus-newsgroup-limit articles)
(let ((total (length gnus-newsgroup-data))
(data (gnus-data-find-list (gnus-summary-article-number)))
(gnus-summary-mark-below nil) ; Inhibit this.
found)
;; This will do all the work of generating the new summary buffer
;; according to the new limit.
(gnus-summary-prepare)
;; Hide any threads, possibly.
(gnus-summary-maybe-hide-threads)
;; Try to return to the article you were at, or one in the
;; neighborhood.
(when data
;; We try to find some article after the current one.
(while data
(when (gnus-summary-goto-subject (gnus-data-number (car data)) nil t)
(setq data nil
found t))
(setq data (cdr data))))
(unless found
;; If there is no data, that means that we were after the last
;; article. The same goes when we can't find any articles
;; after the current one.
(goto-char (point-max))
(gnus-summary-find-prev))
(gnus-set-mode-line 'summary)
;; We return how many articles were removed from the summary
;; buffer as a result of the new limit.
(- total (length gnus-newsgroup-data))))