summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew G Cohen <cohen@andy.bu.edu>2021-12-19 06:11:50 +0800
committerAndrew G Cohen <cohen@andy.bu.edu>2021-12-19 06:11:50 +0800
commit35da3ed05212e0222841becf614c109011f9ad80 (patch)
tree415ecb885a6043e81c58e3524a4dc6f06a50cd87
parentf315d3121654ba5a752efbae3835af3e8b964f9f (diff)
downloademacs-35da3ed05212e0222841becf614c109011f9ad80.tar.gz
Fix gnus search by message-id
* lisp/gnus/gnus-search.el (gnus-search-run-search): Continue iterating until a match is found. * lisp/gnus/nnselect.el (nnselect-request-article): Use new gnus-search query format.
-rw-r--r--lisp/gnus/gnus-search.el2
-rw-r--r--lisp/gnus/nnselect.el5
2 files changed, 3 insertions, 4 deletions
diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el
index 46dc1cf6c1f..d64c0cb90c3 100644
--- a/lisp/gnus/gnus-search.el
+++ b/lisp/gnus/gnus-search.el
@@ -1060,7 +1060,7 @@ Responsible for handling and, or, and parenthetical expressions.")
q-string)))
(while (and (setq group (pop grouplist))
- (or (null single-search) (null artlist)))
+ (or (null single-search) (= 0 (length artlist))))
(when (nnimap-change-group
(gnus-group-short-name group) server)
(with-current-buffer (nnimap-buffer)
diff --git a/lisp/gnus/nnselect.el b/lisp/gnus/nnselect.el
index 252e9f66838..0130f689991 100644
--- a/lisp/gnus/nnselect.el
+++ b/lisp/gnus/nnselect.el
@@ -395,8 +395,7 @@ If this variable is nil, or if the provided function returns nil,
(gnus-search-run-query
(list
(cons 'search-query-spec
- (list (cons 'query `((id . ,article)))
- (cons 'criteria "") (cons 'shortcut t)))
+ (list (cons 'query (format "id:%s" article))))
(cons 'search-group-spec servers))))
(unless (zerop (nnselect-artlist-length artlist))
(setq
@@ -905,7 +904,7 @@ article came from is also searched."
;; make sure
(setq list
(sort (map-merge
- 'list list
+ 'alist list
(alist-get type (gnus-info-marks group-info)))
(lambda (elt1 elt2)
(< (car elt1) (car elt2))))))