[PATCH 1/3] emacs: Introduce `notmuch-call-notmuch-sexp'

Tomi Ollila tomi.ollila at iki.fi
Mon Jun 24 08:35:50 PDT 2013


On Mon, Jun 24 2013, Austin Clements <amdragon at MIT.EDU> wrote:

> This is just like `notmuch-call-notmuch-json', but parses S-expression
> output.  Note that, also like `notmuch-call-notmuch-json', this
> doesn't consider trailing data to be an error, which may or may not be
> what we want in the long run.
> ---

This series looks good (if not trivial), works in use and tests pass. +1

Tomi


>  emacs/notmuch-lib.el |   17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
> index 534f217..36eacc1 100644
> --- a/emacs/notmuch-lib.el
> +++ b/emacs/notmuch-lib.el
> @@ -484,6 +484,23 @@ an error."
>  	      (json-read)))
>  	(delete-file err-file)))))
>  
> +(defun notmuch-call-notmuch-sexp (&rest args)
> +  "Invoke `notmuch-command' with ARGS and return the parsed S-exp output.
> +
> +If notmuch exits with a non-zero status, this will pop up a
> +buffer containing notmuch's output and signal an error."
> +
> +  (with-temp-buffer
> +    (let ((err-file (make-temp-file "nmerr")))
> +      (unwind-protect
> +	  (let ((status (apply #'call-process
> +			       notmuch-command nil (list t err-file) nil args)))
> +	    (notmuch-check-exit-status status (cons notmuch-command args)
> +				       (buffer-string) err-file)
> +	    (goto-char (point-min))
> +	    (read (current-buffer)))
> +	(delete-file err-file)))))
> +
>  (defun notmuch-start-notmuch (name buffer sentinel &rest args)
>    "Start and return an asynchronous notmuch command.
>  
> -- 
> 1.7.10.4
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list