diff options
| author | Andrew Cohen <cohen@andy.bu.edu> | 2011-07-20 14:19:52 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2011-07-20 14:19:52 +0000 |
| commit | af92e2477221da81020ea620dc25cb8eaef5c51f (patch) | |
| tree | 7c2279738a5967a1dfd679d4d6839b1b59efca65 /lisp/gnus/nnimap.el | |
| parent | 8ca422621c3a1c366f589f430f496d586e11e509 (diff) | |
| download | emacs-af92e2477221da81020ea620dc25cb8eaef5c51f.tar.gz | |
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/gnus/nnimap.el')
| -rw-r--r-- | lisp/gnus/nnimap.el | 42 |
1 files changed, 23 insertions, 19 deletions
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 |
