]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-lib.el
NEWS: add news for 0.22.2
[notmuch] / emacs / notmuch-lib.el
index eca837d14b01086b26a7b0c11c01d835d19ce40c..f05ded6f36df7941a9dea189382bdd250ff5e14d 100644 (file)
@@ -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