summaryrefslogtreecommitdiff
path: root/lisp/gnus
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/gnus')
-rw-r--r--lisp/gnus/ChangeLog22
-rw-r--r--lisp/gnus/gnus-registry.el14
-rw-r--r--lisp/gnus/gnus-start.el55
-rw-r--r--lisp/gnus/gnus-sum.el2
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))