summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2026-03-18 04:24:52 +0200
committerDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2026-04-17 23:42:17 +0300
commit6fdff414f259776516e7841b2ac4a9cfb03a0613 (patch)
tree03418aa082ce8bba1f908fc7b3ff0c98d04af8f6
parent61eebff31cdd02a5808af52abefc6b801241d372 (diff)
mu4e-draft: handle corner-case decoding issue
When there are raw utf-8 headers. Should help for #2722.
-rw-r--r--mu4e/mu4e-draft.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/mu4e/mu4e-draft.el b/mu4e/mu4e-draft.el
index ac33383..a5ea9f9 100644
--- a/mu4e/mu4e-draft.el
+++ b/mu4e/mu4e-draft.el
@@ -322,6 +322,12 @@ With HEADERS-ONLY non-nil, only include the headers part."
(insert (format "Message-Id: <%s>\n" (plist-get msg :message-id))))
(mu4e--delimit-headers 'undelimit)
(ignore-errors (run-hooks 'gnus-article-decode-hook))
+ ;; If the buffer is still unibyte after decoding (e.g., message has raw
+ ;; UTF-8 headers that are not RFC-2047-enxcoded), decode remaining bytes as
+ ;; UTF-8 so they don't show as octal escapes (\303\251 etc.) in reply
+ ;; buffers. #2722.
+ (unless enable-multibyte-characters
+ (decode-coding-region (point-min) (point-max) 'utf-8))
(buffer-substring-no-properties (point-min) (point-max))))
(defvar mu4e--draft-buffer-max-name-length 48)