aboutsummaryrefslogtreecommitdiff
path: root/emacs/notmuch-lib.el
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-09-11 11:04:08 -0300
committerDavid Bremner <david@tethera.net>2021-09-11 11:11:29 -0300
commite722b4f48c90ea6536ac7efef47f9d0f3d8cc191 (patch)
tree240768f85831c68ac1d877b7365e2a5a639e002d /emacs/notmuch-lib.el
parent9fe36d7dc79df93e75de44290faf3fed66e688c0 (diff)
emacs: wrap call-process
Provide safe working directory
Diffstat (limited to 'emacs/notmuch-lib.el')
-rw-r--r--emacs/notmuch-lib.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index 9693185f..45817e13 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -195,7 +195,7 @@ will be signaled.
Otherwise the output will be returned."
(with-temp-buffer
- (let ((status (apply #'call-process notmuch-command nil t nil args))
+ (let ((status (apply #'notmuch--call-process notmuch-command nil t nil args))
(output (buffer-string)))
(notmuch-check-exit-status status (cons notmuch-command args) output)
output)))
@@ -206,7 +206,7 @@ Otherwise the output will be returned."
(defun notmuch-cli-sane-p ()
"Return t if the cli seems to be configured sanely."
(unless notmuch--cli-sane-p
- (let ((status (call-process notmuch-command nil nil nil
+ (let ((status (notmuch--call-process notmuch-command nil nil nil
"config" "get" "user.primary_email")))
(setq notmuch--cli-sane-p (= status 0))))
notmuch--cli-sane-p)
@@ -286,7 +286,7 @@ depending on the value of `notmuch-poll-script'."
(message "Polling mail...")
(if (stringp notmuch-poll-script)
(unless (string-empty-p notmuch-poll-script)
- (unless (equal (call-process notmuch-poll-script nil nil) 0)
+ (unless (equal (notmuch--call-process notmuch-poll-script nil nil) 0)
(error "Notmuch: poll script `%s' failed!" notmuch-poll-script)))
(notmuch-call-notmuch-process "new"))
(message "Polling mail...done"))
@@ -639,7 +639,7 @@ the given type."
;; charset is US-ASCII. RFC6657
;; complicates this somewhat.
'us-ascii)))))
- (apply #'call-process
+ (apply #'notmuch--call-process
notmuch-command nil '(t nil) nil args)
(buffer-string))))))
(when (and cache data)
@@ -882,6 +882,10 @@ default"
(notmuch--apply-with-env
#'call-process-region start end program delete buffer display args))
+(defun notmuch--call-process (program &optional infile destination display &rest args)
+ "Wrap call-process, binding DEFAULT-DIRECTORY to a safe default"
+ (notmuch--apply-with-env #'call-process program infile destination display args))
+
(defun notmuch-call-notmuch--helper (destination args)
"Helper for synchronous notmuch invocation commands.
@@ -896,7 +900,7 @@ for `call-process'. ARGS is as described for
(otherwise
(error "Unknown keyword argument: %s" (car args)))))
(if (null stdin-string)
- (apply #'call-process notmuch-command nil destination nil args)
+ (apply #'notmuch--call-process notmuch-command nil destination nil args)
(insert stdin-string)
(apply #'notmuch--call-process-region (point-min) (point-max)
notmuch-command t destination nil args))))