Function: gnus-summary-update-info
gnus-summary-update-info is a byte-compiled function defined in
gnus-sum.el.gz.
Signature
(gnus-summary-update-info &optional NON-DESTRUCTIVE)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-update-info (&optional non-destructive)
(save-excursion
(let ((group gnus-newsgroup-name))
(when group
(when gnus-newsgroup-kill-headers
(setq gnus-newsgroup-killed
(range-compress-list
(gnus-sorted-union
(range-list-intersection
gnus-newsgroup-unselected gnus-newsgroup-killed)
gnus-newsgroup-unreads))))
(unless (listp (cdr gnus-newsgroup-killed))
(setq gnus-newsgroup-killed (list gnus-newsgroup-killed)))
(let ((headers gnus-newsgroup-headers)
(ephemeral-p (gnus-ephemeral-group-p group))
info)
(unless ephemeral-p
(setq info (copy-sequence (gnus-get-info group))
info (delq (gnus-info-params info) info)))
;; Set the new ranges of read articles.
(with-current-buffer gnus-group-buffer
(gnus-undo-force-boundary))
(gnus-update-read-articles
group (gnus-sorted-union
gnus-newsgroup-unreads gnus-newsgroup-unselected))
;; Set the current article marks.
(let ((gnus-newsgroup-scored
(if (and (not gnus-save-score)
(not non-destructive))
nil
gnus-newsgroup-scored)))
(save-excursion
(gnus-update-marks)))
;; Do the cross-ref thing.
(when gnus-use-cross-reference
(gnus-mark-xrefs-as-read group headers gnus-newsgroup-unreads))
;; Do not switch windows but change the buffer to work.
(set-buffer gnus-group-buffer)
(unless ephemeral-p
(gnus-group-update-group
group nil
(equal info
(setq info (copy-sequence (gnus-get-info group))
info (delq (gnus-info-params info) info))))))))))