mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
emacs: add more part handling functions
This adds new notmuch-show-insert-part functions to handle multipart/alternative and message/rfc822 parts.
This commit is contained in:
parent
362ab047c2
commit
b741e4dd25
1 changed files with 33 additions and 0 deletions
|
@ -280,6 +280,21 @@ current buffer, if possible."
|
|||
t)
|
||||
nil)))))
|
||||
|
||||
(defun notmuch-show-insert-part-multipart/alternative (msg part content-type nth depth declared-type)
|
||||
(let ((inner-parts (plist-get part :content)))
|
||||
(notmuch-show-insert-part-header nth declared-type content-type nil)
|
||||
;; In most cases, multipart/alternative is used to provide both
|
||||
;; text/plain and text/html (or multipart/related with text/html
|
||||
;; and image/*) parts. We might allow the user to express a
|
||||
;; preference about which part to show, but for the moment we just
|
||||
;; choose the first. This is usually the text/plain part.
|
||||
(notmuch-show-insert-bodypart msg (car inner-parts) depth)
|
||||
(mapc (lambda (inner-part)
|
||||
(let ((inner-type (concat (plist-get inner-part :content-type) " (not shown)")))
|
||||
(notmuch-show-insert-part-header (plist-get inner-part :id) inner-type inner-type nil)))
|
||||
(cdr inner-parts)))
|
||||
t)
|
||||
|
||||
(defun notmuch-show-insert-part-multipart/* (msg part content-type nth depth declared-type)
|
||||
(let ((inner-parts (plist-get part :content)))
|
||||
(notmuch-show-insert-part-header nth declared-type content-type nil)
|
||||
|
@ -289,6 +304,24 @@ current buffer, if possible."
|
|||
inner-parts))
|
||||
t)
|
||||
|
||||
(defun notmuch-show-insert-part-message/rfc822 (msg part content-type nth depth declared-type)
|
||||
(let* ((message-part (plist-get part :content))
|
||||
(inner-parts (plist-get message-part :content)))
|
||||
(notmuch-show-insert-part-header nth declared-type content-type nil)
|
||||
;; Override `notmuch-message-headers' to force `From' to be
|
||||
;; displayed.
|
||||
(let ((notmuch-message-headers '("From" "Subject" "To" "Cc" "Date")))
|
||||
(notmuch-show-insert-headers (plist-get part :headers)))
|
||||
;; Blank line after headers to be compatible with the normal
|
||||
;; message display.
|
||||
(insert "\n")
|
||||
|
||||
;; Show all of the parts.
|
||||
(mapc (lambda (inner-part)
|
||||
(notmuch-show-insert-bodypart msg inner-part depth))
|
||||
inner-parts))
|
||||
t)
|
||||
|
||||
(defun notmuch-show-insert-part-text/plain (msg part content-type nth depth declared-type)
|
||||
(let ((start (point)))
|
||||
;; If this text/plain part is not the first part in the message,
|
||||
|
|
Loading…
Reference in a new issue