[PATCH] emacs/show: add command to view a patch using diff mode
David Bremner
david at tethera.net
Sun Jun 22 03:51:09 PDT 2014
Mark Walters <markwalters1009 at gmail.com> writes:
> From: markwalters1009 at gmail.com
>
> This enables fast navigation between hunks and better highlighting.
>
> The use of notmuch-get-bodypart-internal could be improved; hard
> coding to 1 seems to work for the output of git-format-patch. It also
> not so nice to call (insert (notmuch-get-bodypart-internal ...)) since the
> last thing n-g-b-i does is call buffer-string.
>
> Author: David Bremner <bremner at debian.org>
Recently I had cause to update this function to produce more
"git-format-patch" like output. I didn't yet merge with Mark's proposed
changes. Here it is in case anyone else finds this useful (I used it to
de-quoted-printable a patch).
(defun notmuch-show-view-as-patch ()
"View the the current message as a patch."
(interactive)
(let* ((id (notmuch-show-get-message-id t))
(date (notmuch-show-get-date))
(from_ (concat "From " id " " date "\n"))
(from: (concat "From: " (notmuch-show-get-from) "\n"))
(date: (concat "Date: " date "\n"))
(subject (concat "Subject: " (notmuch-show-get-subject) "\n"))
(diff-default-read-only t)
(buf (get-buffer-create (concat "*notmuch-patch-" id "*"))))
(switch-to-buffer buf)
(let ((inhibit-read-only t))
(erase-buffer)
(insert from_)
(insert from:)
(insert date:)
(insert subject)
(insert "\n")
(insert (notmuch-get-bodypart-internal (concat "id:" id) 1 nil)))
(set-buffer-modified-p nil)
(diff-mode)
(goto-char (point-min))))
More information about the notmuch
mailing list