Synch with Oort Gnus.
[elisp/gnus.git-] / lisp / nnagent.el
index a94a8fa..21b9f97 100644 (file)
 
 (deffoo nnagent-retrieve-headers (articles &optional group server fetch-old)
   (let ((file (gnus-agent-article-name ".overview" group))
-       arts n)
+       arts n first)
     (save-excursion
       (gnus-agent-load-alist group)
-      (setq arts (gnus-set-difference articles
-                                     (mapcar 'car gnus-agent-article-alist)))
+      (setq arts (gnus-sorted-difference
+                 articles (mapcar 'car gnus-agent-article-alist)))
+      ;; Assume that articles with smaller numbers than the first one
+      ;; Agent knows are gone.
+      (setq first (caar gnus-agent-article-alist))
+      (when first 
+       (while (and arts (< (car arts) first))
+         (pop arts)))
       (set-buffer nntp-server-buffer)
       (erase-buffer)
       (nnheader-insert-nov-file file (car articles))
        t)
       'nov)))
 
+(deffoo nnagent-request-expire-articles (articles group &optional server force)
+  articles)
+
 (deffoo nnagent-request-group (group &optional server dont-check)
   (nnoo-parent-function 'nnagent 'nnml-request-group
                        (list group (nnagent-server server) dont-check)))
   (nnoo-parent-function 'nnagent 'nnml-request-delete-group
                        (list group force (nnagent-server server))))
 
-(deffoo nnagent-request-expire-articles (articles group &optional server force)
-  (nnoo-parent-function 'nnagent 'nnml-request-expire-articles
-                       (list articles group (nnagent-server server) force)))
-
 (deffoo nnagent-request-list (&optional server)
   (nnoo-parent-function 'nnagent 'nnml-request-list
                        (list (nnagent-server server))))