This is version 3 of this set: version 2 is at id:1355389924-3718-1-git-send-email-markwalters1009@gmail.com This fixes the things Austin pointed out in the previous version. Diff from v2 is below the diffstat. Best wishes Mark Mark Walters (5): emacs: show: modify insert-part-header to save the button text emacs: show: add overlays for each part emacs: show: add invisibility button action emacs: wash: fix fake-diff part to include msg parameter emacs: show: set default show-all-multipart/alternatives to nil emacs/notmuch-show.el | 113 +++++++++++++++++++++++++++++++++++++----------- emacs/notmuch-wash.el | 2 +- 2 files changed, 88 insertions(+), 27 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index c43dd32..457f84a 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -478,7 +478,6 @@ message at DEPTH in the current thread." (define-key map "v" 'notmuch-show-part-button-view) (define-key map "o" 'notmuch-show-part-button-interactively-view) (define-key map "|" 'notmuch-show-part-button-pipe) - (define-key map "t" 'notmuch-show-toggle-invisible-part-action) map) "Submap for button commands") (fset 'notmuch-show-part-button-map notmuch-show-part-button-map) @@ -556,7 +555,7 @@ message at DEPTH in the current thread." (mm-pipe-part handle)))) ;; This is taken from notmuch-wash: maybe it should be unified? -(defun notmuch-show-toggle-invisible-part-action (&optional button) +(defun notmuch-show-toggle-part-invisibility (&optional button) (interactive) (let* ((button (or button (button-at (point)))) (overlay (button-get button 'overlay)) @@ -861,7 +860,7 @@ message at DEPTH in the current thread." (setq handlers (cdr handlers)))) t) -(defun notmuch-show-insert-part-overlays (msg beg end hide) +(defun notmuch-show-create-part-overlays (msg beg end hide) "Add an overlay to the part between BEG and END" (let* ((button (button-at beg)) (part-beg (and button (1+ (button-end button))))) @@ -875,7 +874,6 @@ message at DEPTH in the current thread." (overlay-put overlay 'invisible (list invis-spec message-invis-spec)) (overlay-put overlay 'priority 10) - (overlay-put overlay 'type "part") ;; Now we have to add invis-spec to every overlay this ;; overlay contains, otherwise these inner overlays will ;; override this one. @@ -892,7 +890,7 @@ message at DEPTH in the current thread." ;; button label right. (save-excursion (when hide - (notmuch-show-toggle-invisible-part-action button)))))) + (notmuch-show-toggle-part-invisibility button)))))) (defun notmuch-show-insert-bodypart (msg part depth &optional hide) "Insert the body part PART at depth DEPTH in the current thread. @@ -909,7 +907,7 @@ If HIDE is non-nil then initially hide this part." ;; Ensure that the part ends with a carriage return. (unless (bolp) (insert "\n")) - (notmuch-show-insert-part-overlays msg beg (point) hide))) + (notmuch-show-create-part-overlays msg beg (point) hide))) (defun notmuch-show-insert-body (msg body depth) "Insert the body BODY at depth DEPTH in the current thread." @@ -2023,7 +2021,7 @@ the user (see `notmuch-show-stash-mlarchive-link-alist')." (interactive) (let ((button (or button (button-at (point))))) (if (button-get button 'invisibility-spec) - (notmuch-show-toggle-invisible-part-action button) + (notmuch-show-toggle-part-invisibility button) (notmuch-show-part-button-internal button notmuch-show-part-button-default-action)))) (defun notmuch-show-part-button-save (&optional button)