diff options
author | Michael Albinus <michael.albinus@gmx.de> | 2013-01-09 13:48:30 +0100 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2013-01-09 14:11:08 +0100 |
commit | 79dd795fe4abb5fdcc1340194b25b958342b8c66 (patch) | |
tree | ce1103c932027d928acec11295c445539c8e0566 | |
parent | 31e765a10528b85163857cff8870a4f0f852dab0 (diff) | |
download | org-mode-79dd795fe4abb5fdcc1340194b25b958342b8c66.tar.gz |
ob-eval.el (org-babel-shell-command-on-region): Use `executable-find' for local `shell-file-name'
* ob-eval.el (org-babel-shell-command-on-region): Use
`executable-find' for local `shell-file-name'.
-rw-r--r-- | lisp/ob-eval.el | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lisp/ob-eval.el b/lisp/ob-eval.el index 5884d33..22d2bcf 100644 --- a/lisp/ob-eval.el +++ b/lisp/ob-eval.el @@ -137,11 +137,17 @@ specifies the value of ERROR-BUFFER." t))) (let ((input-file (org-babel-temp-file "input-")) (error-file (if error-buffer (org-babel-temp-file "scor-") nil)) + ;; Unfortunately, `executable-find' does not support file name + ;; handlers. Therefore, we could use it in the local case + ;; only. (shell-file-name - (if (file-executable-p - (concat (file-remote-p default-directory) shell-file-name)) - shell-file-name - "/bin/sh")) + (cond ((and (not (file-remote-p default-directory)) + (executable-find shell-file-name)) + shell-file-name) + ((file-executable-p + (concat (file-remote-p default-directory) shell-file-name)) + shell-file-name) + ("/bin/sh"))) exit-status) ;; There is an error in `process-file' when `error-file' exists. ;; This is fixed in Emacs trunk as of 2012-12-21; let's use this |