branch: externals/org commit 5b366a731b2baf5ee88dab395f1a4dac1c78c3ee Author: Ihor Radchenko <yanta...@posteo.net> Commit: Ihor Radchenko <yanta...@posteo.net>
org-babel-shell-initialize: Define session API backend for all the shells * lisp/ob-shell.el (org-babel-shell-initialize): Define org-babel-prep-session:<shell-name> and org-babel-<shell-name>-initiate-session functions. Without this, `org-babel-switch-to-session' does not work for ob-shell blocks. --- lisp/ob-shell.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el index 2304c7ec9c..8d93eb8d9d 100644 --- a/lisp/ob-shell.el +++ b/lisp/ob-shell.el @@ -85,6 +85,24 @@ is modified outside the Customize interface." (shell-file-name name)) (org-babel-execute:shell body params)))) (put fname 'definition-name 'org-babel-shell-initialize)) + (let ((fname (intern (concat "org-babel-prep-session:" name)))) + (defalias fname + (lambda (session params) + (:documentation + (format "Prepare %s SESSION according to the header arguments specified in PARAMS." name)) + (let ((explicit-shell-file-name name) + (shell-file-name name)) + (org-babel-prep-session:shell session params)))) + (put fname 'definition-name 'org-babel-shell-initialize)) + (let ((fname (intern (format "org-babel-%s-initiate-session" name)))) + (defalias fname + (lambda (session _params) + (:documentation + (format "Initiate %s session named SESSION." name)) + (let ((explicit-shell-file-name name) + (shell-file-name name)) + (org-babel-sh-initiate-session session)))) + (put fname 'definition-name 'org-babel-shell-initialize)) (defalias (intern (concat "org-babel-variable-assignments:" name)) #'org-babel-variable-assignments:shell (format "Return list of %s statements assigning to the block's \