diff options
Diffstat (limited to 'lisp/org/ob-exp.el')
-rw-r--r-- | lisp/org/ob-exp.el | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el index e851ff624a7..d10d228eba8 100644 --- a/lisp/org/ob-exp.el +++ b/lisp/org/ob-exp.el @@ -216,8 +216,11 @@ this template." (delete-region begin end) (insert replacement))))) ((or `babel-call `inline-babel-call) - (org-babel-exp-do-export (org-babel-lob-get-info element) - 'lob) + (org-babel-exp-do-export + (or (org-babel-lob-get-info element) + (user-error "Unknown Babel reference: %s" + (org-element-property :call element))) + 'lob) (let ((rep (org-fill-template org-babel-exp-call-line-template @@ -289,11 +292,11 @@ this template." "Return a string with the exported content of a code block. The function respects the value of the :exports header argument." (let ((silently (lambda () (let ((session (cdr (assq :session (nth 2 info))))) - (unless (equal "none" session) - (org-babel-exp-results info type 'silent))))) + (unless (equal "none" session) + (org-babel-exp-results info type 'silent))))) (clean (lambda () (if (eq type 'inline) - (org-babel-remove-inline-result) - (org-babel-remove-result info))))) + (org-babel-remove-inline-result) + (org-babel-remove-result info))))) (pcase (or (cdr (assq :exports (nth 2 info))) "code") ("none" (funcall silently) (funcall clean) "") ("code" (funcall silently) (funcall clean) (org-babel-exp-code info type)) @@ -357,9 +360,12 @@ replaced with its value." (org-fill-template (if (eq type 'inline) org-babel-exp-inline-code-template - org-babel-exp-code-template) + org-babel-exp-code-template) `(("lang" . ,(nth 0 info)) - ("body" . ,(org-escape-code-in-string (nth 1 info))) + ;; Inline source code should not be escaped. + ("body" . ,(let ((body (nth 1 info))) + (if (eq type 'inline) body + (org-escape-code-in-string body)))) ("switches" . ,(let ((f (nth 3 info))) (and (org-string-nw-p f) (concat " " f)))) ("flags" . ,(let ((f (assq :flags (nth 2 info)))) @@ -390,10 +396,10 @@ inhibit insertion of results into the buffer." (setf (nth 1 info) body) (setf (nth 2 info) (org-babel-exp--at-source - (org-babel-process-params - (org-babel-merge-params - (nth 2 info) - `((:results . ,(if silent "silent" "replace"))))))) + (org-babel-process-params + (org-babel-merge-params + (nth 2 info) + `((:results . ,(if silent "silent" "replace"))))))) (pcase type (`block (org-babel-execute-src-block nil info)) (`inline |