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.

Submitted by: "Aaron L. Zeng" me@bcc32.com

TINYCHANGE
This commit is contained in:
Matthew Trzcinski 2024-03-15 22:27:04 +01:00
parent fb61e83f2a
commit 0e2a9524dc
1 changed files with 2 additions and 1 deletions

View File

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