[PATCH v2 3/7] emacs: notmuch.el split call-process into call-process-region
markwalters1009
markwalters1009 at gmail.com
Sat Nov 24 05:20:52 PST 2012
From: Mark Walters <markwalters1009 at gmail.com>
We add a new function notmuch-call-process-region so that functions
can call notmuch with some region sent to stdin. This is preparation
for using the new query from stdin functionality.
---
emacs/notmuch.el | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index f9454d8..64b9474 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -533,15 +533,17 @@ If BARE is set then do not prefix with \"thread:\""
(let ((message-id (notmuch-search-find-thread-id)))
(notmuch-mua-new-reply message-id prompt-for-sender nil)))
-(defun notmuch-call-notmuch-process (&rest args)
- "Synchronously invoke \"notmuch\" with the given list of arguments.
+(defun notmuch-call-notmuch-process-region (beg end &rest args)
+ "Synchronously invoke \"notmuch\" with the given list of arguments and pipe region.
-Output from the process will be presented to the user as an error
-and will also appear in a buffer named \"*Notmuch errors*\"."
+The region from beg to end in the current buffer will be piped to
+stdin for the notmuch process. Output from the process will be
+presented to the user as an error and will also appear in a
+buffer named \"*Notmuch errors*\"."
(let ((error-buffer (get-buffer-create "*Notmuch errors*")))
(with-current-buffer error-buffer
(erase-buffer))
- (if (eq (apply 'call-process notmuch-command nil error-buffer nil args) 0)
+ (if (eq (apply 'call-process-region beg end notmuch-command nil error-buffer nil args) 0)
(point)
(progn
(with-current-buffer error-buffer
@@ -550,6 +552,13 @@ and will also appear in a buffer named \"*Notmuch errors*\"."
(error (buffer-substring beg end))
))))))
+(defun notmuch-call-notmuch-process (&rest args)
+ "Synchronously invoke \"notmuch\" with the given list of arguments.
+
+Output from the process will be presented to the user as an error
+and will also appear in a buffer named \"*Notmuch errors*\"."
+ (apply 'notmuch-call-notmuch-process-region (point) (point) args))
+
(defun notmuch-search-set-tags (tags &optional pos)
(let ((new-result (plist-put (notmuch-search-get-result pos) :tags tags)))
(notmuch-search-update-result new-result pos)))
--
1.7.9.1
More information about the notmuch
mailing list