ob-core: Fix :results list when result is a table

* lisp/ob-core.el (org-babel-insert-result): Do not treat table lines
in RESULT verbatim.
* testing/lisp/test-ob-shell.el (ob-shell/results-list): Add new test.

Reported-by: Rudolf Adamkovič <salutis@me.com>
Link: https://orgmode.org/list/m2tu1v8gj8.fsf@me.com
This commit is contained in:
Ihor Radchenko 2022-12-18 14:04:57 +03:00
parent 47d1299e48
commit 2247998758
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
2 changed files with 19 additions and 1 deletions

View File

@ -2464,7 +2464,11 @@ INFO may provide the values of these header arguments (in the
(cons 'unordered
(mapcar
(lambda (e)
(list (if (stringp e) e (format "%S" e))))
(cond
((stringp e) (list e))
((listp e)
(mapcar (lambda (x) (format "%S" x)) e))
(t (list (format "%S" e)))))
(if (listp result) result
(split-string result "\n" t))))
'(:splicep nil :istart "- " :iend "\n")))

View File

@ -170,6 +170,20 @@ ob-comint.el, which was not previously tested."
"#+BEGIN_SRC sh :results table\necho 'I \"want\" it all'\n#+END_SRC"
(org-babel-execute-src-block)))))
(ert-deftest ob-shell/results-list ()
"Test :results list."
(org-test-with-temp-text
"#+BEGIN_SRC sh :results list\necho 1\necho 2\necho 3\n#+END_SRC"
(should
(equal '((1) (2) (3))
(org-babel-execute-src-block)))
(search-forward "#+results")
(beginning-of-line 2)
(should
(equal
"- 1\n- 2\n- 3\n"
(buffer-substring-no-properties (point) (point-max))))))
;;; Standard output
(ert-deftest ob-shell/standard-output-after-success ()