From 9db33cc8c9366d71071610209dcb4c655eaa6e1f Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Wed, 9 Feb 2011 23:49:50 +0100 Subject: More robust retort detection Some schemes (okay, Guile) may output spurious messages besides a well-formed retort. This will be eventually fixed; in the meantime, we try to skip the noise (and may fail miserably if that noise has a form similar to the signal we search). --- elisp/geiser-connection.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'elisp/geiser-connection.el') diff --git a/elisp/geiser-connection.el b/elisp/geiser-connection.el index cade18a..d3c99cb 100644 --- a/elisp/geiser-connection.el +++ b/elisp/geiser-connection.el @@ -1,6 +1,6 @@ ;;; geiser-connection.el -- talking to a scheme process -;; Copyright (C) 2009, 2010 Jose Antonio Ortega Ruiz +;; Copyright (C) 2009, 2010, 2011 Jose Antonio Ortega Ruiz ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the Modified BSD License. You should @@ -184,7 +184,9 @@ `((error (key . geiser-debugger)) (output . ,answer)) (condition-case err - (let ((form (car (read-from-string answer)))) + (let* ((start (and (string-match "((\\(?:result\\|error\\)" answer) + (match-beginning 0))) + (form (car (read-from-string answer start)))) (and (listp form) form)) (error `((error (key . geiser-con-error)) (output . ,(format "%s\n(%s)" -- cgit v1.2.3