Add some very rudimentary support for handling html parts

If there is an html mime-part in the message and it's the first part,
it gets inlined using `mm-display-part' to convert it to plain text.

The HTML content is still available as a non-text part as well.
This commit is contained in:
Alexander Botero-Lowry 2009-11-25 01:13:33 -08:00 committed by Carl Worth
parent 12c91e8050
commit ed16edc94d

View file

@ -564,29 +564,52 @@ which this thread was originally shown."
(goto-char end)))))) (goto-char end))))))
(forward-line)))) (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) (if (re-search-forward notmuch-show-part-begin-regexp nil t)
(progn (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) (forward-line)
(let ((beg (point-marker))) (let ((part-beg (point-marker)))
(re-search-forward notmuch-show-part-end-regexp) (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)) (if (not (bolp))
(insert "\n")) (insert "\n"))
(indent-rigidly beg end depth) (indent-rigidly part-beg part-end depth)
(notmuch-show-markup-citations-region beg 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 ; Advance to the next part (if any) (so the outer loop can
; determine whether we've left the current message. ; determine whether we've left the current message.
(if (re-search-forward notmuch-show-part-begin-regexp nil t) (if (re-search-forward notmuch-show-part-begin-regexp nil t)
(beginning-of-line))))) (beginning-of-line)))))
(goto-char end))) (goto-char end))
mime-message)
(defun notmuch-show-markup-parts-region (beg end depth) (defun notmuch-show-markup-parts-region (beg end depth)
(save-excursion (save-excursion
(goto-char beg) (goto-char beg)
(let (mime-message)
(while (< (point) end) (while (< (point) end)
(notmuch-show-markup-part beg end depth)))) (setq mime-message
(notmuch-show-markup-part
beg end depth mime-message))))))
(defun notmuch-show-markup-body (depth btn) (defun notmuch-show-markup-body (depth btn)
(re-search-forward notmuch-show-body-begin-regexp) (re-search-forward notmuch-show-body-begin-regexp)