X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-lib.el;h=f05ded6f36df7941a9dea189382bdd250ff5e14d;hb=da5029e2ac8dfd8a839de1f6a4701237d0b34db1;hp=eca837d14b01086b26a7b0c11c01d835d19ce40c;hpb=f0881394bd8bec4af8ddedf0a128648a3a4e2127;p=notmuch diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index eca837d1..f05ded6f 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -1,4 +1,4 @@ -;; notmuch-lib.el --- common variables, functions and function declarations +;;; notmuch-lib.el --- common variables, functions and function declarations ;; ;; Copyright © Carl Worth ;; @@ -21,6 +21,9 @@ ;; This is an part of an emacs-based interface to the notmuch mail system. +;;; Code: + +(require 'mm-util) (require 'mm-view) (require 'mm-decode) (require 'cl) @@ -570,7 +573,20 @@ the given type." ,@(when process-crypto '("--decrypt")) ,(notmuch-id-to-query (plist-get msg :id)))) (coding-system-for-read - (if binaryp 'no-conversion 'utf-8))) + (if binaryp 'no-conversion + (let ((coding-system (mm-charset-to-coding-system + (plist-get part :content-charset)))) + ;; Sadly, + ;; `mm-charset-to-coding-system' seems + ;; to return things that are not + ;; considered acceptable values for + ;; `coding-system-for-read'. + (if (coding-system-p coding-system) + coding-system + ;; RFC 2047 says that the default + ;; charset is US-ASCII. RFC6657 + ;; complicates this somewhat. + 'us-ascii))))) (apply #'call-process notmuch-command nil '(t nil) nil args) (buffer-string)))))) (when (and cache data) @@ -931,3 +947,5 @@ status." ;; Local Variables: ;; byte-compile-warnings: (not cl-functions) ;; End: + +;;; notmuch-lib.el ends here