From: Andrew Cohen Date: Wed, 8 Dec 2010 14:31:40 +0000 (-0500) Subject: nnir.el (nnir-request-expire-articles): New function allows deleting articles. X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=89d26607878643c208e899d11925fd737a0bf2c1 nnir.el (nnir-request-expire-articles): New function allows deleting articles. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 083134106..5f62e480a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -3,6 +3,7 @@ * nnir.el (nnir-retrieve-headers): Use rassq when comparing article ids. (nnir-run-gmane): Simplify groupspec formatting. + (nnir-request-expire-articles): New function. 2010-12-07 Lars Magne Ingebrigtsen diff --git a/lisp/nnir.el b/lisp/nnir.el index 0a67f88f2..726b01564 100644 --- a/lisp/nnir.el +++ b/lisp/nnir.el @@ -687,6 +687,25 @@ Add an entry here when adding a new search engine.") to-newsgroup ; Not respooling (gnus-group-real-name to-newsgroup))))) +(deffoo nnir-request-expire-articles (articles group &optional server force) + (let ((articles-by-group (nnir-categorize + articles nnir-article-group nnir-article-ids)) + not-deleted) + (while (not (null articles-by-group)) + (let* ((group-articles (pop articles-by-group)) + (artgroup (car group-articles)) + (articleids (cadr group-articles)) + (artlist (sort (mapcar 'cdr articleids) '<))) + (unless (gnus-check-backend-function 'request-expire-articles + artgroup) + (error "The group %s does not support article deletion" artgroup)) + (unless (gnus-check-server (gnus-find-method-for-group artgroup)) + (error "Couldn't open server for group %s" artgroup)) + (push (gnus-request-expire-articles + artlist artgroup force) + not-deleted))) + (sort (delq nil not-deleted) '<))) + (deffoo nnir-warp-to-article () (let* ((cur (if (> (gnus-summary-article-number) 0) (gnus-summary-article-number)