X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-show.el;h=f9d6c93edee6aef03d3c40657343e32283522c60;hb=6408270512dd654243b81ed57b81dad3f721938c;hp=aa8041c2cbcdad5a6c24fdf54281a6d7495f202c;hpb=97570954cb583cacac35b0235cbe449a07630ae3;p=notmuch diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index aa8041c2..f9d6c93e 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -62,34 +62,17 @@ any given message." "A list of functions called to decorate the headers listed in `notmuch-message-headers'.") -(defcustom notmuch-show-hook '(notmuch-show-pretty-hook) +(defvar notmuch-show-hook '(notmuch-show-pretty-hook) "A list of functions called after populating a -`notmuch-show' buffer." - :group 'notmuch - :type 'hook - :options '(notmuch-show-pretty-hook - notmuch-show-turn-off-word-wrap)) - -(defcustom notmuch-show-insert-text/plain-hook - '(notmuch-wash-tidy-citations - notmuch-wash-compress-blanks - notmuch-wash-markup-citations) - "A list of functions called to clean up text/plain body parts." - :group 'notmuch - :type 'hook - :options '(notmuch-wash-wrap-long-lines - notmuch-wash-tidy-citations - notmuch-wash-compress-blanks - notmuch-wash-markup-citations)) +`notmuch-show' buffer.") + +(defvar notmuch-show-insert-text/plain-hook '(notmuch-wash-text/plain-citations) + "A list of functions called to clean up text/plain body parts.") (defun notmuch-show-pretty-hook () (goto-address-mode 1) (visual-line-mode)) -(defun notmuch-show-turn-off-word-wrap () - ;; `toggle-word-wrap' outputs a message, which is distracting. - (setq word-wrap nil)) - (defmacro with-current-notmuch-show-message (&rest body) "Evaluate body with current buffer set to the text of current message" `(save-excursion @@ -399,6 +382,22 @@ current buffer, if possible." (headers-invis-spec (notmuch-show-make-symbol "header")) (message-invis-spec (notmuch-show-make-symbol "message"))) + ;; Set `buffer-invisibility-spec' to `nil' (a list), otherwise + ;; removing items from `buffer-invisibility-spec' (which is what + ;; `notmuch-show-headers-visible' and + ;; `notmuch-show-message-visible' do) is a no-op and has no + ;; effect. This caused threads with only matching messages to have + ;; those messages hidden initially because + ;; `buffer-invisibility-spec' stayed `t'. + ;; + ;; This needs to be set here (rather than just above the call to + ;; `notmuch-show-headers-visible') because some of the part + ;; rendering or body washing functions + ;; (e.g. `notmuch-wash-text/plain-citations') manipulate + ;; `buffer-invisibility-spec'). + (when (eq buffer-invisibility-spec t) + (setq buffer-invisibility-spec nil)) + (setq message-start (point-marker)) (notmuch-show-insert-headerline headers