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'.
This commit is contained in:
Michael Albinus 2013-01-09 13:48:30 +01:00 committed by Bastien Guerry
parent 31e765a105
commit 79dd795fe4
1 changed files with 10 additions and 4 deletions

View File

@ -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