aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Cohen2011-07-20 14:19:52 +0000
committerKatsumi Yamaoka2011-07-20 14:19:52 +0000
commitaf92e2477221da81020ea620dc25cb8eaef5c51f (patch)
tree7c2279738a5967a1dfd679d4d6839b1b59efca65
parent8ca422621c3a1c366f589f430f496d586e11e509 (diff)
downloademacs-af92e2477221da81020ea620dc25cb8eaef5c51f.tar.gz
emacs-af92e2477221da81020ea620dc25cb8eaef5c51f.zip
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.
-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 @@
12011-07-20 Andrew Cohen <cohen@andy.bu.edu>
2
3 * nnimap.el (nnimap-make-thread-query): New utility function to format
4 an imap thread search query.
5 (nnimap-request-thread): Use it.
6
7 * gnus-sum.el (gnus-handle-ephemeral-exit): Ensure we are setting the
8 right select-method if we are not going back to the group buffer.
9
12011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org> 102011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 11
3 * gnus-group.el (gnus-group-read-ephemeral-group): Make sure we don't 12 * 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."
7339 (if (not (buffer-name (car quit-config))) 7339 (if (not (buffer-name (car quit-config)))
7340 (gnus-configure-windows 'group 'force) 7340 (gnus-configure-windows 'group 'force)
7341 (set-buffer (car quit-config)) 7341 (set-buffer (car quit-config))
7342 (unless (eq (cdr quit-config) 'group)
7343 (setq gnus-current-select-method
7344 (gnus-find-method-for-group gnus-newsgroup-name)))
7342 (cond ((eq major-mode 'gnus-summary-mode) 7345 (cond ((eq major-mode 'gnus-summary-mode)
7343 (gnus-set-global-variables)) 7346 (gnus-set-global-variables))
7344 ((eq major-mode 'gnus-article-mode) 7347 ((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.")
1567 1567
1568(deffoo nnimap-request-thread (header &optional group server) 1568(deffoo nnimap-request-thread (header &optional group server)
1569 (when (nnimap-possibly-change-group group server) 1569 (when (nnimap-possibly-change-group group server)
1570 (let* ((id (mail-header-id header)) 1570 (let* ((cmd (nnimap-make-thread-query header))
1571 (refs (split-string 1571 (result (with-current-buffer (nnimap-buffer)
1572 (or (mail-header-references header) 1572 (nnimap-command "UID SEARCH %s" cmd))))
1573 ""))) 1573 (when result
1574 (cmd (let ((value 1574 (gnus-fetch-headers
1575 (format 1575 (and (car result) (delete 0 (mapcar #'string-to-number
1576 "(OR HEADER REFERENCES %s HEADER Message-Id %s)" 1576 (cdr (assoc "SEARCH" (cdr result))))))
1577 id id))) 1577 nil t)))))
1578 (dolist (refid refs value)
1579 (setq value (format
1580 "(OR (OR HEADER Message-Id %s HEADER REFERENCES %s) %s)"
1581 refid refid value)))))
1582 (result (with-current-buffer (nnimap-buffer)
1583 (nnimap-command "UID SEARCH %s" cmd))))
1584 (when result
1585 (gnus-fetch-headers
1586 (and (car result) (delete 0 (mapcar #'string-to-number
1587 (cdr (assoc "SEARCH" (cdr result))))))
1588 nil t)))))
1589 1578
1590(defun nnimap-possibly-change-group (group server) 1579(defun nnimap-possibly-change-group (group server)
1591 (let ((open-result t)) 1580 (let ((open-result t))
@@ -1951,6 +1940,21 @@ textual parts.")
1951 group-art)) 1940 group-art))
1952 nnimap-incoming-split-list))) 1941 nnimap-incoming-split-list)))
1953 1942
1943(defun nnimap-make-thread-query (header)
1944 (let* ((id (mail-header-id header))
1945 (refs (split-string
1946 (or (mail-header-references header)
1947 "")))
1948 (value
1949 (format
1950 "(OR HEADER REFERENCES %s HEADER Message-Id %s)"
1951 id id)))
1952 (dolist (refid refs value)
1953 (setq value (format
1954 "(OR (OR HEADER Message-Id %s HEADER REFERENCES %s) %s)"
1955 refid refid value)))))
1956
1957
1954(provide 'nnimap) 1958(provide 'nnimap)
1955 1959
1956;;; nnimap.el ends here 1960;;; nnimap.el ends here