summaryrefslogtreecommitdiff
path: root/lisp/gnus/gnus-search.el
diff options
context:
space:
mode:
authorEric Abrahamsen <eric@ericabrahamsen.net>2020-11-14 13:19:47 -0800
committerEric Abrahamsen <eric@ericabrahamsen.net>2020-11-14 13:22:13 -0800
commitab417cf64d15fb6f6620b45e31c249baec49f3a8 (patch)
treeeecdaaf9cda60211083c08e7f7fcc743969d738f /lisp/gnus/gnus-search.el
parentad29bc74ca9d4e1768698d4002b49c234624e359 (diff)
downloademacs-ab417cf64d15fb6f6620b45e31c249baec49f3a8.tar.gz
emacs-ab417cf64d15fb6f6620b45e31c249baec49f3a8.tar.bz2
emacs-ab417cf64d15fb6f6620b45e31c249baec49f3a8.zip
Handle negation of search keys in gnus-search minibuffer completion
* lisp/gnus/gnus-search.el (gnus-search-get-active): Keys might start with a leading "-": check for that and ignore it.
Diffstat (limited to 'lisp/gnus/gnus-search.el')
-rw-r--r--lisp/gnus/gnus-search.el9
1 files changed, 5 insertions, 4 deletions
diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el
index 17f1108029c..498da200dab 100644
--- a/lisp/gnus/gnus-search.el
+++ b/lisp/gnus/gnus-search.el
@@ -2101,9 +2101,10 @@ article came from is also searched."
(defun gnus-search--complete-key-data ()
"Potentially return completion data for a search key or value."
(let* ((key-start (save-excursion
- (if (re-search-backward " " (minibuffer-prompt-end) t)
- (1+ (point))
- (minibuffer-prompt-end))))
+ (or (re-search-backward " " (minibuffer-prompt-end) t)
+ (goto-char (minibuffer-prompt-end)))
+ (skip-chars-forward " -")
+ (point)))
(after-colon (save-excursion
(when (re-search-backward ":" key-start t)
(1+ (point)))))
@@ -2113,7 +2114,7 @@ article came from is also searched."
;; only handle in a contact-completion context.
(when (and gnus-search-contact-tables
(save-excursion
- (re-search-backward "\\<\\(\\w+\\):" key-start t)
+ (re-search-backward "\\<-?\\(\\w+\\):" key-start t)
(member (match-string 1)
'("from" "to" "cc"
"bcc" "recipient" "address"))))