emacs: with-current-notmuch-show-message' should not leak coding-system-for-read'

`with-current-notmuch-show-message' applies a `no-conversion' coding
system when reading a raw message from notmuch. That coding system
should _not_ be applied when the body of the macro is evaluated, as it
can cause file operations used during that evaluation to incorrectly
apply the `no-conversion' coding system.

This was discovered when a user's .signature file contained non-ASCII
characters. When a message is forwarded, the `no-conversion' coding
system was applied to the reading of the .signature file, resulting in
raw rather than UTF-8 interpretation of the data.
This commit is contained in:
David Edmondson 2014-11-18 07:03:17 +00:00 committed by David Bremner
parent 32855b91d9
commit 7585e8c906

View file

@ -241,9 +241,9 @@ every user interaction with notmuch."
(let ((buf (generate-new-buffer (concat "*notmuch-msg-" id "*"))))
(with-current-buffer buf
(let ((coding-system-for-read 'no-conversion))
(call-process notmuch-command nil t nil "show" "--format=raw" id)
,@body)
(kill-buffer buf))))))
(call-process notmuch-command nil t nil "show" "--format=raw" id))
,@body)
(kill-buffer buf)))))
(defun notmuch-show-turn-on-visual-line-mode ()
"Enable Visual Line mode."