* gnus-srvr.el (gnus-browse-unsubscribe-group): Don't subscribe
authorAndreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
Sat, 17 Jun 2006 05:33:59 +0000 (05:33 +0000)
committerAndreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
Sat, 17 Jun 2006 05:33:59 +0000 (05:33 +0000)
unsubscribed groups as if they were killed ones.  It causes duplicate
entries in gnus-newsrc-alist.

lisp/ChangeLog
lisp/gnus-srvr.el

index 7520675..a340350 100644 (file)
@@ -1,3 +1,9 @@
+2006-06-17  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
+
+       * gnus-srvr.el (gnus-browse-unsubscribe-group): Don't subscribe
+       unsubscribed groups as if they were killed ones.  It causes duplicate
+       entries in gnus-newsrc-alist.
+
 2006-06-16  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * message.el (message-syntax-checks): Doc fix.
index f92b1ac..f858513 100644 (file)
@@ -958,18 +958,22 @@ If NUMBER, fetch this number of articles."
          (progn
            ;; Make sure the group has been properly removed before we
            ;; subscribe to it.
-           (gnus-kill-ephemeral-group group)
+           (if (gnus-ephemeral-group-p group)
+               (gnus-kill-ephemeral-group group))
+           ;; We need to discern between killed/zombie groups and
+           ;; just unsubscribed ones.
            (gnus-group-change-level
-            (list t group gnus-level-default-subscribed
-                  nil nil (if (gnus-server-equal
-                               gnus-browse-current-method "native")
-                              nil
-                            (gnus-method-simplify
-                             gnus-browse-current-method)))
+            (or (gnus-group-entry group)
+                (list t group gnus-level-default-subscribed
+                      nil nil (if (gnus-server-equal
+                                   gnus-browse-current-method "native")
+                                  nil
+                                (gnus-method-simplify
+                                 gnus-browse-current-method))))
             gnus-level-default-subscribed (gnus-group-level group)
             (and (car (nth 1 gnus-newsrc-alist))
                  (gnus-group-entry (car (nth 1 gnus-newsrc-alist))))
-            t)
+            (null (gnus-group-entry group)))
            (delete-char 1)
            (insert ? ))
        (gnus-group-change-level