[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/gnus-search 7f21251 29/30: Don't parse the address
From: |
Eric Abrahamsen |
Subject: |
[Emacs-diffs] scratch/gnus-search 7f21251 29/30: Don't parse the address: key |
Date: |
Thu, 1 Jun 2017 03:50:24 -0400 (EDT) |
branch: scratch/gnus-search
commit 7f21251a564b81a2825e1a8758785d7ab3a4fc35
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Don't parse the address: key
* lisp/gnus/gnus-search.el (gnus-search-query-parse-kv): Allow this
key to pass unmolested. Handle it in the individual search engines.
(gnus-search-query-parse-contact): Produce the "address" key as
necessary.
(gnus-search-transform-expression): Handle "address" key explicitly
in imap, notmuch, and namazu backends.
---
lisp/gnus/gnus-search.el | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el
index 4167582..af56c4b 100644
--- a/lisp/gnus/gnus-search.el
+++ b/lisp/gnus/gnus-search.el
@@ -594,8 +594,6 @@ in as a string, goes out as a symbol."
(setq value (gnus-search-query-parse-date value)))
((string-match-p "contact" key)
(setq return (gnus-search-query-parse-contact key value)))
- ((equal key "address")
- (setq return `(or (sender . ,value) (recipient . ,value))))
((equal key "mark")
(setq value (gnus-search-query-parse-mark value))))
(or return
@@ -702,7 +700,7 @@ chunk of query syntax."
("contact-to"
(list (cons 'recipient a)))
("contact"
- `(or (recipient . ,a) (sender . ,a)))))
+ (list (cons 'address a)))))
addresses)))))
(defun gnus-search-query-expand-key (key)
@@ -1278,6 +1276,12 @@ boolean instead."
(format
"to:%s or (cc:%s or bcc:%s)"
(cdr expr) (cdr expr) (cdr expr)))))
+ ((eq (car expr) 'address)
+ (gnus-search-transform
+ engine (gnus-search-parse-query
+ (format
+ "from:%s or (to:%s or (cc:%s or bcc:%s))"
+ (cdr expr) (cdr expr) (cdr expr) (cdr expr)))))
((memq (car expr) '(before since on sentbefore senton sentsince))
;; Ignore dates given as strings.
(when (listp (cdr expr))
@@ -1575,6 +1579,9 @@ fudges a relevancy score of 100."
;; for now.
((memq (car expr) '(subject from to))
(format "+%s:%s" (car expr) (cdr expr)))
+ ((eql (car expr) 'address)
+ (gnus-search-transform engine `((or (from . ,(cdr expr))
+ (to . ,(cdr expr))))))
((eq (car expr) 'id)
(format "+message-id:%s" (cdr expr)))
(t (ignore-errors (cl-call-next-method)))))
@@ -1627,6 +1634,7 @@ Namazu provides a little more information, for instance a
score."
;; Swap keywords as necessary.
(cl-case (car expr)
(sender (setcar expr 'from))
+ ;; Notmuch's "to" is already equivalent to our "recipient".
(recipient (setcar expr 'to))
(mark (setcar expr 'tag)))
;; Then actually format the results.
@@ -1646,7 +1654,10 @@ Namazu provides a little more information, for instance
a score."
(format "%d/%d/%d" m d y))))))
(cond
((consp (car expr))
- (format "(%s)") (gnus-search-transform engine expr))
+ (format "(%s)" (gnus-search-transform engine expr)))
+ ((eql (car expr) 'address)
+ (gnus-search-transform engine `((or (from . ,(cdr expr))
+ (to . ,(cdr expr))))))
((eql (car expr) 'body)
(cdr expr))
((memq (car expr) '(from to subject attachment mimetype tag id
- [Emacs-diffs] scratch/gnus-search 2ae2549 24/30: Fix bum namazu search command, (continued)
- [Emacs-diffs] scratch/gnus-search 2ae2549 24/30: Fix bum namazu search command, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 37e044f 19/30: Don't do any sorting at all in gnus-search, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 9c57f16 15/30: Some refactoring of gnus-search-run-query, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 09aff52 26/30: Do result limiting in the indexed engine process, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 371748d 22/30: Switch base massage-output method for indexed search engines, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 6a4dc13 09/30: WIP on documentation, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 79b5546 25/30: Add gnus-search-grep abstract engine, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 9eebc88 21/30: More comments, small improvements, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search e39079c 08/30: Remove Hyrex search engine, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search fcf327b 10/30: Add Mairix search engine, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 7f21251 29/30: Don't parse the address: key,
Eric Abrahamsen <=
- [Emacs-diffs] scratch/gnus-search 64bf8de 27/30: Messed up rebase, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 8ea8644 23/30: Refactor parsing of indexed search engine output, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search a43c410 13/30: Refactor parsing/no parsing of queries, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search a1cfb38 01/30: WIP on a generalized search query language for Gnus, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 66a7735 20/30: WIP on rebase, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 9965b9b 28/30: Restore IMAP ability to short-circuit message-id searches, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search 039df5e 30/30: Provide a bit more backward-compatibility, Eric Abrahamsen, 2017/06/01
- [Emacs-diffs] scratch/gnus-search a80b6f9 02/30: Rename nnir.el to gnus-search.el, Eric Abrahamsen, 2017/06/01