* 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