diff options
Diffstat (limited to 'lisp/gnus')
-rw-r--r-- | lisp/gnus/ChangeLog | 22 | ||||
-rw-r--r-- | lisp/gnus/gnus-registry.el | 14 | ||||
-rw-r--r-- | lisp/gnus/gnus-start.el | 55 | ||||
-rw-r--r-- | lisp/gnus/gnus-sum.el | 2 |
4 files changed, 63 insertions, 30 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 5f0589adc8e..b7e540bdf89 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,5 +1,27 @@ +2011-04-12 Teodor Zlatanov <tzz@lifelogs.com> + + * gnus-registry.el (gnus-registry--split-fancy-with-parent-internal): + Fix logic bug. + (gnus-registry-post-process-groups): Fix logging of no results and + quote sender and subject. + +2011-04-12 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-start.el (gnus-get-unread-articles): Slight cleanup. + (gnus-read-active-for-groups): Don't try to finish getting stuff where + we had no early-data returned. + (gnus-get-unread-articles): Add a sanity check so that we don't issue + two async commands to the same server at the same time. + +2011-04-12 Stig Sandbeck Mathisen <ssm@fnord.no> (tiny change) + + * gnus-sum.el (gnus-summary-select-article-buffer): Doc fix. + 2011-04-12 Lars Magne Ingebrigtsen <larsi@gnus.org> + * gnus-registry.el (gnus-registry-remake-db): Put the warning on a + "warning" level. + * mm-url.el (mm-url-package-name): Removed to ease third-party reuse. (mm-url-insert-file-contents): Don't set the package names. diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 8847dacd77c..680a3b294a2 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -258,7 +258,7 @@ the Bit Bucket." This is not required after changing `gnus-registry-cache-file'." (interactive (list (y-or-n-p "Remake and CLEAR the Gnus registry? "))) (when forsure - (gnus-message 1 "Remaking the Gnus registry") + (gnus-message 4 "Remaking the Gnus registry") (setq gnus-registry-db (gnus-registry-make-db)))) (defun gnus-registry-read () @@ -428,9 +428,9 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." (when (and (null found) (memq 'sender gnus-registry-track-extra) sender - (gnus-grep-in-list - sender - gnus-registry-unfollowed-addresses)) + (not (gnus-grep-in-list + sender + gnus-registry-unfollowed-addresses))) (let ((groups (apply 'append (mapcar @@ -564,12 +564,12 @@ possible. Uses `gnus-registry-split-strategy'." ((null out) (gnus-message 5 - "%s: no matches for %s %s." - log-agent out mode key) + "%s: no matches for %s '%s'." + log-agent mode key) nil) (t (gnus-message 5 - "%s: too many extra matches (%s) for %s %s. Returning none." + "%s: too many extra matches (%s) for %s '%s'. Returning none." log-agent out mode key) nil)))) diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index d9d218c6cba..e3b0089cea9 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -1699,33 +1699,43 @@ If SCAN, request a scan of that group as well." (gnus-read-active-file-1 method nil)))) ;; Start early async retrieval of data. - (dolist (elem type-cache) - (destructuring-bind (method method-type infos dummy) elem - (when (and method infos - (not (gnus-method-denied-p method))) - ;; If the open-server method doesn't exist, then the method - ;; itself doesn't exist, so we ignore it. - (if (not (ignore-errors (gnus-get-function method 'open-server))) - (setq type-cache (delq elem type-cache)) - (unless (gnus-server-opened method) - (gnus-open-server method)) - (when (and - (gnus-server-opened method) - (gnus-check-backend-function - 'retrieve-group-data-early (car method))) - (when (gnus-check-backend-function 'request-scan (car method)) - (gnus-request-scan nil method)) - ;; Store the token we get back from -early so that we - ;; can pass it to -finish later. - (setcar (nthcdr 3 elem) - (gnus-retrieve-group-data-early method infos))))))) + (let ((done-methods nil) + sanity-spec) + (dolist (elem type-cache) + (destructuring-bind (method method-type infos dummy) elem + (setq sanity-spec (list (car method) (cadr method))) + (when (and method infos + (not (gnus-method-denied-p method))) + ;; If the open-server method doesn't exist, then the method + ;; itself doesn't exist, so we ignore it. + (if (not (ignore-errors (gnus-get-function method 'open-server))) + (setq type-cache (delq elem type-cache)) + (unless (gnus-server-opened method) + (gnus-open-server method)) + (when (and + ;; This is a sanity check, so that we never + ;; attempt to start two async requests to the + ;; same server, because that will fail. This + ;; should never happen, since the methods should + ;; be unique at this point, but apparently it + ;; does happen in the wild with some setups. + (not (member sanity-spec done-methods)) + (gnus-server-opened method) + (gnus-check-backend-function + 'retrieve-group-data-early (car method))) + (push sanity-spec done-methods) + (when (gnus-check-backend-function 'request-scan (car method)) + (gnus-request-scan nil method)) + ;; Store the token we get back from -early so that we + ;; can pass it to -finish later. + (setcar (nthcdr 3 elem) + (gnus-retrieve-group-data-early method infos)))))))) ;; Do the rest of the retrieval. (dolist (elem type-cache) (destructuring-bind (method method-type infos early-data) elem (when (and method infos - (not (eq (gnus-server-status method) - 'denied))) + (not (gnus-method-denied-p method))) (let ((updatep (gnus-check-backend-function 'request-update-info (car method)))) ;; See if any of the groups from this method require updating. @@ -1763,6 +1773,7 @@ If SCAN, request a scan of that group as well." ;; Finish up getting the data from the methods that have -early ;; methods. ((and + early-data (gnus-check-backend-function 'finish-retrieve-group-infos (car method)) (or (not (gnus-agent-method-p method)) (gnus-online method))) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index e3ae1d7f528..d023bc5bb63 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -7035,7 +7035,7 @@ displayed, no centering will be performed." (defun gnus-summary-select-article-buffer () "Reconfigure windows to show the article buffer. -If `gnus-widen-article-buffer' is set, show only the article +If `gnus-widen-article-window' is set, show only the article buffer." (interactive) (if (not (gnus-buffer-live-p gnus-article-buffer)) |