diff options
-rw-r--r-- | lisp/gnus/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/gnus/gnus.el | 17 |
2 files changed, 16 insertions, 6 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index f57268f110..9cd6879988 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2012-02-09 Lars Ingebrigtsen <[email protected]> + + * gnus.el (gnus-server-extend-method): Don't add an -address component + if the method already has one (bug#9676). + 2012-02-08 Lars Ingebrigtsen <[email protected]> * gnus-sum.el (gnus-summary-insert-old-articles): Use a default instead diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index f3826e9f50..76003f4eec 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -4123,12 +4123,17 @@ parameters." (if (or (not (inline (gnus-similar-server-opened method))) (not (cddr method))) method - (setq method - `(,(car method) ,(concat (cadr method) "+" group) - (,(intern (format "%s-address" (car method))) ,(cadr method)) - ,@(cddr method))) - (push method gnus-extended-servers) - method)) + (let ((address-slot + (intern (format "%s-address" (car method))))) + (setq method + (if (assq address-slot (cddr method)) + `(,(car method) ,(concat (cadr method) "+" group) + ,@(cddr method)) + `(,(car method) ,(concat (cadr method) "+" group) + (,address-slot ,(cadr method)) + ,@(cddr method)))) + (push method gnus-extended-servers) + method))) (defun gnus-server-status (method) "Return the status of METHOD." |