[PATCH v3 0/6] Make Emacs search use sexp format

Subject: [PATCH v3 0/6] Make Emacs search use sexp format

Date: Fri, 31 May 2013 20:40:02 -0400

To: notmuch@notmuchmail.org

Cc: tomi.ollila@iki.fi

From: Austin Clements


This is v3 of id:1369934016-22308-1-git-send-email-amdragon@mit.edu.
This tweaks the shell invocation as suggested by Tomi and fixes two
comment typos pointed out by Mark.  It also adds a NEWS patch.  I'm
going to go ahead and mark this ready because of Tomi's and Mark's
reviews of v2.

The diff from v2 follows

diff --git a/NEWS b/NEWS
index 80abd97..2a4bde6 100644
--- a/NEWS
+++ b/NEWS
@@ -66,6 +66,17 @@ notmuch-vim, but of course that is their decision.
 Emacs Interface
 ---------------
 
+Better handling of errors in search buffers
+
+  Instead of interleaving errors in search result buffers, search mode
+  now reports errors in the minibuffer.
+
+Faster search results
+
+  Communication between search mode and the notmuch CLI is now more
+  efficient because it uses the CLI's S-expression support.  As a
+  result, search mode should now fill search buffers faster.
+
 No Emacs 22 support
 
   The Emacs 22 support added late 2010 was sufficient only for a short
diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index 180f63d..a206808 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -497,8 +497,8 @@ status."
 	 (command (or (executable-find notmuch-command)
 		      (error "command not found: %s" notmuch-command)))
 	 (proc (apply #'start-process name buffer
-		      "sh" "-c"
-		      "ERR=\"$1\"; shift; exec \"$0\" \"$@\" 2>\"$ERR\""
+		      "/bin/sh" "-c"
+		      "exec 2>\"$1\"; shift; exec \"$0\" \"$@\""
 		      command err-file args)))
     (process-put proc 'err-file err-file)
     (process-put proc 'sub-sentinel sentinel)
@@ -533,8 +533,8 @@ status."
 	    (when warnings
 	      (notmuch-logged-error (car warnings) (cdr warnings)))))
       (error
-       ;; Emacs behaves strangely if error an error escapes from a
-       ;; sentinel, so turns errors into messages.
+       ;; Emacs behaves strangely if an error escapes from a sentinel,
+       ;; so turn errors into messages.
        (message "%s" (error-message-string err))))
     (ignore-errors (delete-file err-file))))
 



Thread: