evaluates, or the value of UNSPECIFIC if there are no expressions.
It had been returning UNSPECIFIC always, but the Edwin Debugger needs
to be able to find out the value of an evaluation after going through
the standard evaluation mechanism (for the purposes of the
CONTINUATION-BROWSER-RETURN-FROM,
CONTINUATION-BROWSER-RETURN-TO, and
CONTINUATION-BROWSER-RETRY
debugger commands).
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/evlcom.scm,v 1.28 1991/08/28 22:28:42 arthur Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/evlcom.scm,v 1.29 1991/09/12 23:31:52 arthur Exp $
;;;
;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology
;;;
evaluation-error-handler
(letrec
((loop
- (lambda ()
+ (lambda (result)
(let ((sexp (read)))
- (if (not (eof-object? sexp))
- (begin
- (editor-eval sexp environment)
- (loop)))))))
- loop))))))
+ (if (eof-object? sexp)
+ result
+ (loop (editor-eval sexp environment)))))))
+ (lambda ()
+ (loop unspecific))))))))
(define (evaluation-environment argument)
(let ((->environment