]> git.eshelyaron.com Git - emacs.git/commitdiff
Handle negation of search keys in gnus-search minibuffer completion
authorEric Abrahamsen <eric@ericabrahamsen.net>
Sat, 14 Nov 2020 21:19:47 +0000 (13:19 -0800)
committerEric Abrahamsen <eric@ericabrahamsen.net>
Sat, 14 Nov 2020 21:22:13 +0000 (13:22 -0800)
* lisp/gnus/gnus-search.el (gnus-search-get-active): Keys might start
with a leading "-": check for that and ignore it.

lisp/gnus/gnus-search.el

index 17f1108029c5186567ed9efb5b3c2515ffe51388..498da200dabd3236fdc6f2906f47db09c5bfbd74 100644 (file)
@@ -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"))))