summaryrefslogtreecommitdiff
path: root/lisp/gnus
diff options
context:
space:
mode:
authorAndrew Cohen <cohen@andy.bu.edu>2010-12-08 14:41:37 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2010-12-08 14:41:37 +0000
commit71044abebeccebe885f3540e3fd4a27a1f7d6537 (patch)
treee1224cd3e549953c5fcb961bc3d4183582e95a05 /lisp/gnus
parent47ac61706b71dcb0903e366a927c7d707d3f5eab (diff)
downloademacs-71044abebeccebe885f3540e3fd4a27a1f7d6537.tar.gz
nnir.el (nnir-request-expire-articles): New function.
Diffstat (limited to 'lisp/gnus')
-rw-r--r--lisp/gnus/ChangeLog1
-rw-r--r--lisp/gnus/nnir.el19
2 files changed, 20 insertions, 0 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 25dd77cdf77..9ce574f0cc9 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/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 <larsi@gnus.org>
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 0a67f88f238..726b01564e7 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/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)