Update of /project/movitz/cvsroot/movitz/losp/lib In directory common-lisp.net:/tmp/cvs-serv28380
Modified Files: repl.lisp Log Message: Catch serious-conditions during readline, since readline is used for by the debugger. This to avoid recursive errors.
Date: Mon Oct 31 10:19:15 2005 Author: ffjeld
Index: movitz/losp/lib/repl.lisp diff -u movitz/losp/lib/repl.lisp:1.16 movitz/losp/lib/repl.lisp:1.17 --- movitz/losp/lib/repl.lisp:1.16 Sun Aug 28 23:12:27 2005 +++ movitz/losp/lib/repl.lisp Mon Oct 31 10:19:15 2005 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Wed Mar 19 14:58:12 2003 ;;;; -;;;; $Id: repl.lisp,v 1.16 2005/08/28 21:12:27 ffjeld Exp $ +;;;; $Id: repl.lisp,v 1.17 2005/10/31 09:19:15 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -53,9 +53,14 @@ (handler-case (let ((previous-package *package*) (buffer-string - (if *repl-readline-context* - (muerte.readline:contextual-readline *repl-readline-context*) - (muerte.readline:readline (make-string 256) *terminal-io*)))) + (handler-bind + ((serious-condition + (lambda (c) + (backtrace :frame (muerte:current-stack-frame)) + (format *terminal-io* "~&Error during readline (~S): ~A" + *repl-readline-context* c) + (muerte:halt-cpu)))) + (muerte.readline:contextual-readline *repl-readline-context*)))) (when (plusp (length buffer-string)) (terpri) (multiple-value-bind (form buffer-pointer)