From c57a6644ef97b3197c35c0c3ade60acd5607eef4 Mon Sep 17 00:00:00 2001 From: Eric Abrahamsen Date: Fri, 6 May 2022 10:14:08 -0700 Subject: [PATCH] Fix handling of IMAP search strings * lisp/gnus/gnus-search.el (gnus-search-imap-handle-string): This was a misunderstanding of what `multibyte-string-p' means. The check was actually supposed to be whether the string was non-ascii or not. --- lisp/gnus/gnus-search.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el index 17724c3a514..369df81d9bd 100644 --- a/lisp/gnus/gnus-search.el +++ b/lisp/gnus/gnus-search.el @@ -1337,7 +1337,11 @@ elements are present." (cl-defmethod gnus-search-imap-handle-string ((engine gnus-search-imap) (str string)) (with-slots (literal-plus) engine - (if (multibyte-string-p str) + ;; TODO: Figure out how Exchange IMAP servers actually work. They + ;; do not accept any CHARSET but US-ASCII, but they do report + ;; Literal+ capability. So what do we do? Will quoted strings + ;; always work? + (if (string-match-p "[^[:ascii:]]" str) ;; If LITERAL+ is available, use it and encode string as ;; UTF-8. (if literal-plus -- 2.39.2