;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for CDI version 1.20 ;;; Reason: ;;; Add Explorer printer host. ;;; Written 17-Jul-86 15:38:05 by Gibson at site CDI Dallas ;;; while running on EXPLORER-1 from band 1 ;;; with System 110.232, Lambda-Diag 7.17, Experimental Local-File 68.7, FILE-Server 18.4, Unix-Interface 9.1, ZMail 65.14, Object Lisp 3.4, Tape 6.39, Site Data Editor 3.3, Tiger 24.0, KERMIT 31.3, Gateway 4.15, TCP-Kernel 39.7, TCP-User 62.7, TCP-Server 45.5, MEDIUM-RESOLUTION-COLOR 3.4, MICRO-COMPILATION-TOOLS 3.2, System Revision Level 3.93, Experimental Window-Maker 2.0, Experimental CDI 1.19, microcode 1564, CDI Beta III. ; From file S2: >Lambda-3>IO1>exp-printer-host.lisp.3 at 17-Jul-86 15:38:06 #8R FILE-SYSTEM#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM"))) (COMPILER::PATCH-SOURCE-FILE "SYS: io1; EXP-PRINTER-HOST  " (DEFFLAVOR EXP-PRINTER-HOST (DEVICE-NAME) (SI:BASIC-HOST) (:GETTABLE-INSTANCE-VARIABLES DEVICE-NAME) (:INITABLE-INSTANCE-VARIABLES DEVICE-NAME)) )) ; From modified file S2: >Lambda-3>IO1>exp-printer-host.lisp.3 at 17-Jul-86 15:38:46 #8R FILE-SYSTEM#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM"))) (COMPILER::PATCH-SOURCE-FILE "SYS: io1; EXP-PRINTER-HOST  " (DEFFLAVOR EXP-PRINTER-HOST (DEVICE-NAME) (SI:BASIC-HOST) (:GETTABLE-INSTANCE-VARIABLES DEVICE-NAME) (:INITABLE-INSTANCE-VARIABLES DEVICE-NAME)) (DEFMETHOD (EXP-PRINTER-HOST :NAME) () DEVICE-NAME) (DEFMETHOD (EXP-PRINTER-HOST :NAME-AS-FILE-COMPUTER) () DEVICE-NAME) (DEFMETHOD (EXP-PRINTER-HOST :PATHNAME-HOST-NAMEP) (NAME) (STRING-EQUAL NAME DEVICE-NAME)) (DEFMETHOD (EXP-PRINTER-HOST :PATHNAME-FLAVOR) () (VALUES 'EXP-PRINTER-PATHNAME NIL)) (DEFFLAVOR EXP-PRINTER-PATHNAME () (PATHNAME)) (DEFMETHOD (EXP-PRINTER-PATHNAME :PARSE-NAMESTRING) (HOST-SPECIFIED STRING &OPTIONAL (START 0) END) HOST-SPECIFIED (VALUES :NO-INTERN (MAKE-INSTANCE 'EXP-PRINTER-FILEHANDLE :NAMESTRING (SUBSTRING STRING START END)))) ;NAMESTRING is just for pseudo debugging purposes; Magtape files dont really have names. (DEFFLAVOR EXP-PRINTER-FILEHANDLE (NAMESTRING (last-instance nil)) () (:INITABLE-INSTANCE-VARIABLES NAMESTRING)) (DEFMETHOD (EXP-PRINTER-FILEHANDLE :STRING-FOR-PRINTING) () NAMESTRING) (DEFMETHOD (EXP-PRINTER-FILEHANDLE :PRINT-SELF) (STREAM PRINDEPTH SLASHIFY-P) PRINDEPTH (COND (SLASHIFY-P (SEND STREAM :STRING-OUT "#<") (PRIN1 'EXP-PRINTER-FILEHANDLE STREAM) (FORMAT STREAM " ~S ~O>" NAMESTRING (%POINTER SELF))) (T (SEND STREAM :STRING-OUT NAMESTRING)))) ;This is a kludge to make the copy-patch-files-of-system work. (DEFMETHOD (EXP-PRINTER-FILEHANDLE :PATCH-FILE-PATHNAME) (&REST IGNORE) "EXP-PRINTER:") (defmethod (EXP-PRINTER-FILEHANDLE :OPEN) (pathname &key flavor-and-init-options) (cond ((null flavor-and-init-options) (setq flavor-and-init-options default-flavor-and-init-options))) (let ((flavor (car flavor-and-init-options)) (init-options (cdr flavor-and-init-options))) (cond ((null flavor-and-init-options) pathname) ((eq (car flavor-and-init-options) (type-of last-instance)) last-instance) (t (setq last-instance (apply 'make-instance flavor init-options)))))) (DEFUN ADD-EXP-PRINTER-HOST (&OPTIONAL (NAME "EXP-PRINTER")) (COND ((NULL (GET-PATHNAME-HOST NAME T)) (LET ((HOST (MAKE-INSTANCE 'EXP-PRINTER-HOST :DEVICE-NAME NAME))) (PUSH HOST *PATHNAME-HOST-LIST*))))) (COMPILE-FLAVOR-METHODS EXP-PRINTER-HOST EXP-PRINTER-PATHNAME EXP-PRINTER-FILEHANDLE) (ADD-EXP-PRINTER-HOST) (si:update-site-configuration-info) ))