emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r102611: nnir.el (nnir-request-expire


From: Katsumi Yamaoka
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r102611: nnir.el (nnir-request-expire-articles): New function.
Date: Wed, 08 Dec 2010 14:41:37 +0000
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 102611
author: Andrew Cohen <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Wed 2010-12-08 14:41:37 +0000
message:
  nnir.el (nnir-request-expire-articles): New function.
modified:
  lisp/gnus/ChangeLog
  lisp/gnus/nnir.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2010-12-08 13:49:49 +0000
+++ b/lisp/gnus/ChangeLog       2010-12-08 14:41:37 +0000
@@ -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  <address@hidden>
 

=== modified file 'lisp/gnus/nnir.el'
--- a/lisp/gnus/nnir.el 2010-12-08 13:49:49 +0000
+++ b/lisp/gnus/nnir.el 2010-12-08 14:41:37 +0000
@@ -687,6 +687,25 @@
          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)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]