X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-show.el;h=a66506780005fb1940dfa6e229b339c0f16b1119;hb=6d6d2a5fe7a04cc8de43d6b27844c50f02d749ed;hp=527db4bbc0ff346572bdf34f97830264ac7dad38;hpb=1849c68d0f4de0a2028df5f1708d473e60d87785;p=notmuch diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 527db4bb..a6650678 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -1813,7 +1813,7 @@ current thread." (defun notmuch-show-get-filename () "Return the filename of the current message." - (let ((duplicate (or (notmuch-show-get-prop :duplicate) 1))) + (let ((duplicate (notmuch-show-get-duplicate))) (nth (1- duplicate) (notmuch-show-get-prop :filename)))) (defun notmuch-show-get-header (header &optional props) @@ -1826,6 +1826,10 @@ current thread." (defun notmuch-show-get-date () (notmuch-show-get-header :Date)) +(defun notmuch-show-get-duplicate () + ;; if no duplicate property exists, assume first file + (or (notmuch-show-get-prop :duplicate) 1)) + (defun notmuch-show-get-timestamp () (notmuch-show-get-prop :timestamp)) @@ -2139,12 +2143,16 @@ to show, nil otherwise." "View the original source of the current message." (interactive) (let* ((id (notmuch-show-get-message-id)) - (buf (get-buffer-create (concat "*notmuch-raw-" id "*"))) + (duplicate (notmuch-show-get-duplicate)) + (args (if (> duplicate 1) + (list (format "--duplicate=%d" duplicate) id) + (list id))) + (buf (get-buffer-create (format "*notmuch-raw-%s-%d*" id duplicate))) (inhibit-read-only t)) (pop-to-buffer-same-window buf) (erase-buffer) (let ((coding-system-for-read 'no-conversion)) - (notmuch--call-process notmuch-command nil t nil "show" "--format=raw" id)) + (apply #'notmuch--call-process notmuch-command nil t nil "show" "--format=raw" args)) (goto-char (point-min)) (set-buffer-modified-p nil) (setq buffer-read-only t)