From 6880fa5ef9ba5485757a998a5baf9986bbdfba61 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Sun, 9 Aug 2020 17:06:32 +0300 Subject: [PATCH] mu4e: gnus-view: Make sure to clean up gnus mm buffers After leaving a gnus-view buffer, we should clean up the the mm-* buffers it creates; we were leaking those. Fixes #1781 --- mu4e/mu4e-view.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mu4e/mu4e-view.el b/mu4e/mu4e-view.el index e3f61717..074becc5 100644 --- a/mu4e/mu4e-view.el +++ b/mu4e/mu4e-view.el @@ -375,6 +375,11 @@ article-mode." (when embedded (local-set-key "q" 'kill-buffer-and-window)))) (switch-to-buffer buf)))) +;; remember the mime-handles, so we can clean them up when +;; we quit this buffer. +(defvar-local mu4e~gnus-article-mime-handles nil) +(put 'mu4e~gnus-article-mime-handles 'permanent-local t) + (defun mu4e~view-gnus (msg) "View MSG using Gnus' article mode. Experimental." (require 'gnus-art) @@ -410,10 +415,16 @@ article-mode." (gnus-display-mime-function (mu4e~view-gnus-display-mime msg)) (gnus-icalendar-additional-identities (mu4e-personal-addresses))) (gnus-article-prepare-display)) + (setq mu4e~gnus-article-mime-handles gnus-article-mime-handles) (setq mu4e~view-message msg) (mu4e-view-mode) (setq gnus-article-decoded-p gnus-article-decode-hook) (set-buffer-modified-p nil) + (add-hook 'kill-buffer-hook + (lambda() ;; cleanup the mm-* buffers that the view spawns + (when mu4e~gnus-article-mime-handles + (mm-destroy-parts mu4e~gnus-article-mime-handles) + (setq mu4e~gnus-article-mime-handles nil)))) (read-only-mode)))) (defun mu4e~view-gnus-display-mime (msg)