Function: nnmbox-request-expire-articles

nnmbox-request-expire-articles is a byte-compiled function defined in nnmbox.el.gz.

Signature

(nnmbox-request-expire-articles ARTICLES NEWSGROUP &optional SERVER FORCE)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nnmbox.el.gz
(deffoo nnmbox-request-expire-articles
    (articles newsgroup &optional server force)
  (nnmbox-possibly-change-newsgroup newsgroup server)
  (let* ((is-old t)
	 rest)
    (nnmail-activate 'nnmbox)

    (with-current-buffer nnmbox-mbox-buffer
      (while (and articles is-old)
	(when (nnmbox-find-article (car articles))
	  (if (setq is-old
		    (nnmail-expired-article-p
		     newsgroup
		     (buffer-substring (point) (line-end-position))
		     force))
	      (progn
		(unless (eq nnmail-expiry-target 'delete)
		  (with-temp-buffer
		    (nnmbox-request-article (car articles)
					    newsgroup server
					    (current-buffer))
		    (let ((nnml-current-directory nil))
		      (nnmail-expiry-target-group
		       nnmail-expiry-target newsgroup)))
		  (nnmbox-possibly-change-newsgroup newsgroup server))
		(nnheader-message 5 "Deleting article %d in %s..."
				  (car articles) newsgroup)
		(nnmbox-delete-mail))
	    (push (car articles) rest)))
	(setq articles (cdr articles)))
      (nnmbox-save-buffer)
      ;; Find the lowest active article in this group.
      (let ((active (nth 1 (assoc newsgroup nnmbox-group-alist))))
	(while (and (not (nnmbox-find-article (car active)))
		    (<= (car active) (cdr active)))
	  (setcar active (1+ (car active)))))
      (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
      (nconc rest articles))))