summaryrefslogtreecommitdiff
path: root/elisp/geiser-connection.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-16 22:35:21 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-16 22:35:21 +0200
commit7fad7a69914a920774fd2ce766198ecbd25265bc (patch)
tree65539d06be810ff61b0362037e10be5d30f386a7 /elisp/geiser-connection.el
parentd8da8d0e8733bb5c2fc01347be17dfc7c1c4cfa7 (diff)
downloadgeiser-7fad7a69914a920774fd2ce766198ecbd25265bc.tar.gz
geiser-7fad7a69914a920774fd2ce766198ecbd25265bc.tar.bz2
Better parsing of scheme retorts in the Emacs end.
Diffstat (limited to 'elisp/geiser-connection.el')
-rw-r--r--elisp/geiser-connection.el10
1 files changed, 7 insertions, 3 deletions
diff --git a/elisp/geiser-connection.el b/elisp/geiser-connection.el
index 33579f6..33668e0 100644
--- a/elisp/geiser-connection.el
+++ b/elisp/geiser-connection.el
@@ -160,10 +160,14 @@
(defun geiser-con--comint-buffer-form ()
(with-current-buffer (geiser-con--comint-buffer)
- (geiser-syntax--prepare-scheme-for-elisp-reader)
(condition-case nil
- (let ((form (read (current-buffer))))
- (if (listp form) form (error)))
+ (progn
+ (goto-char (point-min))
+ (re-search-forward "((\\(result\\|error\\) ")
+ (goto-char (match-beginning 0))
+ (geiser-syntax--prepare-scheme-for-elisp-reader)
+ (let ((form (read (current-buffer))))
+ (if (listp form) form (error))))
(error `((error (key . geiser-con-error) (msg . ,(buffer-string))))))))
(defun geiser-con--process-next (con)