* lisp/ob-shell.el (org-babel-shell-initialize): Override
explicit-shell-file-name in addition to shell-file-name.

When a session with shell source blocks, execution calls `shell',
which checks `explicit-shell-file-name' variable before
`shell-file-name', to determine what shell to run.  If the user has
customized this variable to affect the behavior of M-x shell,
`org-babel-shell-initialize' should still run the shell specified by
the org source block's language name.

TINYCHANGE
---
 lisp/ob-shell.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el
index 551c3785d..35d9e9376 100644
--- a/lisp/ob-shell.el
+++ b/lisp/ob-shell.el
@@ -81,7 +81,8 @@ is modified outside the Customize interface."
         (lambda (body params)
          (:documentation
            (format "Execute a block of %s commands with Babel." name))
-         (let ((shell-file-name name))
+         (let ((explicit-shell-file-name name)
+                (shell-file-name name))
            (org-babel-execute:shell body params))))
       (put fname 'definition-name 'org-babel-shell-initialize))
     (defalias (intern (concat "org-babel-variable-assignments:" name))
-- 
2.42.0


Reply via email to