Re: [PATCH 2/7] emacs: Use unified error handling in notmuch-call-notmuch-process

Subject: Re: [PATCH 2/7] emacs: Use unified error handling in notmuch-call-notmuch-process

Date: Sat, 15 Dec 2012 09:30:27 +0000

To: Austin Clements, notmuch@notmuchmail.org

Cc:

From: Mark Walters


On Sat, 15 Dec 2012, Austin Clements <amdragon@MIT.EDU> wrote:
> This makes notmuch-call-notmuch-process use the unified CLI error
> handling, which basically refines the error handling this function
> already did.
> ---
>  emacs/notmuch.el |   15 ++++-----------
>  1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/emacs/notmuch.el b/emacs/notmuch.el
> index f9454d8..e25b54e 100644
> --- a/emacs/notmuch.el
> +++ b/emacs/notmuch.el
> @@ -538,17 +538,10 @@ If BARE is set then do not prefix with \"thread:\""
>  
>  Output from the process will be presented to the user as an error
>  and will also appear in a buffer named \"*Notmuch errors*\"."

This comment looks like it is not true (but wasn't true before
either). I think output will only be presented to the user if notmuch
exits with a non-zero status?

> -  (let ((error-buffer (get-buffer-create "*Notmuch errors*")))
> -    (with-current-buffer error-buffer
> -	(erase-buffer))
> -    (if (eq (apply 'call-process notmuch-command nil error-buffer nil args) 0)
> -	(point)
> -      (progn
> -	(with-current-buffer error-buffer
> -	  (let ((beg (point-min))
> -		(end (- (point-max) 1)))
> -	    (error (buffer-substring beg end))
> -	    ))))))
> +  (with-temp-buffer
> +    (let ((status (apply #'call-process notmuch-command nil t nil args)))
> +      (notmuch-check-exit-status status (cons notmuch-command args)
> +				 (buffer-string)))))
>  

Would it be worth separating stderr and stdout here? (Quite plausibly it
isn't.)

Best wishes

Mark


>  (defun notmuch-search-set-tags (tags &optional pos)
>    (let ((new-result (plist-put (notmuch-search-get-result pos) :tags tags)))
> -- 
> 1.7.10.4

Thread: