Synch with Oort Gnus.
authoryamaoka <yamaoka>
Thu, 19 Dec 2002 10:34:28 +0000 (10:34 +0000)
committeryamaoka <yamaoka>
Thu, 19 Dec 2002 10:34:28 +0000 (10:34 +0000)
lisp/ChangeLog
lisp/gnus-int.el

index 02bb169..bde52f9 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-18  Paul Jarc  <prj@po.cwru.edu>
+
+       * gnus-int.el (gnus-request-update-info): Artificially add
+       (1 . (1- min)) to the read range, in case the backend doesn't
+       store marks for nonexistent articles.
+
 2002-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * binhex.el (binhex-insert-char): Eval-and-compile.
index 6c2f436..adb794a 100644 (file)
@@ -484,9 +484,20 @@ If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned."
     (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
   (when (gnus-check-backend-function
         'request-update-info (car gnus-command-method))
-    (funcall (gnus-get-function gnus-command-method 'request-update-info)
-            (gnus-group-real-name (gnus-info-group info))
-            info (nth 1 gnus-command-method))))
+    (let* ((group (gnus-info-group info))
+           (result (funcall (gnus-get-function gnus-command-method
+                                               'request-update-info)
+                            (gnus-group-real-name group)
+                            info (nth 1 gnus-command-method))))
+      (when result ;; artificially add nonexistent articles to the read range
+        (let* ((active (gnus-active group))
+               (min (car active)))
+          (when (> min 1) ;; otherwise, there are no known nonexistent articles
+            (let* ((range (if (= min 2) 1 (cons 1 (1- min))))
+                   (read (gnus-info-read result))
+                   (new-read (gnus-range-add read (list range))))
+              (gnus-info-set-read result new-read)))))
+      result)))
 
 (defun gnus-request-expire-articles (articles group &optional force)
   (let* ((gnus-command-method (gnus-find-method-for-group group))