Re: [PATCH v3 1/9] emacs/show: Re-arrange determination if a part header is necessary

Subject: Re: [PATCH v3 1/9] emacs/show: Re-arrange determination if a part header is necessary

Date: Tue, 13 May 2014 10:47:22 +0100

To: Mark Walters, notmuch@notmuchmail.org

Cc:

From: David Edmondson


On Mon, May 12 2014, Mark Walters wrote:
> On Mon, 12 May 2014, David Edmondson <dme@dme.org> wrote:
>> Move the determination of whether a part header is required to a
>> distinct function.
>> ---
>>  emacs/notmuch-show.el | 25 ++++++++++++++++++-------
>>  1 file changed, 18 insertions(+), 7 deletions(-)
>>
>> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
>> index 10fc872..ec99141 100644
>> --- a/emacs/notmuch-show.el
>> +++ b/emacs/notmuch-show.el
>> @@ -871,6 +871,21 @@ message at DEPTH in the current thread."
>>        ;; showable this returns nil.
>>        (notmuch-show-create-part-overlays button part-beg part-end))))
>>  
>> +(defun notmuch-show-mime-type (part)
>> +  "Return the correct mime-type to use for PART."
>> +  (let ((content-type (downcase (plist-get part :content-type))))
>> +    (or (and (string= content-type "application/octet-stream")
>> +	     (notmuch-show-get-mime-type-of-application/octet-stream part))
>> +	(and (string= content-type "inline patch")
>> +	     "text/x-diff")
>> +	content-type)))
>> +
>> +(defun notmuch-show-insert-header-p (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)))))
>
> My only query here is whether a notmuch-show-hide-header-p (part) might
> make some of the logic clearer?

You're suggesting to simply invert the sense of the function?
>
> MW
>
>
>> +
>>  (defun notmuch-show-insert-bodypart (msg part depth &optional hide)
>>    "Insert the body part PART at depth DEPTH in the current thread.
>>  
>> @@ -881,19 +896,15 @@ is t, hide the part initially and show the button. If HIDE is
>>  useful for quoting in replies)."
>>  
>>    (let* ((content-type (downcase (plist-get part :content-type)))
>> -	 (mime-type (or (and (string= content-type "application/octet-stream")
>> -			     (notmuch-show-get-mime-type-of-application/octet-stream part))
>> -			(and (string= content-type "inline patch")
>> -			     "text/x-diff")
>> -			content-type))
>> +	 (mime-type (notmuch-show-mime-type part))
>>  	 (nth (plist-get part :id))
>>  	 (beg (point))
>>  	 ;; Hide the part initially if HIDE is t.
>>  	 (show-part (not (equal hide t)))
>>  	 ;; We omit the part button for the first (or only) part if
>>  	 ;; this is text/plain, or HIDE is 'no-buttons.
>> -	 (button (unless (or (equal hide 'no-buttons)
>> -			     (and (string= mime-type "text/plain") (<= nth 1)))
>> +	 (button (when (and (not (equal hide 'no-buttons))
>> +			    (notmuch-show-insert-header-p 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
signature.asc (application/pgp-signature)

Thread: