* 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