From 580815508464dcae551752d819c1b792effa591e Mon Sep 17 00:00:00 2001 From: "Aaron L. Zeng" Date: Sat, 23 Mar 2024 08:57:18 +0100 Subject: [PATCH] lisp/ob-shell.el: Initialize explicit-shell-file-name * lisp/ob-shell.el (org-babel-shell-initialize): force blocks to always use the specified shell language Sessions are initialized using `shell'. The `shell' command checks `explicit-shell-file-name' for file to use before checking other variables, like `shell-file-name'. Previously, only `shell-file-name' was set. So, if the user had set the `explicit-shell-file-name', session blocks would use that whereas non-session blocks would use `shell-file-name', resulting in inconsistent behavior. This change sets both variables so that even if the user changes the `explicit-shell-file-name' or `shell-file-name', blocks will only use the shell language specified by the block. 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))