;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 122.7
;;; Reason:
;;;  Take the control panel (gauges) into account when doing screen dump with Terminal-Q
;;; Written 27-May-87 19:43:16 by pld (Peter L. DeWolf) at site LMI Cambridge
;;; while running on Azathoth from band 4
;;; with Experimental System 122.6, Experimental Local-File 73.0, Experimental FILE-Server 22.0, Experimental Unix-Interface 11.0, Experimental Tape 17.0, Experimental Tiger 26.0, Experimental KERMIT 33.0, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, microcode 1752, SDU Boot Tape 3.12, SDU ROM 102, the old ones.



; From modified file DJ: L.WINDOW; BASSTR.LISP#410 at 27-May-87 19:43:17
#8R TV#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "TV")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: WINDOW; BASSTR  "

(DEFUN KBD-ESC-Q (ARG &AUX (PRINTER (OR SI:*DEFAULT-BIT-ARRAY-PRINTER* SI:*DEFAULT-PRINTER*)))
  (IF (STRINGP PRINTER)
      (SETQ PRINTER (SI:EXPAND-PRINTER-NAME PRINTER)))
  (IF (GET (IF (CONSP PRINTER) (CAR PRINTER) PRINTER) 'SI:PRINT-BIT-ARRAY)
      (USING-RESOURCE (ARRAY HARDCOPY-BIT-ARRAY-RESOURCE)
	(MULTIPLE-VALUE-BIND (NIL WIDTH HEIGHT)
	    (SNAPSHOT-SCREEN (SELECTQ ARG
			       (1 SELECTED-WINDOW)
			       (0 DEFAULT-SCREEN)
			       (4 (DO ((WINDOW SELECTED-WINDOW (SEND WINDOW :SUPERIOR)))
				      ((OR (NULL WINDOW) (TYPEP WINDOW 'BASIC-FRAME))
				       (OR WINDOW
					   (RETURN-FROM KBD-ESC-Q
					     (TV:NOTIFY NIL "Window or superior not a frame"))))))
			       (OTHERWISE
				(main-screen-and-who-line)))
			     ARRAY (if (not (or (equal arg 0) (equal arg 1) (equal arg 4)))
				       (+ main-screen-width
					  (if (and (boundp 'fancy-landscape) fancy-landscape)
					      control-panel-width
					    0))))
	  (BEEP)
	  (let ((left 0)
		(top 0)
		(right width)
		(bottom height))
	    (when (eq arg 3)
	      (let ((h (if (atom *terminal-3-q-margin*) *terminal-3-q-margin*
			 (car *terminal-3-q-margin*)))
		    (v (if (atom *terminal-3-q-margin*) *terminal-3-q-margin*
			 (cadr *terminal-3-q-margin*))))
	      (setq left h right (- right h)
		    top v bottom (- bottom v))))
	    (HARDCOPY-BIT-ARRAY ARRAY left top right bottom ':PRINTER PRINTER))))
    (TV:NOTIFY NIL "I don't know a printer that can hardcopy the screen")))

))
