diff options
author | Eric Abrahamsen <eric@ericabrahamsen.net> | 2021-06-25 20:42:16 -0700 |
---|---|---|
committer | Eric Abrahamsen <eric@ericabrahamsen.net> | 2021-06-25 20:42:16 -0700 |
commit | 4d63a033a726a8da33bda8d18a503e88bfb794fb (patch) | |
tree | 8d55f6f11ff292ef684e87528b795eca0f4f794a /lisp/gnus/gnus-search.el | |
parent | f2729dd8ee0cad67ea2ab0411526f9bc4a7b2c9a (diff) | |
download | emacs-4d63a033a726a8da33bda8d18a503e88bfb794fb.tar.gz |
Small improvements to handling of IMAP mark search
* lisp/gnus/gnus-search.el (gnus-search-imap-handle-flag): Use a
KEYWORD search for any mark starting with a "$", so
"mark:$hasattachment" goes through as "KEYWORD $hasattachment".
Diffstat (limited to 'lisp/gnus/gnus-search.el')
-rw-r--r-- | lisp/gnus/gnus-search.el | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el index fc9f8684f63..70bde264c11 100644 --- a/lisp/gnus/gnus-search.el +++ b/lisp/gnus/gnus-search.el @@ -1278,17 +1278,23 @@ elements are present." str))) (defun gnus-search-imap-handle-flag (flag) - "Make sure string FLAG is something IMAP will recognize." - ;; What else? What about the KEYWORD search key? + "Adjust string FLAG to help IMAP recognize it. +If it's one of the RFC3501 flags, make sure it's upcased. +Otherwise, if FLAG starts with a \"$\", treat as a KEYWORD +search. Otherwise, drop the flag." (setq flag (pcase flag ("flag" "flagged") ("read" "seen") ("replied" "answered") (_ flag))) - (if (member flag '("seen" "answered" "deleted" "draft" "flagged")) - (upcase flag) - "")) + (cond + ((member flag '("seen" "answered" "deleted" "draft" "flagged" "recent")) + (upcase flag)) + ((string-prefix-p "$" flag) + (format "KEYWORD %s" flag)) + ;; TODO: Provide a user option to treat *all* marks as a KEYWORDs? + (t ""))) ;;; Methods for the indexed search engines. |