;;; -*-Scheme-*-
;;;
-;;; $Id: intmod.scm,v 1.77 1993/11/02 22:19:34 cph Exp $
+;;; $Id: intmod.scm,v 1.78 1994/04/22 05:05:34 cph Exp $
;;;
-;;; Copyright (c) 1986, 1989-93 Massachusetts Institute of Technology
+;;; Copyright (c) 1986, 1989-94 Massachusetts Institute of Technology
;;;
;;; This material was developed by the Scheme project at the
;;; Massachusetts Institute of Technology, Department of
(define-variable repl-enable-transcript-buffer
"If true, record input and output from inferior REPLs in transcript buffer.
This flag has effect only when ENABLE-TRANSCRIPT-BUFFER is also true."
- true
+ #t
boolean?)
(define-variable repl-error-decision
"If true, errors in REPL evaluation force the user to choose an option.
Otherwise, they start a nested error REPL."
- false
+ #f
boolean?)
(define-variable repl-mode-locked
"If true, user cannot change the mode of REPL and CMDL buffers."
- true
+ #t
+ boolean?)
+
+(define-variable inferior-repl-write-results
+ "If true, results of evaluation commands are written in the REPL buffer.
+This includes evaluation of expressions in other buffers.
+Otherwise, only evaluation of expressions in the REPL buffer itself do this."
+ #t
boolean?)
\f
(define (call-with-transcript-output-mark buffer procedure)
(region-end region)
mark))))
(let ((port (buffer-interface-port buffer)))
- (let ((end
- (let ((end (buffer-end buffer))
- (end* (region-end region)))
- (if (mark~ end end*)
- end*
- end))))
- (set-buffer-point! buffer end)
- (move-mark-to! (port/mark port) end))
+ (move-mark-to! (port/mark port)
+ (let ((end (buffer-end buffer))
+ (end* (region-end region)))
+ (if (mark~ end end*)
+ (begin
+ (set-buffer-point! buffer end*)
+ end*)
+ end)))
(let ((queue (port/expression-queue port)))
(bind-condition-handler (list condition-type:error)
evaluation-error-handler
(write-to-string expression))
mark))))
(let ((port (buffer-interface-port buffer)))
- (let ((end (buffer-end buffer)))
- (set-buffer-point! buffer end)
- (move-mark-to! (port/mark port) end))
+ ;;(move-mark-to! (port/mark port) (buffer-end buffer))
(enqueue! (port/expression-queue port) (cons expression 'EXPRESSION))
(end-input-wait port)))
(port/copy interface-port-template
(make-interface-port-state
thread
- (mark-left-inserting-copy (buffer-end buffer))
+ (mark-right-inserting-copy (buffer-end buffer))
(make-ring (ref-variable comint-input-ring-size))
(make-queue)
false
(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)))))
+ (if (and (not (ref-variable inferior-repl-write-results buffer))
+ (memq (operation/current-expression-context port expression)
+ '(EXPRESSION OTHER-BUFFER)))
+ (transcript-write value
+ (and (ref-variable enable-transcript-buffer buffer)
+ (transcript-buffer)))
+ (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)))
(define (process-output-queue port)
(let ((interrupt-mask (set-interrupt-enables! interrupt-mask/gc-ok))
- (mark (port/mark port))
+ (mark (mark-left-inserting-copy (port/mark port)))
(result #t))
(call-with-transcript-output-mark (port/buffer port)
(lambda (transcript-mark)
(if transcript-mark
(region-insert-string! transcript-mark
(car strings)))))))))
+ (move-mark-to! (port/mark port) mark)
+ (mark-temporary! mark)
(set-interrupt-enables! interrupt-mask)
result))
\f
(READ ,operation/read)
(CURRENT-EXPRESSION-CONTEXT ,operation/current-expression-context)
(WRITE-RESULT ,operation/write-result))
- false))
\ No newline at end of file
+ #f))
\ No newline at end of file