:supertype 'notmuch-wash-button-invisibility-toggle-type)
(defun notmuch-wash-region-isearch-show (overlay)
- (remove-from-invisibility-spec (overlay-get overlay 'invisible)))
+ (dolist (invis-spec (overlay-get overlay 'invisible))
+ (remove-from-invisibility-spec invis-spec)))
(defun notmuch-wash-button-label (overlay)
(let* ((type (overlay-get overlay 'type))
(lines-count (count-lines (overlay-start overlay) (overlay-end overlay))))
(format label-format lines-count)))
-(defun notmuch-wash-region-to-button (beg end type prefix)
- "Auxilary function to do the actual making of overlays and buttons
+(defun notmuch-wash-region-to-button (msg beg end type prefix)
+ "Auxiliary function to do the actual making of overlays and buttons
BEG and END are buffer locations. TYPE should a string, either
\"citation\" or \"signature\". PREFIX is some arbitrary text to
;; since the newly created symbol has no plist.
(let ((overlay (make-overlay beg end))
+ (message-invis-spec (plist-get msg :message-invis-spec))
(invis-spec (make-symbol (concat "notmuch-" type "-region")))
(button-type (intern-soft (concat "notmuch-wash-button-"
type "-toggle-type"))))
(add-to-invisibility-spec invis-spec)
- (overlay-put overlay 'invisible invis-spec)
+ (overlay-put overlay 'invisible (list invis-spec message-invis-spec))
(overlay-put overlay 'isearch-open-invisible #'notmuch-wash-region-isearch-show)
+ (overlay-put overlay 'priority 10)
(overlay-put overlay 'type type)
(goto-char (1+ end))
(save-excursion
(msg-end (point-max))
(msg-lines (count-lines msg-start msg-end)))
(notmuch-wash-region-to-button
- msg-start msg-end "original" "\n")))
+ msg msg-start msg-end "original" "\n")))
(while (and (< (point) (point-max))
(re-search-forward notmuch-wash-citation-regexp nil t))
(let* ((cite-start (match-beginning 0))
(goto-char cite-end)
(forward-line (- notmuch-wash-citation-lines-suffix))
(notmuch-wash-region-to-button
- hidden-start (point-marker)
+ msg hidden-start (point-marker)
"citation" "\n")))))
(if (and (not (eobp))
(re-search-forward notmuch-wash-signature-regexp nil t))
(set-marker sig-end-marker (point-max))
(overlay-put (make-overlay sig-start-marker sig-end-marker) 'face 'message-cited-text)
(notmuch-wash-region-to-button
- sig-start-marker sig-end-marker
+ msg sig-start-marker sig-end-marker
"signature" "\n"))))))
;;