notmuch.el: Switch from start-process to call-process
authorCarl Worth <cworth@cworth.org>
Sat, 31 Oct 2009 07:44:39 +0000 (00:44 -0700)
committerCarl Worth <cworth@cworth.org>
Sat, 31 Oct 2009 07:44:39 +0000 (00:44 -0700)
We now get the point staying right at the top where we want it.
We also don't get any extraneous noise about "Process notmuch
completed" or anything like that. Just the output in a read-only
buffer.

notmuch.el

index 4f4a7c9c9f7e0b2a6b7e9fe32068beea844203b5..86b939913a65bd024c6f9f503603fb86923d5d25 100644 (file)
 (defun notmuch-search (query)
   "Run \"notmuch search\" with the given query string and display results."
   (interactive "sNotmuch search: ")
-  (start-process "notmuch-search" (concat "*notmuch-search-" query) "notmuch" "search" query))
+  (let ((buffer (get-buffer-create (concat "*notmuch-search-" query))))
+    (switch-to-buffer buffer)
+    (setq buffer-read-only t)
+    (let ((proc (get-buffer-process (current-buffer)))
+         (inhibit-read-only t))
+      (if proc
+         (error "notmuch search process already running for query `%s'" query)
+       )
+      (erase-buffer)
+      (beginning-of-buffer)
+      (save-excursion
+       (call-process "notmuch" nil t nil "search" query)
+       )
+      )))
 
 (defun notmuch ()
   "Run notmuch to display all mail with tag of 'inbox'"