X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.el;h=282932ed7fa9ea9655b8b6056927d63d8a060c74;hp=7eca87ae505caf177e22943bb105b62aa45bca87;hb=07ce64e4352291fb5bd265f20c683c653ab81966;hpb=30bdcfe6511b9b6efff1f84fbf77320c2da0d76a diff --git a/notmuch.el b/notmuch.el index 7eca87ae..282932ed 100644 --- a/notmuch.el +++ b/notmuch.el @@ -62,6 +62,7 @@ ; overlays-at to query and manipulate the current overlay. (define-key map "a" 'notmuch-show-archive-thread) (define-key map "A" 'notmuch-show-mark-read-then-archive-thread) + (define-key map "f" 'notmuch-show-forward-current) (define-key map "m" 'message-mail) (define-key map "n" 'notmuch-show-next-message) (define-key map "N" 'notmuch-show-mark-read-then-next-open-message) @@ -283,17 +284,21 @@ buffer." (interactive) (view-file (notmuch-show-get-filename))) +(defmacro with-current-notmuch-show-message (&rest body) + "Evaluate body with current buffer set to the text of current message" + `(save-excursion + (let ((filename (notmuch-show-get-filename))) + (let ((buf (generate-new-buffer (concat "*notmuch-msg-" filename "*")))) + (with-current-buffer buf + (insert-file-contents filename nil nil nil t) + ,@body) + (kill-buffer buf))))) + (defun notmuch-show-view-all-mime-parts () "Use external viewers (according to mailcap) to view all MIME-encoded parts." (interactive) - (save-excursion - (let ((filename (notmuch-show-get-filename))) - (switch-to-buffer (generate-new-buffer (concat "*notmuch-mime-" - filename - "*"))) - (insert-file-contents filename nil nil nil t) - (mm-display-parts (mm-dissect-buffer)) - (kill-this-buffer)))) + (with-current-notmuch-show-message + (mm-display-parts (mm-dissect-buffer)))) (defun notmuch-reply (query-string) (switch-to-buffer (generate-new-buffer "notmuch-draft")) @@ -312,6 +317,12 @@ buffer." (let ((message-id (notmuch-show-get-message-id))) (notmuch-reply message-id))) +(defun notmuch-show-forward-current () + "Forward a the current message." + (interactive) + (with-current-notmuch-show-message + (message-forward))) + (defun notmuch-show-pipe-message (command) "Pipe the contents of the current message to the given command.