bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#37590: 27.0.50; gnus-group-set-info setcdr exception


From: dick
Subject: bug#37590: 27.0.50; gnus-group-set-info setcdr exception
Date: Wed, 02 Oct 2019 15:10:54 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

>From 92862ab4d7e9f8400229add13a6e16e437d6dbd3 Mon Sep 17 00:00:00 2001
From: dickmao <none>
Date: Wed, 2 Oct 2019 14:22:26 -0400
Subject: [PATCH] Avoid setcdr exception when gnus-newsrc-alist is empty

Exception occurs when using debbugs-gnu.
* lisp/gnus/gnus-group.el (gnus-group-set-info): check if
  gnus-newsrc-alist is a consp
---
 lisp/gnus/gnus-group.el | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 915125b655..bca5d35f24 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -4466,11 +4466,14 @@ gnus-group-set-info
                             (gnus-list-of-unread-articles (car info)))))
            ;; The above `setcar' will only affect the hashtable, not
            ;; the alist: update the alist separately.
-           (push info (cdr (setq gnus-newsrc-alist
-                                  (remove (assoc-string
-                                           (gnus-info-group info)
-                                           gnus-newsrc-alist)
-                                          gnus-newsrc-alist)))))
+            (setf (alist-get (car info)
+                             ;; avoid usurping dummy info at the head
+                             ;; of gnus-newsrc-alist
+                             (if (consp gnus-newsrc-alist)
+                                 (cdr gnus-newsrc-alist)
+                               gnus-newsrc-alist)
+                             nil nil #'equal)
+                  (cdr info)))
        (error "No such group: %s" (gnus-info-group info))))))
 
 ;; Ad-hoc function for inserting data from a different newsrc.eld
-- 
2.23.0






reply via email to

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