From 0da8972d390426eb8ac972fe04d826ecb033625f Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Tue, 29 Aug 1989 20:04:27 +0000 Subject: [PATCH] Setup error-handling when re-evaluating arguments (as in repeat-complex-command), and also when reading expressions from the keyboard. --- v7/src/edwin/comred.scm | 5 +++-- v7/src/edwin/evlcom.scm | 8 +++++++- v7/src/edwin/make.scm | 4 ++-- v7/src/edwin/utils.scm | 6 ++---- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/v7/src/edwin/comred.scm b/v7/src/edwin/comred.scm index 860d3ca3d..57a2ac425 100644 --- a/v7/src/edwin/comred.scm +++ b/v7/src/edwin/comred.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/comred.scm,v 1.81 1989/08/12 08:31:32 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/comred.scm,v 1.82 1989/08/29 20:03:49 cph Exp $ ;;; ;;; Copyright (c) 1986, 1989 Massachusetts Institute of Technology ;;; @@ -306,7 +306,8 @@ (apply (command-procedure (name->command (car entry))) (map (let ((environment (->environment '(EDWIN)))) (lambda (expression) - (eval expression environment))) (cdr entry)))) + (eval-with-history expression environment))) + (cdr entry)))) (define (interactive-argument char prompt) (let ((prompting diff --git a/v7/src/edwin/evlcom.scm b/v7/src/edwin/evlcom.scm index e126770fd..a63bd8d61 100644 --- a/v7/src/edwin/evlcom.scm +++ b/v7/src/edwin/evlcom.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/evlcom.scm,v 1.17 1989/08/12 08:32:04 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/evlcom.scm,v 1.18 1989/08/29 20:04:00 cph Rel $ ;;; ;;; Copyright (c) 1986, 1989 Massachusetts Institute of Technology ;;; @@ -202,6 +202,12 @@ With an argument, prompts for the evaluation environment." 'VISIBLE-DEFAULT default-type) (ref-mode-object prompt-for-expression)))) + +(define (read-from-string string) + (bind-condition-handler '() evaluation-error-handler + (lambda () + (with-input-from-string string read)))) + (define-major-mode prompt-for-expression scheme #f "Major mode for editing solicited input expressions. Depending on what is being solicited, either defaulting or completion diff --git a/v7/src/edwin/make.scm b/v7/src/edwin/make.scm index fba969cfd..626295834 100644 --- a/v7/src/edwin/make.scm +++ b/v7/src/edwin/make.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/make.scm,v 3.17 1989/08/14 11:51:13 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/make.scm,v 3.18 1989/08/29 20:04:27 cph Exp $ Copyright (c) 1989 Massachusetts Institute of Technology @@ -37,4 +37,4 @@ MIT in each case. |# (declare (usual-integrations)) (package/system-loader "edwin" '() 'QUERY) -(add-system! (make-system "Edwin" 3 17 '())) \ No newline at end of file +(add-system! (make-system "Edwin" 3 18 '())) \ No newline at end of file diff --git a/v7/src/edwin/utils.scm b/v7/src/edwin/utils.scm index b8208463d..e9467cb9f 100644 --- a/v7/src/edwin/utils.scm +++ b/v7/src/edwin/utils.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/utils.scm,v 1.19 1989/08/14 09:23:05 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/utils.scm,v 1.20 1989/08/29 20:04:08 cph Rel $ ;;; ;;; Copyright (c) 1986, 1989 Massachusetts Institute of Technology ;;; @@ -114,9 +114,7 @@ (if (default-object? port) (current-input-port) (guarantee-input-port port)))) - -(define (read-from-string string) - (with-input-from-string string read)) + (define (y-or-n? . strings) (define (loop) (let ((char (char-upcase (read-char)))) -- 2.25.1