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.
(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'"