From: Chris Hanson Date: Tue, 2 Nov 1993 23:32:15 +0000 (+0000) Subject: ERROR-DECISION can't be done inside the REPL message, because that X-Git-Tag: 20090517-FFI~7621 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=8f128578685e1dd35cb3bf794d53a429ecd54ebb;p=mit-scheme.git ERROR-DECISION can't be done inside the REPL message, because that message is protected by IGNORE-ERRORS. If another error occurs during the decision, it must start a nested REPL. --- diff --git a/v7/src/runtime/rep.scm b/v7/src/runtime/rep.scm index c55fa98df..6b7268dbe 100644 --- a/v7/src/runtime/rep.scm +++ b/v7/src/runtime/rep.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: rep.scm,v 14.43 1993/10/21 12:25:15 cph Exp $ +$Id: rep.scm,v 14.44 1993/11/02 23:32:15 cph Exp $ Copyright (c) 1988-93 Massachusetts Institute of Technology @@ -416,6 +416,13 @@ MIT in each case. |# (if (default-object? prompt) 'INHERIT prompt)))) (define (repl-driver repl) + (let ((condition (repl/condition repl))) + (if (and condition (condition/error? condition)) + (cond ((cmdl/operation repl 'ERROR-DECISION) + => (lambda (operation) + (operation repl condition))) + (hook/error-decision + (hook/error-decision repl condition))))) (let ((reader-history (repl/reader-history repl)) (printer-history (repl/printer-history repl))) (port/set-default-environment (cmdl/port repl) (repl/environment repl)) @@ -480,16 +487,8 @@ MIT in each case. |# (*unparser-string-length-limit* 500)) (condition/report-string condition))))) (and condition - (cmdl-message/append - (and (condition/error? condition) - (lambda (repl) - (cond ((cmdl/operation repl 'ERROR-DECISION) - => (lambda (operation) - (operation repl condition))) - (hook/error-decision - (hook/error-decision repl condition))))) - (and repl:allow-restart-notifications? - (condition-restarts-message condition)))) + repl:allow-restart-notifications? + (condition-restarts-message condition)) repl/set-default-environment))) (define hook/error-decision)