ob-export: Give more informative error on unknown call reference

* lisp/ob-exp.el (org-babel-exp-process-buffer): Signal user-error
with an informative message rather than letting
org-babel-exp-do-export call fail due to an invalid INFO argument.
* testing/lisp/test-ob-exp.el (ob-exp/unknown-call-reference): Add
test.

Reported-by: Greg Minshall <minshall@umich.edu>
Ref: https://orgmode.org/list/628738.1616259666@apollo2.minshall.org
This commit is contained in:
Kyle Meyer 2021-03-21 13:41:31 -04:00
parent 5db61eb0f9
commit 5450d64202
2 changed files with 13 additions and 2 deletions

View File

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

View File

@ -585,6 +585,14 @@ src_emacs-lisp{(+ 1 1)}"
(org-babel-exp-process-buffer))
(buffer-string)))))
(ert-deftest ob-exp/unknown-call-reference ()
"Test exporting with a call that references an unknown name."
(should-error
(org-test-with-temp-text
"call_foo()"
(let ((org-export-use-babel t))
(org-babel-exp-process-buffer)))
:type 'user-error))
(provide 'test-ob-exp)