[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