*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 01:47:00 +0000 (01:47 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 01:47:00 +0000 (01:47 +0000)
lisp/gnus.el
lisp/nnvirtual.el

index 4470402..7a6ae12 100644 (file)
@@ -1200,7 +1200,7 @@ variable (string, integer, character, etc).")
 (defconst gnus-maintainer "Lars Magne Ingebrigtsen <larsi@ifi.uio.no>"
   "The mail address of the Gnus maintainer.")
 
-(defconst gnus-version "(ding) Gnus v0.43"
+(defconst gnus-version "(ding) Gnus v0.44"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -2472,7 +2472,8 @@ Note: LIST has to be sorted over `<'."
 (defun gnus-add-to-range-old (ranges list)
   "Return a list of ranges that has all articles from both RANGES and LIST.
 Note: LIST has to be sorted over `<'."
-  (let* ((ranges (if (and ranges (atom (car ranges))) (list ranges) ranges))
+  (let* ((ranges (if (and ranges (not (listp (cdr ranges))))
+                    (list ranges) ranges))
         (inrange ranges)
         did-one
         range nranges first last)
@@ -6168,7 +6169,7 @@ displayed, no centering will be performed."
       ;; If the range of read articles is a single range, then the
       ;; first unread article is the article after the last read
       ;; article. Sounds logical, doesn't it?
-      (if (atom (car read))
+      (if (not (listp (cdr read)))
          (setq first (1+ (cdr read)))
        ;; `read' is a list of ranges.
        (while read
@@ -12079,7 +12080,7 @@ newsgroup."
           (setq num 0))
          ((not range)
           (setq num (- (1+ (cdr active)) (car active))))
-         ((atom (car range))
+         ((not (listp (cdr range)))
           ;; Fix a single (num . num) range according to the
           ;; active hash table.
           (and (< (cdr range) (car active)) (setcdr range (car active)))
@@ -12096,7 +12097,15 @@ newsgroup."
                       (>= (car active) 
                           (or (and (atom (car (cdr range))) (car (cdr range)))
                               (car (car (cdr range))))))
-            (setcdr (car range) (cdr (car (cdr range))))
+            (if (numberp (car range))
+                (setcar range 
+                        (cons (car range) 
+                              (or (and (numberp (car (cdr range)))
+                                       (car (cdr range))) 
+                                  (cdr (car (cdr range))))))
+              (setcdr (car range) 
+                      (or (and (numberp (nth 1 range)) (nth 1 range))
+                          (cdr (car (cdr range))))))
             (setcdr range (cdr (cdr range))))
           ;; Adjust the first element to be the same as the lower limit. 
           (if (and (not (atom (car range))) 
index bc7be82..71e80c0 100644 (file)
@@ -304,18 +304,25 @@ If the stream is opened, return T, otherwise return NIL."
          (setq itotal (1+ (- (cdr active) (car active))))
          (if (setq ireads (nth 2 info))
              (let ((itreads
-                    (if (atom (car ireads)) 
+                    (if (not (listp (cdr ireads)))
                         (setq ireads (list (cons (car ireads) (cdr ireads))))
                       (setq ireads (copy-alist ireads)))))
-               (if (< (cdr (car ireads)) (car active))
+               (if (< (or (and (numberp (car ireads)) (car ireads))
+                          (cdr (car ireads))) (car active))
                    (setq ireads (setq itreads (cdr ireads))))
-               (if (and ireads (< (car (car ireads)) (car active)))
-                   (setcar (car ireads) (1+ (car active))))
+               (if (and ireads (< (or (and (numberp (car ireads))
+                                           (car ireads))
+                                      (car (car ireads))) (car active)))
+                   (setcar (or (and (numberp (car ireads)) ireads)
+                               (car ireads)) (1+ (car active))))
                (while itreads
-                 (setcar (car itreads)
-                         (+ (- (car (car itreads)) (car active)) offset))
-                 (setcdr (car itreads)
-                         (+ (- (cdr (car itreads)) (car active)) offset))
+                 (setcar (or (and (numberp (car itreads)) itreads)
+                             (car itreads))
+                         (+ (- (or (and (numberp (car itreads)) (car itreads))
+                                   (car (car itreads))) (car active)) offset))
+                 (if (not (numberp (car itreads)))
+                     (setcdr (car itreads)
+                             (+ (- (cdr (car itreads)) (car active)) offset)))
                  (setq itreads (cdr itreads)))
                (setq reads (nconc reads ireads))))
          (setq offset (+ offset (1- itotal)))