From: David Edmondson Date: Tue, 18 Nov 2014 07:03:17 +0000 (+0000) Subject: emacs: `with-current-notmuch-show-message' should not leak `coding-system-for-read' X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=7585e8c906b51b5a8db89feb8981b8c5fe2e107c;p=notmuch.git 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. --- diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 4035fe88..b8cfbb8a 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -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."