X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=notmuch.el;h=f99feae88641e4f38f3a2866ae9892482939bda4;hb=6da656657621febf2d5b9e1ba69c8856f9882140;hp=e9786c0b28885c86e2a62b24f06296bc19ac380e;hpb=c835e2a5059ebc10580f8ae2a79c4f0f81374798;p=notmuch diff --git a/notmuch.el b/notmuch.el index e9786c0b..f99feae8 100644 --- a/notmuch.el +++ b/notmuch.el @@ -49,6 +49,7 @@ (require 'cl) (require 'mm-view) +(require 'message) (defvar notmuch-show-mode-map (let ((map (make-sparse-keymap))) @@ -563,29 +564,52 @@ which this thread was originally shown." (goto-char end)))))) (forward-line)))) -(defun notmuch-show-markup-part (beg end depth) +(defun notmuch-show-markup-part (beg end depth mime-message) (if (re-search-forward notmuch-show-part-begin-regexp nil t) (progn + (if (eq mime-message nil) + (let ((filename (notmuch-show-get-filename))) + (with-temp-buffer + (insert-file-contents filename nil nil nil t) + (setq mime-message (mm-dissect-buffer))))) (forward-line) - (let ((beg (point-marker))) + (let ((part-beg (point-marker))) (re-search-forward notmuch-show-part-end-regexp) - (let ((end (copy-marker (match-beginning 0)))) - (goto-char end) + + (let ((part-end (copy-marker (match-beginning 0)))) + (goto-char part-end) (if (not (bolp)) (insert "\n")) - (indent-rigidly beg end depth) - (notmuch-show-markup-citations-region beg end depth) + (indent-rigidly part-beg part-end depth) + (save-excursion + (goto-char part-beg) + (forward-line -1) + (beginning-of-line) + (let ((handle-type (mm-handle-type mime-message)) + mime-type) + (if (sequencep (car handle-type)) + (setq mime-type (car handle-type)) + (setq mime-type (car (car (cdr handle-type)))) + ) + (if (equal mime-type "text/html") + (mm-display-part mime-message)))) + + (notmuch-show-markup-citations-region part-beg part-end depth) ; Advance to the next part (if any) (so the outer loop can ; determine whether we've left the current message. (if (re-search-forward notmuch-show-part-begin-regexp nil t) (beginning-of-line))))) - (goto-char end))) + (goto-char end)) + mime-message) (defun notmuch-show-markup-parts-region (beg end depth) (save-excursion (goto-char beg) - (while (< (point) end) - (notmuch-show-markup-part beg end depth)))) + (let (mime-message) + (while (< (point) end) + (setq mime-message + (notmuch-show-markup-part + beg end depth mime-message)))))) (defun notmuch-show-markup-body (depth btn) (re-search-forward notmuch-show-body-begin-regexp)