mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-25 10:54:52 +01:00
emacs: Work around gnus-inhibit-images bug in mm-shr
Emacs 24's mm-shr HTML email renderer fails to load gnus-art before referencing gnus-inhibit-images, resulting in a void-variable error when notmuch attempts to render an HTML email with inline images. This works around this bug by advising mm-shr to load gnus-art. mm-shr is the only function outside of gnus-art itself that references gnus-inhibit-images, so this workaround should be correct. If this ever changes, hopefully they will have fixed this bug upstream first. This fixes the "Rendering HTML mail with images" test for Emacs 24.
This commit is contained in:
parent
54005b4625
commit
f227d63b27
1 changed files with 13 additions and 0 deletions
|
@ -254,6 +254,19 @@ the given type."
|
|||
(or (plist-get part :content)
|
||||
(notmuch-get-bodypart-internal (notmuch-id-to-query (plist-get msg :id)) nth process-crypto)))
|
||||
|
||||
;; Workaround: The call to `mm-display-part' below triggers a bug in
|
||||
;; Emacs 24 if it attempts to use the shr renderer to display an HTML
|
||||
;; part with images in it (demonstrated in 24.1 and 24.2 on Debian and
|
||||
;; Fedora 17, though unreproducable in other configurations).
|
||||
;; `mm-shr' references the variable `gnus-inhibit-images' without
|
||||
;; first loading gnus-art, which defines it, resulting in a
|
||||
;; void-variable error. Hence, we advise `mm-shr' to ensure gnus-art
|
||||
;; is loaded.
|
||||
(if (>= emacs-major-version 24)
|
||||
(defadvice mm-shr (before load-gnus-arts activate)
|
||||
(require 'gnus-art nil t)
|
||||
(ad-disable-advice 'mm-shr 'before 'load-gnus-arts)))
|
||||
|
||||
(defun notmuch-mm-display-part-inline (msg part nth content-type process-crypto)
|
||||
"Use the mm-decode/mm-view functions to display a part in the
|
||||
current buffer, if possible."
|
||||
|
|
Loading…
Reference in a new issue