aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs/notmuch-mua.el
diff options
context:
space:
mode:
authorGravatar Jani Nikula <jani@nikula.org>2013-09-01 20:59:53 +0300
committerGravatar David Bremner <bremner@debian.org>2013-09-05 06:38:24 -0300
commit5c19eb46a906819744a022463ee3fd7cdfaabbb9 (patch)
treedcf705dfc464f568e11d4cd80734c6d2a63eb21a /emacs/notmuch-mua.el
parent75ddd1eb468b3d9c9d26c65bf8985ae7632f0d80 (diff)
emacs: insert quotable parts in reply as they are displayed in show view
In reply, insert quotable parts using notmuch-show-insert-bodypart instead of calling notmuch-mm-display-part-inline directly to render the quoted parts as they are rendered in show view. We use a temp buffer to not leak text properties from the show renderer into the reply. This way we also don't need to worry about narrowing or point placement. Credits to Mark Walters <markwalters1009@gmail.com> and Austin Clements <amdragon@MIT.EDU> for getting this part straight. The notable change is that replies to text/calendar parts quote the pretty printed output of icalendar-import-buffer rather than the ugly raw vcalendar.
Diffstat (limited to 'emacs/notmuch-mua.el')
-rw-r--r--emacs/notmuch-mua.el17
1 files changed, 11 insertions, 6 deletions
diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el
index 2baae5f1..ff8149b4 100644
--- a/emacs/notmuch-mua.el
+++ b/emacs/notmuch-mua.el
@@ -28,6 +28,8 @@
(eval-when-compile (require 'cl))
+(declare-function notmuch-show-insert-bodypart "notmuch-show" (msg part depth &optional hide))
+
;;
(defcustom notmuch-mua-send-hook '(notmuch-mua-message-send-hook)
@@ -128,12 +130,15 @@ list."
collect part))
(defun notmuch-mua-insert-quotable-part (message part)
- (save-restriction
- (narrow-to-region (point) (point))
- (notmuch-mm-display-part-inline message part (plist-get part :id)
- (plist-get part :content-type)
- notmuch-show-process-crypto)
- (goto-char (point-max))))
+ ;; We don't want text properties leaking from the show renderer into
+ ;; the reply so we use a temp buffer. Also we don't want hooks, such
+ ;; as notmuch-wash-*, to be run on the quotable part so we set
+ ;; notmuch-show-insert-text/plain-hook to nil.
+ (insert (with-temp-buffer
+ (let ((notmuch-show-insert-text/plain-hook nil))
+ ;; Show the part but do not add buttons.
+ (notmuch-show-insert-bodypart message part 0 'no-buttons))
+ (buffer-substring-no-properties (point-min) (point-max)))))
;; There is a bug in emacs 23's message.el that results in a newline
;; not being inserted after the References header, so the next header