summaryrefslogtreecommitdiff
path: root/elisp
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-15 15:55:46 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-15 15:55:46 +0100
commitd7642ed7d0e3184921835644d8dde0b1b50e1e6f (patch)
treec73334a3faf2d7c1e21dbcf7467b0a93c919b287 /elisp
parent660fc8e0465e48812fc6f38f82d91d22b0664118 (diff)
downloadgeiser-guile-d7642ed7d0e3184921835644d8dde0b1b50e1e6f.tar.gz
geiser-guile-d7642ed7d0e3184921835644d8dde0b1b50e1e6f.tar.bz2
Multiple values as evaluation result supported.
Diffstat (limited to 'elisp')
-rw-r--r--elisp/geiser-eval.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/elisp/geiser-eval.el b/elisp/geiser-eval.el
index 8574cdc..847a198 100644
--- a/elisp/geiser-eval.el
+++ b/elisp/geiser-eval.el
@@ -142,7 +142,11 @@ EVAL, COMPILE, LOAD-FILE and COMPILE-FILE should be supported."))
(defsubst geiser-eval--retort-p (ret)
(and (listp ret) (or (assoc 'error ret) (assoc 'result ret))))
-(defsubst geiser-eval--retort-result (ret) (cdr (assoc 'result ret)))
+
+(defun geiser-eval--retort-result (ret)
+ (let ((values (cdr (assoc 'result ret))))
+ (if (> (length values) 1) (cons :values values) (car values))))
+
(defsubst geiser-eval--retort-output (ret) (cdr (assoc 'output ret)))
(defsubst geiser-eval--retort-error (ret) (cdr (assoc 'error ret)))
(defsubst geiser-eval--retort-stack (ret) (cdr (assoc 'stack ret)))