summaryrefslogtreecommitdiff
path: root/mu4e
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-03-18 04:24:52 +0200
commit60cf77b8c2b12da327aaa92ea27ad7e3a1752c73 (patch)
tree7fd55a07ac782a5a18d568ceb2a13c1718f803bc /mu4e
parent9ee49f0657d0bdaecfd1486495c5e4a2fdff071b (diff)
mu4e-draft: handle corner-case decoding issue
When there are raw utf-8 headers. Should help for #2722.
Diffstat (limited to 'mu4e')
-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 c0e4869..90c15dd 100644
--- a/mu4e/mu4e-draft.el
+++ b/mu4e/mu4e-draft.el
@@ -334,6 +334,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)