X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-group.el;h=0c3346ac11565219801a3dbcf2f1c7af441a3ebf;hb=5beb390633ce1e32cdf319c6ba19926244bbfdf2;hp=682706fd3ecd538eb61a17b222bbd5e72464f610;hpb=c74543a3fef72a6a9cd00e34d981918c54306a18;p=gnus diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 682706fd3..0c3346ac1 100644 --- a/lisp/gnus-group.el +++ b/lisp/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)))) @@ -3638,6 +3643,10 @@ Uses the process/prefix convention." (expirable (if (gnus-group-total-expirable-p group) (cons nil (gnus-list-of-read-articles group)) (assq 'expire (gnus-info-marks info)))) + (articles-to-expire + (gnus-list-range-difference + (gnus-uncompress-sequence (cdr expirable)) + (cdr (assq 'unexist (gnus-info-marks info))))) (expiry-wait (gnus-group-find-parameter group 'expiry-wait)) (nnmail-expiry-target (or (gnus-group-find-parameter group 'expiry-target) @@ -3652,11 +3661,9 @@ Uses the process/prefix convention." ;; parameter. (let ((nnmail-expiry-wait-function nil) (nnmail-expiry-wait expiry-wait)) - (gnus-request-expire-articles - (gnus-uncompress-sequence (cdr expirable)) group)) + (gnus-request-expire-articles articles-to-expire group)) ;; Just expire using the normal expiry values. - (gnus-request-expire-articles - (gnus-uncompress-sequence (cdr expirable)) group)))) + (gnus-request-expire-articles articles-to-expire group)))) (gnus-close-group group)) (gnus-message 6 "Expiring articles in %s...done" (gnus-group-decoded-name group)) @@ -4072,10 +4079,7 @@ If DONT-SCAN is non-nil, scan non-activated groups as well." (gnus-agent-save-group-info method (gnus-group-real-name group) active)) (gnus-group-update-group group nil t)) - (if (eq (gnus-server-status (gnus-find-method-for-group group)) - 'denied) - (gnus-error 3 "Server previously determined to be down; not retrying") - (gnus-error 3 "%s error: %s" group (gnus-status-message group))))) + (gnus-error 3 "%s error: %s" group (gnus-status-message group)))) (when beg (goto-char beg)) (when gnus-goto-next-group-when-activating