emacs: letf enriched-decode-display-prop for text/enriched display

Dynamically bind enriched-decode-display-prop when inserting
text/enriched part. This complements commit 9b05823838 for
emacs versions before 24.4 which do not have advice-add
functionality.

Since emacs 25.3 this particular bug is fixed.
This commit is contained in:
Tomi Ollila 2017-12-05 21:17:57 -04:00 committed by David Bremner
parent cb855d8a9d
commit f55e9a3bda

View file

@ -773,14 +773,19 @@ will return nil if the CID is unknown or cannot be retrieved."
(defun notmuch-show-insert-part-text/x-vcalendar (msg part content-type nth depth button)
(notmuch-show-insert-part-text/calendar msg part content-type nth depth button))
;; https://bugs.gnu.org/28350
(defun notmuch-show--enriched-decode-display-prop (start end &optional param)
(list start end))
(defun notmuch-show-insert-part-text/enriched (msg part content-type nth depth button)
(advice-add 'enriched-decode-display-prop :override
#'notmuch-show--enriched-decode-display-prop)
nil)
(if (version< emacs-version "25.3")
;; https://bugs.gnu.org/28350
;;
;; For newer emacs, we fall back to notmuch-show-insert-part-*/*
;; (see notmuch-show-handlers-for)
(defun notmuch-show-insert-part-text/enriched (msg part content-type nth depth button)
;; By requiring enriched below, we ensure that the function enriched-decode-display-prop
;; is defined before it will be shadowed by the letf below. Otherwise the version
;; in enriched.el may be loaded a bit later and used instead (for the first time).
(require 'enriched)
(letf (((symbol-function 'enriched-decode-display-prop)
(lambda (start end &optional param) (list start end))))
(notmuch-show-insert-part-*/* msg part content-type nth depth button))))
(defun notmuch-show-get-mime-type-of-application/octet-stream (part)
;; If we can deduce a MIME type from the filename of the attachment,