;;; -*-Scheme-*-
;;;
-;;; $Id: evlcom.scm,v 1.44 1993/10/15 05:35:13 cph Exp $
+;;; $Id: evlcom.scm,v 1.45 1993/10/15 12:49:57 cph Exp $
;;;
;;; Copyright (c) 1986, 1989-93 Massachusetts Institute of Technology
;;;
(syntax-table (ref-variable-object scheme-syntax-table))
(evaluate-inferior (ref-variable-object evaluate-in-inferior-repl))
(run-light (ref-variable-object run-light)))
- (if (and (not (variable-local-value? buffer evaluate-inferior))
+ (if (and (not (repl-buffer? buffer))
+ (not (variable-local-value? buffer evaluate-inferior))
(or (and (variable-local-value? buffer environment)
(not (eq? 'DEFAULT
(variable-local-value buffer environment))))
(cond ((ref-variable disable-evaluation-commands buffer)
(editor-error "Evaluation commands disabled in this buffer."))
((ref-variable evaluate-in-inferior-repl buffer)
- (inferior-repl-eval-region (current-repl-buffer) region))
+ (inferior-repl-eval-region (current-repl-buffer buffer) region))
(else
(evaluate-region region (evaluation-environment buffer)))))))
(let ((buffer (current-buffer)))
(cond ((ref-variable disable-evaluation-commands buffer)
(editor-error "Evaluation commands disabled in this buffer."))
- ((ref-variable evaluate-in-inferior-repl buffer)
- (inferior-repl-eval-expression (current-repl-buffer) expression))
+ ((and (ref-variable evaluate-in-inferior-repl buffer)
+ (current-repl-buffer* buffer))
+ => (lambda (buffer)
+ (inferior-repl-eval-expression buffer expression)))
(else
(if (ref-variable enable-transcript-buffer buffer)
(call-with-transcript-buffer
;;; -*-Scheme-*-
;;;
-;;; $Id: intmod.scm,v 1.64 1993/09/02 18:45:38 cph Exp $
+;;; $Id: intmod.scm,v 1.65 1993/10/15 12:50:04 cph Exp $
;;;
;;; Copyright (c) 1986, 1989-93 Massachusetts Institute of Technology
;;;
(define (inferior-repl/quit)
unspecific)
\f
-(define (current-repl-buffer)
- (let ((buffer (current-repl-buffer*)))
+(define (current-repl-buffer buffer)
+ (let ((buffer (current-repl-buffer* buffer)))
(if (not buffer)
(error "No REPL to evaluate in."))
buffer))
-(define (current-repl-buffer*)
- (let ((buffer (current-buffer)))
- (if (buffer-interface-port buffer)
- buffer
- (let ((buffers repl-buffers))
- (and (not (null? buffers))
- (car buffers))))))
+(define (current-repl-buffer* buffer)
+ (if (and buffer (repl-buffer? buffer))
+ buffer
+ (let ((buffer (current-buffer)))
+ (if (buffer-interface-port buffer)
+ buffer
+ (let ((buffers repl-buffers))
+ (and (not (null? buffers))
+ (car buffers)))))))
+
+(define (repl-buffer? buffer)
+ (buffer-interface-port buffer))
(define repl-buffers)
(let ((variable (ref-variable-object run-light))
(value (if run? "eval" "listen")))
(if (and (ref-variable evaluate-in-inferior-repl buffer)
- (eq? buffer (current-repl-buffer*)))
+ (eq? buffer (current-repl-buffer* #f)))
(begin
(undefine-variable-local-value! buffer variable)
(set-variable-default-value! variable value)
(evaluate-in-inferior-repl
(ref-variable evaluate-in-inferior-repl buffer)))
(if (and evaluate-in-inferior-repl
- (eq? buffer (current-repl-buffer*)))
+ (eq? buffer (current-repl-buffer* #f)))
(begin
(set-variable-default-value! run-light false)
(global-window-modeline-event!)))
(set! repl-buffers (delq! buffer repl-buffers))
(let ((buffer
(and evaluate-in-inferior-repl
- (current-repl-buffer*))))
+ (current-repl-buffer* #f))))
(if buffer
(let ((value (variable-local-value buffer run-light)))
(undefine-variable-local-value! buffer run-light)
(define (interrupt-command interrupt)
(lambda ()
(signal-thread-event
- (port/thread (buffer-interface-port (current-repl-buffer)))
+ (port/thread (buffer-interface-port (current-repl-buffer #f)))
interrupt)))
(define-command inferior-cmdl-breakpoint
(let ((windows (buffer-windows buffer)))
(and (not (null? windows))
(apply min (map window-x-size windows)))))))
+
+(define (operation/write-result port expression value hash-number)
+ (let ((buffer (port/buffer port)))
+ (case (operation/current-expression-context port expression)
+ ((EXPRESSION OTHER-BUFFER)
+ (transcript-write value
+ (and (ref-variable enable-transcript-buffer buffer)
+ (transcript-buffer))))
+ (else
+ (default/write-result port expression value hash-number)))))
\f
(define (enqueue-output-string! port string)
(let ((interrupt-mask (set-interrupt-enables! interrupt-mask/gc-ok)))
(PEEK-CHAR ,operation/peek-char)
(READ-CHAR ,operation/read-char)
(READ ,operation/read)
- (CURRENT-EXPRESSION-CONTEXT ,operation/current-expression-context))
+ (CURRENT-EXPRESSION-CONTEXT ,operation/current-expression-context)
+ (WRITE-RESULT ,operation/write-result))
false))
\ No newline at end of file