Function: gnus-agent-unfetch-articles

gnus-agent-unfetch-articles is a byte-compiled function defined in gnus-agent.el.gz.

Signature

(gnus-agent-unfetch-articles GROUP ARTICLES)

Documentation

Delete ARTICLES that were fetched from GROUP into the agent.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-agent.el.gz
(defun gnus-agent-unfetch-articles (group articles)
  "Delete ARTICLES that were fetched from GROUP into the agent."
  (when articles
    (gnus-agent-with-refreshed-group
     group
     (gnus-agent-load-alist group)
     (let* ((alist (cons nil gnus-agent-article-alist))
	    (articles (sort articles #'<))
	    (next-possibility alist)
	    (delete-this (pop articles)))
       (while (and (cdr next-possibility) delete-this)
	 (let ((have-this (caar (cdr next-possibility))))
	   (cond
	    ((< delete-this have-this)
	     (setq delete-this (pop articles)))
	    ((= delete-this have-this)
	     (let ((timestamp (cdar (cdr next-possibility))))
	       (when timestamp
		 (let* ((file-name (concat (gnus-agent-group-pathname group)
					   (number-to-string have-this)))
			(size-file
			 (float (or (and gnus-agent-total-fetched-hashtb
					 (file-attribute-size
					  (file-attributes file-name)))
				    0)))
			(file-name-coding-system
			 nnmail-pathname-coding-system))
		   (delete-file file-name)
		   (gnus-agent-update-files-total-fetched-for
		    group (- size-file)))))

	     (setcdr next-possibility (cddr next-possibility)))
	    (t
	     (setq next-possibility (cdr next-possibility))))))
       (setq gnus-agent-article-alist (cdr alist))
       (gnus-agent-save-alist group)))))