aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/gnus
diff options
context:
space:
mode:
authorLars Ingebrigtsen <[email protected]>2012-02-02 11:07:55 +0000
committerKatsumi Yamaoka <[email protected]>2012-02-02 11:07:55 +0000
commitdc637e3d377f3d49f3c6270616a763742e79f167 (patch)
tree3a36f82861b4bce75a38d1ff3d18933488d81718 /lisp/gnus
parent6631d4b6357f3f914f90d791035eeb78c979144d (diff)
gnus-group.el (gnus-group-read-ephemeral-group): Don't add a new address parameter if one already exists (bug#9676).
Diffstat (limited to 'lisp/gnus')
-rw-r--r--lisp/gnus/ChangeLog3
-rw-r--r--lisp/gnus/gnus-group.el13
2 files changed, 12 insertions, 4 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index b53fccb649..793540fd01 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,5 +1,8 @@
2012-02-02 Lars Ingebrigtsen <[email protected]>
+ * gnus-group.el (gnus-group-read-ephemeral-group): Don't add a new
+ address parameter if one already exists (bug#9676).
+
* gnus-msg.el (gnus-summary-mail-forward): Respect the process marks,
not the prefix, as documented (bug#10689).
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 60522839a9..f97d9a69ea 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -2295,10 +2295,15 @@ Return the name of the group if selection was successful."
(gnus-no-server))
(when (stringp method)
(setq method (gnus-server-to-method method)))
- (setq method
- `(,(car method) ,(concat (cadr method) "-ephemeral")
- (,(intern (format "%s-address" (car method))) ,(cadr method))
- ,@(cddr method)))
+ (let ((address-slot
+ (intern (format "%s-address" (car method)))))
+ (setq method
+ (if (assq address-slot (cddr method))
+ `(,(car method) ,(concat (cadr method) "-ephemeral")
+ ,@(cddr method))
+ `(,(car method) ,(concat (cadr method) "-ephemeral")
+ (,address-slot ,(cadr method))
+ ,@(cddr method)))))
(let ((group (if (gnus-group-foreign-p group) group
(gnus-group-prefixed-name (gnus-group-real-name group)
method))))