Function: gnus-info-clear-data

gnus-info-clear-data is a byte-compiled function defined in gnus-group.el.gz.

Signature

(gnus-info-clear-data INFO)

Documentation

Clear all marks and read ranges from INFO.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-group.el.gz
(defun gnus-info-clear-data (info)
  "Clear all marks and read ranges from INFO."
  (let ((group (gnus-info-group info))
	action)
    (dolist (el (gnus-info-marks info))
      (push `(,(cdr el) add (,(car el))) action))
    (push `(,(gnus-info-read info) add (read)) action)
    (gnus-undo-register
     (let ((gim (gnus-info-marks info))
           (gir (gnus-info-read info))
           (ga (gnus-active group)))
       (lambda ()
	 (gnus-request-set-mark group action)
	 (gnus-info-set-marks info gim t)
	 (setf (gnus-info-read info) gir)
	 (when (gnus-group-jump-to-group group)
	   (gnus-get-unread-articles-in-group info ga t)
	   (gnus-group-update-group-line)))))
    (setq action (mapcar (lambda (el) (list (nth 0 el) 'del (nth 2 el)))
			 action))
    (gnus-request-set-mark group action)
    (setf (gnus-info-read info) nil)
    (when (gnus-info-marks info)
      (setf (gnus-info-marks info) nil))))