On Mon, 12 May 2014, David Edmondson <d...@dme.org> wrote: > Make the function that determines whether a part header should be > inserted a user controlled, with some example functions. > --- > emacs/notmuch-show.el | 21 +++++++++++++++++++-- > 1 file changed, 19 insertions(+), 2 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index ec99141..f78a0ab 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -135,6 +135,17 @@ indentation." > :type 'boolean > :group 'notmuch-show) > > +(defcustom notmuch-show-insert-header-p-function > 'notmuch-show-insert-header-p-smart > + "A function to call to determine whether a MIME part should have a header > button. > + > +The function is passed one argument, PART - the MIME part in > +question." > + :type 'function > + :group 'notmuch-show > + :options '(notmuch-show-insert-header-p-smart > + notmuch-show-insert-header-p-always > + notmuch-show-insert-header-p-never)) > +
I think this is nice as a defcustom for testing/seeing what happens, but I am not sure we want it exposed longer term: for example never makes it nearly impossible to view pdf parts. Best wishes Mark > (defvar notmuch-show-thread-id nil) > (make-variable-buffer-local 'notmuch-show-thread-id) > (put 'notmuch-show-thread-id 'permanent-local t) > @@ -880,12 +891,18 @@ message at DEPTH in the current thread." > "text/x-diff") > content-type))) > > -(defun notmuch-show-insert-header-p (part) > +(defun notmuch-show-insert-header-p-smart (part) > "Return non-NIL if a header button should be inserted for this part." > (let ((mime-type (notmuch-show-mime-type part))) > (not (and (string= mime-type "text/plain") > (<= (plist-get part :id) 1))))) > > +(defun notmuch-show-insert-header-p-always (part) > + t) > + > +(defun notmuch-show-insert-header-p-never (part) > + nil) > + > (defun notmuch-show-insert-bodypart (msg part depth &optional hide) > "Insert the body part PART at depth DEPTH in the current thread. > > @@ -904,7 +921,7 @@ useful for quoting in replies)." > ;; We omit the part button for the first (or only) part if > ;; this is text/plain, or HIDE is 'no-buttons. > (button (when (and (not (equal hide 'no-buttons)) > - (notmuch-show-insert-header-p part)) > + (funcall notmuch-show-insert-header-p-function > part)) > (notmuch-show-insert-part-header nth mime-type content-type > (plist-get part :filename)))) > (content-beg (point))) > > -- > 2.0.0.rc0 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch