;;; -*- Mode:Lisp; Readtable:T; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 123.257
;;; Reason:
;;;  Add ZWEI command EVALUATE-AND-PRINT-INTO-BUFFER which reads an sexp starting
;;;  at point and replaces it with what gets printed to *STANDARD-OUTPUT* by its evaluation.
;;; Written 5-May-88 15:58:25 by RG at site Gigamos Cambridge
;;; while running on Death from band 1
;;; with Experimental System 123.215, Experimental Local-File 73.3, Experimental FILE-Server 22.1, Experimental Unix-Interface 11.0, Experimental Tape 18.2, Experimental KERMIT 34.3, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, microcode 1755, SDU Boot Tape 3.13, SDU ROM 102, LOADED.



; From file DJ: L.ZWEI; COMC.LISP#224 at 5-May-88 15:58:25
#8R ZWEI#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "ZWEI")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: ZWEI; COMC  "

(DEFCOM COM-EVALUATE-AND-PRINT-INTO-BUFFER
	"Evaluate the next s-expression and replace the result into the buffer.
The original expression is deleted and the value, printed out, replaces it."
	()
  (LET* ((POINT (POINT)) (MARK (MARK))
	 (STREAM (REST-OF-INTERVAL-STREAM POINT))
	 (FORM (READ-OR-BARF STREAM))
	 ;(VALUE (SI:EVAL-SPECIAL-OK FORM))
	 )
    (MOVE-BP MARK (SEND STREAM :READ-BP))
    (WITH-UNDO-SAVE ("replacement" POINT MARK T)
      ;(FUNCALL (OR PRIN1 'PRIN1) VALUE STREAM)
      (LET ((*STANDARD-OUTPUT* STREAM))
	(SI:EVAL-SPECIAL-OK FORM))
      (WITH-BP (END (SEND STREAM :READ-BP) :NORMAL)
	(DELETE-INTERVAL POINT MARK T)
	(MOVE-BP POINT END))))
  DIS-TEXT)

))
