From 42b92303faa86b1e9bd0692fca9469eb6a8f02ce Mon Sep 17 00:00:00 2001 From: Nicholas Vollmer Date: Thu, 9 Sep 2021 16:40:02 -0400 Subject: [PATCH] ob-emacs-lisp: bind lexical-binding for :lexical t src blocks * lisp/ob-emacs-lisp.el (org-babel-execute:emacs-lisp): bind lexical-binding in lexical environments Because we use `eval' to execute the src block, this variable needs to be explicitly set. Passing t as eval's LEXICAL arg will not bind this variable. --- lisp/ob-emacs-lisp.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/ob-emacs-lisp.el b/lisp/ob-emacs-lisp.el index d03151f13..6cf387b96 100644 --- a/lisp/ob-emacs-lisp.el +++ b/lisp/ob-emacs-lisp.el @@ -61,7 +61,7 @@ by `org-edit-src-code'.") (defun org-babel-execute:emacs-lisp (body params) "Execute a block of emacs-lisp code with Babel." - (let* ((lexical (cdr (assq :lexical params))) + (let* ((lexical (org-babel-emacs-lisp-lexical (cdr (assq :lexical params)))) (result-params (cdr (assq :result-params params))) (body (format (if (member "output" result-params) "(with-output-to-string %s\n)" @@ -71,7 +71,7 @@ by `org-edit-src-code'.") (member "pp" result-params)) (concat "(pp " body ")") body)) - (org-babel-emacs-lisp-lexical lexical)))) + (when lexical (list (cons 'lexical-binding t) t))))) (org-babel-result-cond result-params (let ((print-level nil) (print-length nil)) -- 2.33.0