X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-show.el;h=245114b719dac78726c2d47dc49e92679c79f30c;hb=dc13fcbf8755506b2681ef3c44da98737ddab8e8;hp=8222f0d1e784821a4bae3345cdf732a07f7f731c;hpb=c802d12a1e43fe69f2fcf7a2f7d44018a55bfb65;p=notmuch diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 8222f0d1..245114b7 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -954,14 +954,22 @@ this part.") (defun notmuch-show-reply-insert-header-p-never (part hide) nil) +(defun notmuch-show-reply-insert-header-p-trimmed (part hide) + (let ((mime-type (notmuch-show-mime-type part))) + (and (not (notmuch-match-content-type mime-type "multipart/*")) + (not hide)))) + +(defun notmuch-show-reply-insert-header-p-minimal (part hide) + (let ((mime-type (notmuch-show-mime-type part))) + (and (notmuch-match-content-type mime-type "text/*") + (not hide)))) + (defun notmuch-show-insert-bodypart (msg part depth &optional hide) "Insert the body part PART at depth DEPTH in the current thread. HIDE determines whether to show or hide the part and the button as follows: If HIDE is nil, show the part and the button. If HIDE -is t, hide the part initially and show the button. If HIDE is -'no-buttons, show the part but do not add any buttons (this is -useful for quoting in replies)." +is t, hide the part initially and show the button." (let* ((content-type (downcase (plist-get part :content-type))) (mime-type (notmuch-show-mime-type part)) @@ -972,12 +980,10 @@ useful for quoting in replies)." (beg (point)) ;; This default header-p function omits the part button for ;; the first (or only) part if this is text/plain. - (button (when (and (not (equal hide 'no-buttons)) - (funcall notmuch-show-insert-header-p-function part hide)) + (button (when (funcall notmuch-show-insert-header-p-function part hide) (notmuch-show-insert-part-header nth mime-type content-type (plist-get part :filename)))) ;; Hide the part initially if HIDE is t, or if it is too long - ;; and we have a button to allow toggling (thus reply which - ;; uses 'no-buttons automatically includes long parts) + ;; and we have a button to allow toggling. (show-part (not (or (equal hide t) (and long button)))) (content-beg (point))) @@ -1425,6 +1431,7 @@ reset based on the original query." (define-key map (kbd "") 'notmuch-show-previous-button) (define-key map (kbd "TAB") 'notmuch-show-next-button) (define-key map "f" 'notmuch-show-forward-message) + (define-key map "F" 'notmuch-show-forward-open-messages) (define-key map "l" 'notmuch-show-filter-thread) (define-key map "r" 'notmuch-show-reply-sender) (define-key map "R" 'notmuch-show-reply) @@ -1849,8 +1856,18 @@ any effects from previous calls to (defun notmuch-show-forward-message (&optional prompt-for-sender) "Forward the current message." (interactive "P") - (with-current-notmuch-show-message - (notmuch-mua-new-forward-message prompt-for-sender))) + (notmuch-mua-new-forward-messages (list (notmuch-show-get-message-id)) + prompt-for-sender)) + +(put 'notmuch-show-forward-open-messages 'notmuch-prefix-doc + "... and prompt for sender") +(defun notmuch-show-forward-open-messages (&optional prompt-for-sender) + "Forward the currently open messages." + (interactive "P") + (let ((open-messages (notmuch-show-get-message-ids-for-open-messages))) + (unless open-messages + (error "No open messages to forward.")) + (notmuch-mua-new-forward-messages open-messages prompt-for-sender))) (defun notmuch-show-next-message (&optional pop-at-end) "Show the next message.