diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2017-09-14 15:19:14 +0200 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2017-09-14 15:25:04 +0200 |
commit | 63f1ffac3244d22925a360adb757a2fcea6c38c4 (patch) | |
tree | de782c97319762c35d9880b4fd9745f16c4df680 | |
parent | 7584268314c0a59be18dc959b4b9a5e85733aaac (diff) | |
download | org-mode-63f1ffac3244d22925a360adb757a2fcea6c38c4.tar.gz |
ob-scheme: Fix results error on unspecified and void values
* lisp/ob-scheme.el (org-babel-scheme-execute-with-geiser): Return
"#<void>" or "#<unspecified>" when the REPL says so.
* testing/lisp/test-ob-scheme.el (test-ob-scheme/unspecified): New
test.
(test-ob-scheme/prologue): Fix tests.
Reported-by: Lawrence Bottorff <borgauf@gmail.com>
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-09/msg00346.html>
-rw-r--r-- | lisp/ob-scheme.el | 6 | ||||
-rw-r--r-- | testing/lisp/test-ob-scheme.el | 43 |
2 files changed, 33 insertions, 16 deletions
diff --git a/lisp/ob-scheme.el b/lisp/ob-scheme.el index f822e15..9576ee4 100644 --- a/lisp/ob-scheme.el +++ b/lisp/ob-scheme.el @@ -180,11 +180,7 @@ is true; otherwise returns the last value." (save-current-buffer (set-buffer repl-buffer) (geiser-repl-exit)) (set-process-query-on-exit-flag (get-buffer-process repl-buffer) nil) - (kill-buffer repl-buffer)) - (setq result (if (or (string= result "#<void>") - (string= result "#<unspecified>")) - nil - result))))) + (kill-buffer repl-buffer))))) result)) (defun org-babel-scheme--table-or-string (results) diff --git a/testing/lisp/test-ob-scheme.el b/testing/lisp/test-ob-scheme.el index 79dcce4..a3406d3 100644 --- a/testing/lisp/test-ob-scheme.el +++ b/testing/lisp/test-ob-scheme.el @@ -41,29 +41,50 @@ (ert-deftest test-ob-scheme/prologue () "Test :prologue parameter." - (equal "#+begin_src scheme :prologue \"(define x 2)\" + (should + (equal "#+begin_src scheme :prologue \"(define x 2)\" x #+end_src #+RESULTS: : 2 " - (org-test-with-temp-text - "#+begin_src scheme :prologue \"(define x 2)\"\nx\n#+end_src" - (org-babel-execute-maybe) - (buffer-string))) - (equal - "#+begin_src scheme :prologue \"(define x 2)\" :var y=1 + (org-test-with-temp-text + "#+begin_src scheme :prologue \"(define x 2)\"\nx\n#+end_src" + (org-babel-execute-maybe) + (buffer-string)))) + (should + (equal + "#+begin_src scheme :prologue \"(define x 2)\" :var y=1 x #+end_src #+RESULTS: : 2 " - (org-test-with-temp-text - "#+begin_src scheme :prologue \"(define x 2)\" :var y=1\nx\n#+end_src" - (org-babel-execute-maybe) - (buffer-string)))) + (org-test-with-temp-text + "#+begin_src scheme :prologue \"(define x 2)\" :var y=1\nx\n#+end_src" + (org-babel-execute-maybe) + (buffer-string))))) + +(ert-deftest test-ob-scheme/unspecified () + "Test <#unspecified> return value." + (should + (equal "#+begin_src scheme +\(define (mysquare x) + (* x x)) +#+end_src + +#+RESULTS: +: #<unspecified> +" + (org-test-with-temp-text + "#+begin_src scheme +(define (mysquare x) + (* x x)) +#+end_src" + (org-babel-execute-maybe) + (buffer-string))))) (provide 'test-ob-scheme) |