diff options
-rw-r--r-- | lisp/gnus/nnvirtual.el | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el index 50fb7b07dca..05db7591112 100644 --- a/lisp/gnus/nnvirtual.el +++ b/lisp/gnus/nnvirtual.el @@ -465,10 +465,7 @@ If UPDATE-P is not nil, call gnus-group-update-group on the components." "Merge many sorted lists of numbers." (if (null (cdr lists)) (car lists) - (apply 'nnvirtual-merge-sorted-lists - (merge 'list (car lists) (cadr lists) '<) - (cddr lists)))) - + (sort (apply 'nconc lists) '<))) ;;; We map between virtual articles and real articles in a manner @@ -626,8 +623,8 @@ the result." (setq entry (assoc (car article) carticles)) (setcdr entry (cons (cdr article) (cdr entry)))) (setq i (1+ i)))) - (mapc (lambda (x) (setcdr x (nreverse (cdr x)))) - carticles) + (mapcar (lambda (x) (setcdr x (nreverse (cdr x)))) + carticles) carticles)) @@ -732,7 +729,11 @@ based on the marks on the component groups." gnus-article-mark-lists)) ;; Remove any empty marks lists, and store. - (setq nnvirtual-mapping-marks (delete-if-not 'cdr marks)) + (setq nnvirtual-mapping-marks nil) + (while marks + (if (cdr (car marks)) + (push (car marks) nnvirtual-mapping-marks)) + (setq marks (cdr marks))) ;; We need to convert the unreads to reads. We compress the ;; sequence as we go, otherwise it could be huge. |