summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorAndrew Cohen <cohen@andy.bu.edu>2011-07-20 14:19:52 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2011-07-20 14:19:52 +0000
commitaf92e2477221da81020ea620dc25cb8eaef5c51f (patch)
tree7c2279738a5967a1dfd679d4d6839b1b59efca65 /lisp
parent8ca422621c3a1c366f589f430f496d586e11e509 (diff)
Merge changes made in Gnus trunk.
nnimap.el (nnimap-make-thread-query): New utility function to format an imap thread search query. (nnimap-request-thread): Use it. gnus-sum.el (gnus-handle-ephemeral-exit): Ensure we are setting the right select-method if we are not going back to the group buffer.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/gnus/ChangeLog9
-rw-r--r--lisp/gnus/gnus-sum.el3
-rw-r--r--lisp/gnus/nnimap.el42
3 files changed, 35 insertions, 19 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index d18be47fb9d..3dc1fe142bf 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,12 @@
+2011-07-20 Andrew Cohen <cohen@andy.bu.edu>
+
+ * nnimap.el (nnimap-make-thread-query): New utility function to format
+ an imap thread search query.
+ (nnimap-request-thread): Use it.
+
+ * gnus-sum.el (gnus-handle-ephemeral-exit): Ensure we are setting the
+ right select-method if we are not going back to the group buffer.
+
2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-group.el (gnus-group-read-ephemeral-group): Make sure we don't
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 86ff0180f55..6e8fc63d79f 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -7339,6 +7339,9 @@ The state which existed when entering the ephemeral is reset."
(if (not (buffer-name (car quit-config)))
(gnus-configure-windows 'group 'force)
(set-buffer (car quit-config))
+ (unless (eq (cdr quit-config) 'group)
+ (setq gnus-current-select-method
+ (gnus-find-method-for-group gnus-newsgroup-name)))
(cond ((eq major-mode 'gnus-summary-mode)
(gnus-set-global-variables))
((eq major-mode 'gnus-article-mode)
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index ef5bee71629..385522759b6 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -1567,25 +1567,14 @@ textual parts.")
(deffoo nnimap-request-thread (header &optional group server)
(when (nnimap-possibly-change-group group server)
- (let* ((id (mail-header-id header))
- (refs (split-string
- (or (mail-header-references header)
- "")))
- (cmd (let ((value
- (format
- "(OR HEADER REFERENCES %s HEADER Message-Id %s)"
- id id)))
- (dolist (refid refs value)
- (setq value (format
- "(OR (OR HEADER Message-Id %s HEADER REFERENCES %s) %s)"
- refid refid value)))))
- (result (with-current-buffer (nnimap-buffer)
- (nnimap-command "UID SEARCH %s" cmd))))
- (when result
- (gnus-fetch-headers
- (and (car result) (delete 0 (mapcar #'string-to-number
- (cdr (assoc "SEARCH" (cdr result))))))
- nil t)))))
+ (let* ((cmd (nnimap-make-thread-query header))
+ (result (with-current-buffer (nnimap-buffer)
+ (nnimap-command "UID SEARCH %s" cmd))))
+ (when result
+ (gnus-fetch-headers
+ (and (car result) (delete 0 (mapcar #'string-to-number
+ (cdr (assoc "SEARCH" (cdr result))))))
+ nil t)))))
(defun nnimap-possibly-change-group (group server)
(let ((open-result t))
@@ -1951,6 +1940,21 @@ textual parts.")
group-art))
nnimap-incoming-split-list)))
+(defun nnimap-make-thread-query (header)
+ (let* ((id (mail-header-id header))
+ (refs (split-string
+ (or (mail-header-references header)
+ "")))
+ (value
+ (format
+ "(OR HEADER REFERENCES %s HEADER Message-Id %s)"
+ id id)))
+ (dolist (refid refs value)
+ (setq value (format
+ "(OR (OR HEADER Message-Id %s HEADER REFERENCES %s) %s)"
+ refid refid value)))))
+
+
(provide 'nnimap)
;;; nnimap.el ends here