Re: [PATCH v3 2/9] emacs/show: Allow the user to decide when part headers should be inserted

Subject: Re: [PATCH v3 2/9] emacs/show: Allow the user to decide when part headers should be inserted

Date: Mon, 12 May 2014 23:15:07 +0100

To: David Edmondson, notmuch@notmuchmail.org

Cc:

From: Mark Walters


On Mon, 12 May 2014, David Edmondson <dme@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

Thread: