X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus.el;h=8548474fd3bb59ef8800d917c3d07d671ca636bc;hb=6910044663bc77081e08faabd6385cd34a9c8f5d;hp=19b19aaf78a99dc97a11cc0ab2cc2f49d58abbce;hpb=488a620a161d20e8610302c4ffa10926ee572778;p=gnus diff --git a/lisp/gnus.el b/lisp/gnus.el index 19b19aaf7..8548474fd 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -294,7 +294,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "0.2" +(defconst gnus-version-number "0.4" "Version number for this version of Gnus.") (defconst gnus-version (format "Ma Gnus v%s" gnus-version-number) @@ -2620,10 +2620,11 @@ a string, be sure to use a valid format, see RFC 2616." (scored . score) (saved . save) (cached . cache) (downloadable . download) (unsendable . unsend) (forwarded . forward) - (seen . seen))) + (seen . seen) (unexist . unexist))) (defconst gnus-article-special-mark-lists '((seen range) + (unexist range) (killed range) (bookmark tuple) (uid tuple) @@ -2638,7 +2639,7 @@ a string, be sure to use a valid format, see RFC 2616." ;; `score' is not a proper mark ;; `bookmark': don't propagated it, or fix the bug in update-mark. (defconst gnus-article-unpropagated-mark-lists - '(seen cache download unsend score bookmark) + '(seen cache download unsend score bookmark unexist) "Marks that shouldn't be propagated to back ends. Typical marks are those that make no sense in a standalone back end, such as a mark that says whether an article is stored in the cache @@ -3582,13 +3583,6 @@ that that variable is buffer-local to the summary buffers." gnus-valid-select-methods))) (equal (nth 1 m1) (nth 1 m2))))))) -(defun gnus-method-ephemeral-p (method) - (let ((equal nil)) - (dolist (ephemeral gnus-ephemeral-servers) - (when (gnus-sloppily-equal-method-parameters method ephemeral) - (setq equal t))) - equal)) - (defsubst gnus-sloppily-equal-method-parameters (m1 m2) ;; Check parameters for sloppy equality. (let ((p1 (copy-sequence (cddr m1))) @@ -3617,6 +3611,13 @@ that that variable is buffer-local to the summary buffers." ;; If p2 now is empty, they were equal. (null p2)))) +(defun gnus-method-ephemeral-p (method) + (let ((equal nil)) + (dolist (ephemeral gnus-ephemeral-servers) + (when (gnus-sloppily-equal-method-parameters method ephemeral) + (setq equal t))) + equal)) + (defun gnus-methods-sloppily-equal (m1 m2) ;; Same method. (or @@ -4124,12 +4125,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."