(FILECREATED "16-Sep-86 12:41:44" {ERIS}<LISPCORE>LIBRARY>CLSTREAMS.;40 89094        changes to:  (FNS %%SYNONYM-STREAM-DEVICE-READP %%TWO-WAY-STREAM-DEVICE-BACKFILEPTR                         %%INITIALIZE-CLSTREAM-TYPES)      previous date: "28-Aug-86 17:54:50" {ERIS}<LISPCORE>LIBRARY>CLSTREAMS.;39)(* Copyright (c) 1985, 1986 by Xerox Corporation. All rights reserved.)(PRETTYCOMPRINT CLSTREAMSCOMS)(RPAQQ CLSTREAMSCOMS ((* *                       "Implements a number of stream functions from CommonLisp.  See CLtL chapter 21"                         )                      (COMS (* "documented functions and macros")                            (FUNCTIONS OPEN CLOSE)                            (FUNCTIONS STREAM-ELEMENT-TYPE INPUT-STREAM-P OUTPUT-STREAM-P)                            (FUNCTIONS FILE-STREAM-POSITION)                            (FUNCTIONS MAKE-SYNONYM-STREAM MAKE-BROADCAST-STREAM                                    MAKE-CONCATENATED-STREAM MAKE-TWO-WAY-STREAM MAKE-ECHO-STREAM                                    MAKE-STRING-INPUT-STREAM)                            (FUNCTIONS %%MAKE-INITIAL-STRING-STREAM-CONTENTS)                            (DECLARE: DOCOPY (FUNCTIONS WITH-OPEN-STREAM WITH-INPUT-FROM-STRING                                                     WITH-OUTPUT-TO-STRING WITH-OPEN-FILE))                            (FUNCTIONS MAKE-STRING-OUTPUT-STREAM MAKE-FILL-POINTER-OUTPUT-STREAM                                    GET-OUTPUT-STREAM-STRING \STRING-STREAM-OUTCHARFN                                    \ADJUSTABLE-STRING-STREAM-OUTCHARFN))                      (COMS (* "helpers")                            (FUNCTIONS %%NEW-FILE PREDICT-NAME))                      (COMS (* "methods for the special devices")                            (FNS %%BROADCAST-STREAM-DEVICE-BOUT %%BROADCAST-STREAM-DEVICE-CLOSEFILE                                  %%BROADCAST-STREAM-DEVICE-FORCEOUTPUT                                  %%BROADCAST-STREAM-DEVICE-OPENFILE)                            (FNS %%CONCATENATED-STREAM-DEVICE-BIN                                  %%CONCATENATED-STREAM-DEVICE-CLOSEFILE                                  %%CONCATENATED-STREAM-DEVICE-EOFP                                  %%CONCATENATED-STREAM-DEVICE-OPENFILE                                  %%CONCATENATED-STREAM-DEVICE-PEEKBIN)                            (FNS %%ECHO-STREAM-DEVICE-BIN)                            (FNS %%SYNONYM-STREAM-DEVICE-BIN %%SYNONYM-STREAM-DEVICE-BOUT                                  %%SYNONYM-STREAM-DEVICE-CLOSEFILE %%SYNONYM-STREAM-DEVICE-EOFP                                  %%SYNONYM-STREAM-DEVICE-FORCEOUTPUT                                  %%SYNONYM-STREAM-DEVICE-GETFILEINFO %%SYNONYM-STREAM-DEVICE-OPENFILE                                  %%SYNONYM-STREAM-DEVICE-PEEKBIN %%SYNONYM-STREAM-DEVICE-READP                                  %%SYNONYM-STREAM-DEVICE-BACKFILEPTR                                  %%SYNONYM-STREAM-DEVICE-SETFILEINFO)                            (FNS %%TWO-WAY-STREAM-DEVICE-BIN %%TWO-WAY-STREAM-DEVICE-BOUT                                  %%TWO-WAY-STREAM-DEVICE-CLOSEFILE %%TWO-WAY-STREAM-DEVICE-EOFP                                  %%TWO-WAY-STREAM-DEVICE-BACKFILEPTR                                  %%TWO-WAY-STREAM-DEVICE-FORCEOUTPUT %%TWO-WAY-STREAM-DEVICE-OPENFILE                                  %%TWO-WAY-STREAM-DEVICE-PEEKBIN)                            (FUNCTIONS %%FILL-POINTER-STREAM-DEVICE-CLOSEFILE                                    %%FILL-POINTER-STREAM-DEVICE-GETFILEPTR))                      (COMS (* "helper stuff")                            (FNS %%SYNONYM-STREAM-DEVICE-GET-STREAM))                      (COMS (* "package initialization")                            (VARIABLES *TRACE-OUTPUT* *DEBUG-IO* *QUERY-IO* *TERMINAL-IO*                                    *ERROR-OUTPUT* *STANDARD-OUTPUT* *STANDARD-INPUT*)                            (FUNCTIONS %%INITIALIZE-SYNONYM-IMAGEOPS %%INITIALIZE-STANDARD-STREAMS)                            (FNS %%INITIALIZE-CLSTREAM-TYPES)                            (DECLARE: DONTEVAL@LOAD DOCOPY (*)                                   (P (%%INITIALIZE-CLSTREAM-TYPES)                                      (%%INITIALIZE-STANDARD-STREAMS)                                      (* (%%INITIALIZE-SYNONYM-IMAGEOPS)))))                      (PROP FILETYPE CLSTREAMS)                      (SETFS FILE-STREAM-POSITION)))(* * "Implements a number of stream functions from CommonLisp.  See CLtL chapter 21")(* "documented functions and macros")(DEFUN OPEN (FILENAME &KEY (DIRECTION :INPUT)                   (ELEMENT-TYPE (QUOTE STRING-CHAR))                   (IF-EXISTS NIL EXISTS-P)                   (IF-DOES-NOT-EXIST NIL DOES-NOT-EXIST-P))                     (* * "Return a stream which reads from or writes to Filename.  Defined keywords: :direction (one of :input, :output or :probe :element-type), Type of object to read or write, default String-Char, :if-exists (one of :error, :new-version, :overwrite, :append or nil), :if-does-not-exist (one of :error, :create or nil). See the manual for details.") (CL:UNLESS (MEMQ DIRECTION (QUOTE (:INPUT :OUTPUT :IO :PROBE)))        (CL:ERROR "~S isn't a valid direction for open." DIRECTION)) (CL:UNLESS (MEMQ ELEMENT-TYPE (QUOTE (STRING-CHAR UNSIGNED-BYTE CHARACTER :DEFAULT)))        (CL:ERROR "~S isn't an implemented element-type for open." ELEMENT-TYPE)) (LET ((PATHNAME (PATHNAME FILENAME))       (FOR-INPUT (MEMQ DIRECTION (QUOTE (:IO :INPUT))))       (FOR-OUTPUT (MEMQ DIRECTION (QUOTE (:IO :OUTPUT))))       (STREAM NIL))                    (* * "Do hairy defaulting of :if-exists and :if-does-not-exist keywords.")      (CL:UNLESS EXISTS-P (SETQ IF-EXISTS (CL:IF (EQ (PATHNAME-VERSION PATHNAME)                                                     :NEWEST)                                                 :NEW-VERSION :ERROR)))      (CL:UNLESS DOES-NOT-EXIST-P (SETQ IF-DOES-NOT-EXIST (COND                                                             ((OR (MEMQ IF-EXISTS (QUOTE (:OVERWRITE                                                                                          :APPEND)))                                                                  (EQ DIRECTION :INPUT))                                                              :ERROR)                                                             ((EQ DIRECTION :PROBE)                                                              NIL)                                                             (T :CREATE))))      (LOOP                                                  (*                                         "See if the file exists and handle the existential keywords.")            (LET ((NAMESTRING (PREDICT-NAME PATHNAME)))                 (if NAMESTRING                     then                                    (* "file exists")                          (if FOR-OUTPUT                              then (CASE IF-EXISTS (:ERROR (CERROR "write it anyway."                                                                   "File ~A already exists."                                                                   NAMESTRING)                                                          (SETQ STREAM (OPENSTREAM NAMESTRING                                                                              (QUOTE OUTPUT)))                                                          (RETURN NIL))                                         ((:NEW-VERSION :SUPERSEDE :RENAME :RENAME-AND-DELETE)                                          (SETQ STREAM (OPENSTREAM PATHNAME (QUOTE OUTPUT)                                                              (QUOTE NEW)))                                          (RETURN NIL))                                         (:OVERWRITE (SETQ STREAM (OPENSTREAM NAMESTRING (QUOTE                                                                                          OUTPUT)                                                                         (QUOTE OLD)))                                                (RETURN NIL))                                         (:APPEND (SETQ STREAM (OPENSTREAM NAMESTRING (QUOTE APPEND)                                                                      (QUOTE OLD)))                                                (RETURN NIL))                                         ((NIL)                                          (RETURN-FROM OPEN NIL))                                         (T (CL:ERROR "~S is not a valid value for :if-exists."                                                    IF-EXISTS)))                            elseif FOR-INPUT                              then (SETQ STREAM (OPENSTREAM NAMESTRING (QUOTE INPUT)                                                       (QUOTE OLD)))                                   (RETURN NIL)                            else (SETQ STREAM (create STREAM                                                     FULLFILENAME _ (FULLNAME NAMESTRING)))                                 (RETURN NIL))                   else                                      (* "file does not exist")                        (if FOR-OUTPUT                            then (CASE IF-DOES-NOT-EXIST (:ERROR (CERROR "prompt for a new name."                                                                         "File ~A does not exist."                                                                         PATHNAME)                                                                (FORMAT *QUERY-IO*                                                                        "~&New file name: ")                                                                (SETQ PATHNAME (PATHNAME (READ-LINE                                                                                          *QUERY-IO*)                                                                                      )))                                       (:CREATE (SETQ STREAM (OPENSTREAM PATHNAME (QUOTE OUTPUT)                                                                    (QUOTE NEW)))                                              (RETURN NIL))                                       ((NIL)                                        (RETURN-FROM OPEN NIL))                                       (T (CL:ERROR "~S is not a valid value for :if-does-not-exist."                                                  IF-DOES-NOT-EXIST)))                          elseif FOR-INPUT                            then (CASE IF-DOES-NOT-EXIST (:ERROR (CERROR "prompt for a new name."                                                                         "File ~A does not exist."                                                                         PATHNAME)                                                                (FORMAT *QUERY-IO*                                                                        "~&New file name: ")                                                                (SETQ PATHNAME (PATHNAME (READ-LINE                                                                                          *QUERY-IO*)                                                                                      )))                                       (:CREATE (%%NEW-FILE PATHNAME))                                       ((NIL)                                        (RETURN-FROM OPEN NIL))                                       (T (CL:ERROR "~S is not a valid value for :if-does-not-exist."                                                  IF-DOES-NOT-EXIST)))                          else                               (* "Open for probe.")                               (RETURN NIL)))))      STREAM))(DEFUN CLOSE (STREAM &KEY ABORT)                     (* * "Close a stream.  If ABORT, then don't keep the file") (if (STREAMP STREAM)     then (if (OPENP STREAM)              then                     (* * "determine 'deletability' of stream's file before closing, as that trashes the info")                   (LET ((ABORTABLE (AND (DIRTYABLE STREAM)                                         (NOT (APPENDONLY STREAM)))))                        (CLOSEF STREAM)                        (if (AND ABORT ABORTABLE)                            then                             (*        "eventually we will change device CLOSEF methods to take an ABORT arg.  For now, simulate it.")                                 (DELFILE (NAMESTRING STREAM)))))   else (ERROR "Closing a non-stream" STREAM)) T)(DEFUN STREAM-ELEMENT-TYPE (STREAM) (QUOTE UNSIGNED-BYTE))(DEFUN INPUT-STREAM-P (STREAM) (CL:WHEN (NOT (STREAMP STREAM))                                      (\ILLEGAL.ARG STREAM))                    (* * "we return T instead of the stream because Symbolics does")                               (AND (\IOMODEP STREAM (QUOTE INPUT)                                           T)                                    T))(DEFUN OUTPUT-STREAM-P (STREAM) (CL:WHEN (NOT (STREAMP STREAM))                                       (\ILLEGAL.ARG STREAM))                    (* * "we return T instead of the stream because Symbolics does")                                (AND (\IOMODEP STREAM (QUOTE OUTPUT)                                            T)                                     T))(DEFUN FILE-STREAM-POSITION (STREAM) (GETFILEPTR STREAM))(DEFUN MAKE-SYNONYM-STREAM (SYMBOL)                     (* * "A CommonLisp function for shadowing a stream.  See CLtL p.  329") (OPENSTREAM (QUOTE {SYNONYM-STREAM-DEVICE})        (QUOTE BOTH)        NIL NIL (BQUOTE ((SYMBOL (\, SYMBOL))))))(DEFUN MAKE-BROADCAST-STREAM (&REST STREAMS)                     (* * "CommonLisp function to make a `splitter' stream.  See CLtL p329") (OPENSTREAM (QUOTE {BROADCAST-STREAM-DEVICE})        (QUOTE OUTPUT)        NIL NIL (BQUOTE ((STREAMS (\, STREAMS))))        NIL))(DEFUN MAKE-CONCATENATED-STREAM (&REST STREAMS)                     (* * A CommonLisp function for concatenating several input streams together.          See CLtL p. 329) (OPENSTREAM (QUOTE {CONCATENATED-STREAM-DEVICE})        (QUOTE INPUT)        NIL NIL (BQUOTE ((STREAMS (\, STREAMS))))        NIL))(DEFUN MAKE-TWO-WAY-STREAM (INPUT-STREAM OUTPUT-STREAM)                     (* * "A CommonLisp function for splicing together two streams.  See CLtL p.  329") (OPENSTREAM (QUOTE {TWO-WAY-STREAM-DEVICE})        (QUOTE BOTH)        NIL NIL (BQUOTE ((INPUT-STREAM (\, INPUT-STREAM))                         (OUTPUT-STREAM (\, OUTPUT-STREAM))))))(DEFUN MAKE-ECHO-STREAM (INPUT-STREAM OUTPUT-STREAM)                     (* * "A CommonLisp function for splicing together two streams.  See CLtL p.  329") (OPENSTREAM (QUOTE {ECHO-STREAM-DEVICE})        (QUOTE BOTH)        NIL NIL (BQUOTE ((INPUT-STREAM (\, INPUT-STREAM))                         (OUTPUT-STREAM (\, OUTPUT-STREAM))))))(DEFUN MAKE-STRING-INPUT-STREAM (STRING &OPTIONAL (START 0 STARTP)                                       (END NIL ENDP))                     (* * "A CommonLisp function for producing a stream from a string.  See CLtL p.  330") (OPENSTRINGSTREAM (if (OR STARTP ENDP)                       then (SUBSEQ STRING START (if ENDP                                                     then END                                                   else (CL:LENGTH STRING)))                     else STRING)        (QUOTE INPUT)))(DEFUN %%MAKE-INITIAL-STRING-STREAM-CONTENTS NIL (MAKE-ARRAY 128 :ELEMENT-TYPE (QUOTE STRING-CHAR)                                                        :ADJUSTABLE T :FILL-POINTER 0))(DECLARE: DOCOPY (DEFMACRO WITH-OPEN-STREAM ((VAR STREAM)                            &BODY                            (BODY DECLS)) (LET ((ABORTP (GENSYM)))                                               (BQUOTE (LET (((\, VAR)                                                              (\, STREAM))                                                             ((\, ABORTP)                                                              T))                                                            (\,@ DECLS)                                                            (UNWIND-PROTECT                                                             (MULTIPLE-VALUE-PROG1                                                              (PROGN (\,@ BODY))                                                              (SETQ (\, ABORTP)                                                               NIL))                                                             (CLOSE (\, VAR)                                                                    :ABORT                                                                    (\, ABORTP)))))))(DEFMACRO WITH-INPUT-FROM-STRING ((VAR STRING &KEY (INDEX NIL INDEXP)                                       (START 0 STARTP)                                       (END NIL ENDP))                                  &BODY                                  (BODY DECLS))   (BQUOTE (LET (((\, VAR)                  (MAKE-STRING-INPUT-STREAM (\, STRING)                         (\,@ (if STARTP                                  then (if ENDP                                           then (LIST START END)                                         else (LIST START))                                else (if ENDP                                         then (LIST NIL END)))))))                (\,@ DECLS)                (UNWIND-PROTECT (PROG1 (PROGN (\,@ BODY))                                       (\,@ (if INDEXP                                                then (BQUOTE ((SETF (\, INDEX)                                                                    (+ (\, START)                                                                       (GETFILEPTR (\, VAR))))))                                              else NIL)))                       (CLOSE (\, VAR))))))(DEFMACRO WITH-OUTPUT-TO-STRING ((VAR &OPTIONAL (STRING NIL STRINGP))                                 &BODY                                 (FORMS DECLS))   (if STRINGP       then (BQUOTE (LET (((\, VAR)                           (MAKE-FILL-POINTER-OUTPUT-STREAM (\, STRING))))                         (\,@ DECLS)                         (UNWIND-PROTECT (PROGN (\,@ FORMS))                                (CLOSE (\, VAR)))))     else (BQUOTE (LET (((\, VAR)                         (MAKE-STRING-OUTPUT-STREAM)))                       (\,@ DECLS)                       (UNWIND-PROTECT (PROGN (\,@ FORMS)                                              (GET-OUTPUT-STREAM-STRING (\, VAR)))                              (CLOSE (\, VAR)))))))(DEFMACRO WITH-OPEN-FILE ((VAR &REST OPEN-ARGS)                          &BODY                          (FORMS DECLS))                     (* * "Bindspec is of the form (Stream File-Name . Options). The file whose name is File-Name is opened using the Options and bound to the variable Stream. The Forms are executed, and when they terminate, normally or otherwise, the file is closed.") (LET ((ABORTP (GENSYM)))      (BQUOTE (LET (((\, VAR)                     (OPEN (\,@ OPEN-ARGS)))                    ((\, ABORTP)                     T))                   (\,@ DECLS)                   (UNWIND-PROTECT (MULTIPLE-VALUE-PROG1 (PROGN (\,@ FORMS))                                          (SETQ (\, ABORTP)                                           NIL))                          (CL:WHEN (\, VAR)                                 (CLOSE (\, VAR)                                        :ABORT                                        (\, ABORTP)))))))))(DEFUN MAKE-STRING-OUTPUT-STREAM NIL                     (* * "A function for producing a string stream. See also the function get-output-stream-string.  Also, see CLtL p.  330")                                     (MAKE-FILL-POINTER-OUTPUT-STREAM))(DEFUN MAKE-FILL-POINTER-OUTPUT-STREAM (&OPTIONAL (STRING (%%MAKE-INITIAL-STRING-STREAM-CONTENTS)))   (DECLARE (GLOBALVARS \FILL-POINTER-STREAM-DEVICE))   (if (NOT (ARRAY-HAS-FILL-POINTER-P STRING))       then (\ILLEGAL.ARG STRING)     else (LET ((STREAM (create STREAM                               DEVICE _ \FILL-POINTER-STREAM-DEVICE                               F1 _ STRING                               ACCESS _ (QUOTE OUTPUT))))               (STREAMPROP STREAM (QUOTE STRING-OUTPUT-STREAM)                      T)               (replace (STREAM OUTCHARFN) of STREAM with (if (ADJUSTABLE-ARRAY-P STRING)                                                              then (FUNCTION                                                                   \ADJUSTABLE-STRING-STREAM-OUTCHARFN                                                                    )                                                            else (FUNCTION \STRING-STREAM-OUTCHARFN))                      )               (replace (STREAM STRMBOUTFN) of STREAM with (FUNCTION \OUTCHAR))               STREAM)))(DEFUN GET-OUTPUT-STREAM-STRING (STRING-OUTPUT-STREAM)                     (* * "A CommonLisp function for getting the contents of the buffer created by a call to make-string-output-stream.  See CLtL p.  330") (if (NOT (STREAMPROP STRING-OUTPUT-STREAM (QUOTE STRING-OUTPUT-STREAM)))     then (ERROR "Stream not a string-output-stream" STRING-OUTPUT-STREAM)   else (PROG1 (fetch (STREAM F1) of STRING-OUTPUT-STREAM)               (replace (STREAM F1) of STRING-OUTPUT-STREAM with (                                                                %%MAKE-INITIAL-STRING-STREAM-CONTENTS                                                                  )))))(DEFUN \STRING-STREAM-OUTCHARFN (STREAM CHAR) (IF (EQ CHAR (CHARCODE EOL))                                                  THEN (REPLACE (STREAM CHARPOSITION) OF STREAM                                                          WITH 0)                                                ELSE (ADD (FETCH (STREAM CHARPOSITION) OF STREAM)                                                          1))                                              (VECTOR-PUSH (CL:CHARACTER CHAR)                                                     (FETCH (STREAM F1) OF STREAM)))(DEFUN \ADJUSTABLE-STRING-STREAM-OUTCHARFN (STREAM CHAR) (IF (EQ CHAR (CHARCODE EOL))                                                             THEN (REPLACE (STREAM CHARPOSITION)                                                                     OF STREAM WITH 0)                                                           ELSE (ADD (FETCH (STREAM CHARPOSITION)                                                                        OF STREAM)                                                                     1))                                                         (VECTOR-PUSH-EXTEND (CL:CHARACTER CHAR)                                                                (FETCH (STREAM F1) OF STREAM)))(* "helpers")(DEFUN %%NEW-FILE (FILENAME) (CLOSEF (OPENSTREAM FILENAME (QUOTE OUTPUT)                                            (QUOTE NEW))))(DEFUN PREDICT-NAME (PATHNAME) (LET ((PATH (PROBE-FILE PATHNAME)))                                    (IF PATH                                        THEN (NAMESTRING PATH))))(* "methods for the special devices")(DEFINEQ(%%BROADCAST-STREAM-DEVICE-BOUT  [LAMBDA (STREAM BYTE)                                      (* hdj "17-Apr-86 18:08")                    (* * The BOUT method for the broadcast-stream device)    (for S in (fetch F1 of STREAM) do (\BOUT S BYTE))    BYTE])(%%BROADCAST-STREAM-DEVICE-CLOSEFILE  [LAMBDA (STREAM)                                                         (* hdj                                                                            "26-Mar-86 16:28")                        (* * The CLOSEFILE method for the broadcast-stream device)    (replace ACCESS of STREAM with NIL)    (replace F1 of STREAM with NIL)    STREAM])(%%BROADCAST-STREAM-DEVICE-FORCEOUTPUT  [LAMBDA (stream waitForFinish?)                            (* smL "14-Aug-85 15:55")          (* * The FORCEOUTPUT method for the broadcast-stream device)    (for s in (fetch F1 of stream) do (FORCEOUTPUT s waitForFinish?])(%%BROADCAST-STREAM-DEVICE-OPENFILE  [LAMBDA (NAME ACCESS RECOG PARAMETERS DEVICE)              (* hdj "17-Apr-86 18:07")                    (* * The OPENFILE method for the broadcast-stream device)    (SELECTQ ACCESS        ((INPUT BOTH APPEND)              NIL)        (create STREAM               DEVICE _ DEVICE               F1 _(CADR (ASSOC (QUOTE STREAMS)                                PARAMETERS]))(DEFINEQ(%%CONCATENATED-STREAM-DEVICE-BIN  [LAMBDA (stream)                                           (* smL "14-Aug-85 16:52")          (* * The BIN method for the concatenated-stream device)    (while (fetch F1 of stream) do [if (EOFP (CAR (fetch F1 of stream)))				       then (CLOSEF (pop (fetch F1 of stream)))				     else (RETURN (\BIN (CAR (fetch F1 of stream]       finally                                               (* the EOF case)	       (\EOF.ACTION stream])(%%CONCATENATED-STREAM-DEVICE-CLOSEFILE  [LAMBDA (stream)                                           (* smL "14-Aug-85 16:53")          (* * The CLOSEFILE method for the concatenated-stream device)    (replace ACCESS of stream with NIL)    (for s in (fetch F1 of stream) do (CLOSEF s))    (replace F1 of stream with NIL)    stream])(%%CONCATENATED-STREAM-DEVICE-EOFP  [LAMBDA (stream)                                           (* smL "14-Aug-85 16:53")          (* * The EOFP method for the concatenated-stream device)    (while (fetch F1 of stream) do (if (EOFP (CAR (fetch F1 of stream)))				       then (CLOSEF (pop (fetch F1 of stream)))				     else (RETURN NIL))       finally                                               (* the EOF case)	       (RETURN T])(%%CONCATENATED-STREAM-DEVICE-OPENFILE  [LAMBDA (NAME ACCESS RECOG PARAMETERS DEVICE)              (* hdj "21-Apr-86 14:33")                    (* * The OPENFILE method for the concatenated-stream device)    (SELECTQ ACCESS        ((OUTPUT BOTH APPEND)              NIL)        (create STREAM               DEVICE _ DEVICE               F1 _(CADR (ASSOC (QUOTE STREAMS)                                PARAMETERS])(%%CONCATENATED-STREAM-DEVICE-PEEKBIN  [LAMBDA (stream noErrorFlg?)                               (* smL "14-Aug-85 16:53")          (* * The PEEKBIN method for the concatenated-stream device)    (while (fetch F1 of stream) do [if (EOFP (CAR (fetch F1 of stream)))				       then (CLOSEF (pop (fetch F1 of stream)))				     else (RETURN (\PEEKBIN (CAR (fetch F1 of stream]       finally                                               (* the EOF case)	       (if noErrorFlg?		   then (RETURN NIL)		 else (\EOF.ACTION stream]))(DEFINEQ(%%ECHO-STREAM-DEVICE-BIN  [LAMBDA (STREAM)                                           (* hdj "21-Apr-86 18:33")                    (* * The BIN method for the echo-stream device)    (LET ((BYTE (%%TWO-WAY-STREAM-DEVICE-BIN STREAM)))         (\BOUT STREAM BYTE)     BYTE]))(DEFINEQ(%%SYNONYM-STREAM-DEVICE-BIN  [LAMBDA (STREAM)                                                         (* hdj                                                                            "19-Mar-86 17:19")                        (* * The BIN method for the synonym-stream device.)    (\BIN (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM])(%%SYNONYM-STREAM-DEVICE-BOUT  [LAMBDA (STREAM BYTE)                                                    (* hdj                                                                            "19-Mar-86 17:20")                        (* * The BOUT method for the synonym-stream device.)    (\BOUT (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM)           BYTE])(%%SYNONYM-STREAM-DEVICE-CLOSEFILE  [LAMBDA (STREAM)                                                         (* hdj                                                                            "19-Mar-86 17:14")                        (* * the CLOSEFILE method for the synonym-stream device)    (replace F1 of STREAM with NIL)    STREAM])(%%SYNONYM-STREAM-DEVICE-EOFP  [LAMBDA (STREAM)                                                         (* hdj                                                                            "19-Mar-86 17:20")                        (* * The EOFP method for the synonym-stream device.)    (\EOFP (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM])(%%SYNONYM-STREAM-DEVICE-FORCEOUTPUT  [LAMBDA (STREAM WAITFORFINISH)                                           (* hdj                                                                            "19-Mar-86 17:09")                        (* * The FORCEOUTPUT method for the synonym-stream device.)    (FORCEOUTPUT (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM)           WAITFORFINISH])(%%SYNONYM-STREAM-DEVICE-GETFILEINFO  [LAMBDA (STREAM ATTRIBUTE DEVICE)                                        (* hdj                                                                            "19-Mar-86 17:10")                        (* * The GETFILEINFO method for the synonym-stream device.)    (GETFILEINFO (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM)           ATTRIBUTE])(%%SYNONYM-STREAM-DEVICE-OPENFILE  [LAMBDA (NAME ACCESS RECOG PARAMETERS DEVICE)                            (* hdj                                                                            "19-Mar-86 17:14")                        (* * the OPENFILE method for the synonym-stream device)    (create STREAM           DEVICE _ DEVICE           F1 _(CADR (ASSOC (QUOTE SYMBOL)                            PARAMETERS])(%%SYNONYM-STREAM-DEVICE-PEEKBIN  [LAMBDA (STREAM NOERRORFLG?)                                             (* hdj                                                                            "19-Mar-86 17:12")                        (* * The PEEKBIN method for the synonym-stream device)    (\PEEKBIN (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM)           NOERRORFLG?])(%%SYNONYM-STREAM-DEVICE-READP  (LAMBDA (STREAM FLG)    (READP (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM)           FLG)))(%%SYNONYM-STREAM-DEVICE-BACKFILEPTR  (LAMBDA (STREAM)                                           (* hdj "26-Aug-86 17:35")    (\BACKFILEPTR (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM))))(%%SYNONYM-STREAM-DEVICE-SETFILEINFO  [LAMBDA (STREAM ATTRIBUTE VALUE DEVICE)                                  (* hdj                                                                            "19-Mar-86 17:17")                        (* * The SETFILEINFO method for the synonym-stream device.)    (SETFILEINFO (%%SYNONYM-STREAM-DEVICE-GET-STREAM STREAM)           ATTRIBUTE VALUE]))(DEFINEQ(%%TWO-WAY-STREAM-DEVICE-BIN  [LAMBDA (stream)                                           (* smL "14-Aug-85 16:44")          (* * The BIN method for the two-way-stream device)    (\BIN (fetch F1 of stream])(%%TWO-WAY-STREAM-DEVICE-BOUT  [LAMBDA (stream byte)                                      (* smL "14-Aug-85 16:45")          (* * The BOUT method for the two-way-stream device)    (\BOUT (fetch F2 of stream)	   byte])(%%TWO-WAY-STREAM-DEVICE-CLOSEFILE  [LAMBDA (stream)                                           (* smL "14-Aug-85 17:02")          (* * The CLOSEFILE method for the two-way-stream device)    (replace ACCESS of stream with NIL)    (CLOSEF? (fetch F1 of stream))    (replace F1 of stream with NIL)    (CLOSEF? (fetch F2 of stream))    (replace F2 of stream with NIL)    stream])(%%TWO-WAY-STREAM-DEVICE-EOFP  [LAMBDA (stream)                                           (* smL "14-Aug-85 16:47")          (* * The EOFP method for the two-way-stream device)    (\EOFP (fetch F1 of stream])(%%TWO-WAY-STREAM-DEVICE-BACKFILEPTR  (LAMBDA (STREAM)                                           (* hdj "15-Sep-86 15:02")    (\BACKFILEPTR (fetch (STREAM F1) of STREAM))))(%%TWO-WAY-STREAM-DEVICE-FORCEOUTPUT  [LAMBDA (stream waitForFinish?)                            (* smL "14-Aug-85 16:49")          (* * the FORCEOUTPUT method for the two-way-stream device)    (FORCEOUTPUT (fetch F2 of stream)		 waitForFinish?])(%%TWO-WAY-STREAM-DEVICE-OPENFILE  [LAMBDA (NAME ACCESS RECOG PARAMETERS DEVICE)              (* hdj "21-Apr-86 18:17")                    (* * The OPENFILE method for the two-way-stream device)    (SELECTQ ACCESS        ((INPUT OUTPUT APPEND)              NIL)        (create STREAM               DEVICE _ DEVICE               F1 _(CADR (ASSOC (QUOTE INPUT-STREAM)                                PARAMETERS))               F2 _(CADR (ASSOC (QUOTE OUTPUT-STREAM)                                PARAMETERS])(%%TWO-WAY-STREAM-DEVICE-PEEKBIN  [LAMBDA (stream noErrorFlg?)                               (* smL "14-Aug-85 16:46")          (* * The PEEKBIN method for the two-way-stream device)    (\PEEKBIN (fetch F1 of stream)	      noErrorFlg?]))(DEFUN %%FILL-POINTER-STREAM-DEVICE-CLOSEFILE (STREAM)                     (* * "the CLOSEFILE method for the fill-pointer-string-stream device") (replace F1 of STREAM with NIL) STREAM)(DEFUN %%FILL-POINTER-STREAM-DEVICE-GETFILEPTR (STREAM) (CL:LENGTH (fetch (STREAM F1) of STREAM)))(* "helper stuff")(DEFINEQ(%%SYNONYM-STREAM-DEVICE-GET-STREAM  [LAMBDA (stream)                                                         (* hdj                                                                            "19-Mar-86 14:59")                        (* * given a synonym-stream, find out what it is currently tracking)                        (* * this should be a macro)    (SYMBOL-VALUE (fetch (STREAM F1) of stream]))(* "package initialization")(DEFVAR *TRACE-OUTPUT* )(DEFVAR *DEBUG-IO* )(DEFVAR *QUERY-IO* )(DEFVAR *TERMINAL-IO* )(DEFVAR *ERROR-OUTPUT* )(DEFVAR *STANDARD-OUTPUT* )(DEFVAR *STANDARD-INPUT* )(DEFUN %%INITIALIZE-SYNONYM-IMAGEOPS NIL (SETQ \SYNONYM-STREAM-IMAGEOPS                                          (create IMAGEOPS                                                 IMAGETYPE _ (QUOTE SYNONYM)                                                 IMCLOSEFN _ (FUNCTION (LAMBDA (STREAM)                                                                         (LET ((SYN-STREAM                                                                                (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                 STREAM)))                                                                              (IMAGEOP (QUOTE                                                                                             IMCLOSEFN                                                                                              )                                                                                     SYN-STREAM                                                                                      SYN-STREAM))))                                                 IMXPOSITION _ (FUNCTION (LAMBDA (STREAM XPOSITION)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM)))                                                                                (IMAGEOP (QUOTE                                                                                          IMXPOSITION                                                                                          )                                                                                       SYN-STREAM                                                                                        SYN-STREAM                                                                                        XPOSITION))))                                                 IMYPOSITION _ (FUNCTION (LAMBDA (STREAM YPOSITION)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM)))                                                                                (IMAGEOP (QUOTE                                                                                          IMYPOSITION                                                                                          )                                                                                       SYN-STREAM                                                                                        SYN-STREAM                                                                                        YPOSITION))))                                                 IMFONT _ (FUNCTION (LAMBDA (STREAM FONT)                                                                      (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                         STREAM)))                                                                           (IMAGEOP (QUOTE IMFONT)                                                                                  SYN-STREAM                                                                                   SYN-STREAM FONT))))                                                 IMLEFTMARGIN _ (FUNCTION (LAMBDA (STREAM XPOSITION)                                                                            (LET                                                                             ((SYN-STREAM                                                                               (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                             (IMAGEOP (QUOTE                                                                                          IMLEFTMARGIN                                                                                             )                                                                                    SYN-STREAM                                                                                     SYN-STREAM                                                                                     XPOSITION))))                                                 IMRIGHTMARGIN _ (FUNCTION (LAMBDA (STREAM YPOSITION)                                                                             (LET                                                                              ((SYN-STREAM                                                                                (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                 STREAM)))                                                                              (IMAGEOP (QUOTE                                                                                         IMRIGHTMARGIN                                                                                              )                                                                                     SYN-STREAM                                                                                      SYN-STREAM                                                                                      YPOSITION))))                                                 IMLINEFEED _ (FUNCTION (LAMBDA (STREAM DELTAY)                                                                          (LET ((SYN-STREAM                                                                                 (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                  STREAM)))                                                                               (IMAGEOP (QUOTE                                                                                            IMLINEFEED                                                                                               )                                                                                      SYN-STREAM                                                                                       SYN-STREAM                                                                                       DELTAY))))                                                 IMDRAWLINE _                                                 (FUNCTION (LAMBDA (STREAM X1 Y1 X2 Y2 WIDTH                                                                           OPERATION COLOR DASHING)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMDRAWLINE)                                                                         SYN-STREAM SYN-STREAM X1 Y1                                                                          X2 Y2 WIDTH OPERATION COLOR                                                                          DASHING))))                                                 IMDRAWCURVE _                                                 (FUNCTION (LAMBDA (STREAM KNOTS CLOSED BRUSH DASHING                                                                          )                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMDRAWCURVE)                                                                         SYN-STREAM SYN-STREAM KNOTS                                                                          CLOSED BRUSH DASHING))))                                                 IMDRAWCIRCLE _                                                 (FUNCTION (LAMBDA (STREAM CENTERX CENTRY RADIUS                                                                           BRUSH DASHING)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMDRAWCIRCLE)                                                                         SYN-STREAM SYN-STREAM                                                                          CENTERX CENTRY RADIUS BRUSH                                                                          DASHING))))                                                 IMDRAWELLIPSE _                                                 (FUNCTION (LAMBDA (STREAM CENTERX CENTERY                                                                           SEMIMINORRADIUS                                                                           SEMIMAJORRADIUS ORIENTATION                                                                           BRUSH DASHING)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMDRAWELLIPSE)                                                                         SYN-STREAM SYN-STREAM                                                                          CENTERX CENTERY                                                                          SEMIMINORRADIUS                                                                          SEMIMAJORRADIUS ORIENTATION                                                                          BRUSH DASHING))))                                                 IMFILLCIRCLE _                                                 (FUNCTION (LAMBDA (STREAM CENTERX CENTERY RADIUS                                                                           TEXTURE)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMFILLCIRCLE)                                                                         SYN-STREAM SYN-STREAM                                                                          CENTERX CENTERY RADIUS                                                                          TEXTURE))))                                                 IMBLTSHADE _                                                 (FUNCTION (LAMBDA (TEXTURE STREAM DESTINATIONLEFT                                                                           DESTINATIONBOTTOM WIDTH                                                                           HEIGHT OPERATION                                                                           CLIPPINGREGION)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMBLTSHADE)                                                                         SYN-STREAM TEXTURE                                                                          SYN-STREAM DESTINATIONLEFT                                                                          DESTINATIONBOTTOM WIDTH                                                                          HEIGHT OPERATION                                                                          CLIPPINGREGION))))                                                 IMBITBLT _                                                 (FUNCTION (LAMBDA (SOURCEBM SOURCELEFT SOURCEBOTTOM                                                                           STREAM DESTINATIONLEFT                                                                           DESTINATIONBOTTOM WIDTH                                                                           HEIGHT SOURCETYPE OPERATION                                                                           TEXTURE CLIPPINGREGION                                                                           CLIPPEDSOURCELEFT                                                                           CLIPPEDSOURCEBOTTOM)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMBITBLT)                                                                         SYN-STREAM SOURCEBM                                                                          SOURCELEFT SOURCEBOTTOM                                                                          STREAM DESTINATIONLEFT                                                                          DESTINATIONBOTTOM WIDTH                                                                          HEIGHT SOURCETYPE OPERATION                                                                          TEXTURE CLIPPINGREGION                                                                          CLIPPEDSOURCELEFT                                                                          CLIPPEDSOURCEBOTTOM))))                                                 IMNEWPAGE _ (FUNCTION (LAMBDA (STREAM)                                                                         (LET ((SYN-STREAM                                                                                (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                 STREAM)))                                                                              (IMAGEOP (QUOTE                                                                                             IMNEWPAGE                                                                                              )                                                                                     SYN-STREAM))))                                                 IMMOVETO _ (FUNCTION (LAMBDA (STREAM X Y)                                                                        (LET ((SYN-STREAM                                                                               (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                             (IMAGEOP (QUOTE IMMOVETO                                                                                             )                                                                                    SYN-STREAM                                                                                     SYN-STREAM X Y)))                                                             )                                                 IMSCALE _ (FUNCTION (LAMBDA (STREAM SCALE)                                                                       (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                          STREAM)))                                                                            (IMAGEOP (QUOTE IMSCALE)                                                                                   SYN-STREAM                                                                                    SYN-STREAM SCALE))                                                                       ))                                                 IMTERPRI _ (FUNCTION (LAMBDA (STREAM)                                                                        (LET ((SYN-STREAM                                                                               (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                             (IMAGEOP (QUOTE IMTERPRI                                                                                             )                                                                                    SYN-STREAM                                                                                     SYN-STREAM))))                                                 IMTOPMARGIN _ (FUNCTION (LAMBDA (STREAM YPOSITION)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM)))                                                                                (IMAGEOP (QUOTE                                                                                          IMTOPMARGIN                                                                                          )                                                                                       SYN-STREAM                                                                                        SYN-STREAM                                                                                        YPOSITION))))                                                 IMBOTTOMMARGIN _ (FUNCTION (LAMBDA (STREAM YPOSITION                                                                                           )                                                                              (LET                                                                               ((SYN-STREAM                                                                                 (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                  STREAM)))                                                                               (IMAGEOP (QUOTE                                                                                        IMBOTTOMMARGIN                                                                                               )                                                                                      SYN-STREAM                                                                                       SYN-STREAM                                                                                       YPOSITION))))                                                 IMSPACEFACTOR _ (FUNCTION (LAMBDA (STREAM FACTOR)                                                                             (LET                                                                              ((SYN-STREAM                                                                                (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                 STREAM)))                                                                              (IMAGEOP (QUOTE                                                                                         IMSPACEFACTOR                                                                                              )                                                                                     SYN-STREAM                                                                                      SYN-STREAM                                                                                      FACTOR))))                                                 IMFONTCREATE _ (QUOTE SYNONYM)                                                 IMOPERATION _ (FUNCTION (LAMBDA (STREAM OPERATION)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM)))                                                                                (IMAGEOP (QUOTE                                                                                          IMOPERATION                                                                                          )                                                                                       SYN-STREAM                                                                                        SYN-STREAM                                                                                        OPERATION))))                                                 IMCOLOR _ (FUNCTION (LAMBDA (STREAM COLOR)                                                                       (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                          STREAM)))                                                                            (IMAGEOP (QUOTE IMCOLOR)                                                                                   SYN-STREAM                                                                                    SYN-STREAM COLOR))                                                                       ))                                                 IMSTRINGWIDTH _                                                 (FUNCTION (LAMBDA (STREAM STRING RDTBL)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMSTRINGWIDTH)                                                                         SYN-STREAM SYN-STREAM STRING                                                                          RDTBL))))                                                 IMCHARWIDTH _ (FUNCTION (LAMBDA (STREAM CHARCODE)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM)))                                                                                (IMAGEOP (QUOTE                                                                                          IMCHARWIDTH                                                                                          )                                                                                       SYN-STREAM                                                                                        SYN-STREAM                                                                                        CHARCODE))))                                                 IMCHARWIDTHY _                                                 (FUNCTION (LAMBDA (STREAM A B CHARCODE)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMCHARWIDTHY)                                                                         SYN-STREAM SYN-STREAM A B                                                                          CHARCODE))))                                                 IMBACKCOLOR _ (FUNCTION (LAMBDA (STREAM COLOR)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM)))                                                                                (IMAGEOP (QUOTE                                                                                          IMBACKCOLOR                                                                                          )                                                                                       SYN-STREAM                                                                                        SYN-STREAM                                                                                        COLOR))))                                                 IMBITMAPSIZE _ (FUNCTION (LAMBDA (STREAM BITMAP                                                                                          DIMENSION)                                                                            (LET                                                                             ((SYN-STREAM                                                                               (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                             (IMAGEOP (QUOTE                                                                                          IMBITMAPSIZE                                                                                             )                                                                                    SYN-STREAM                                                                                     SYN-STREAM BITMAP                                                                                     DIMENSION))))                                                 IMCLIPPINGREGION _ (FUNCTION (LAMBDA (STREAM REGION)                                                                                (LET                                                                                 ((SYN-STREAM                                                                                   (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                    STREAM)))                                                                                 (IMAGEOP                                                                                  (QUOTE                                                                                      IMCLIPPINGREGION                                                                                         )                                                                                  SYN-STREAM                                                                                   SYN-STREAM REGION))                                                                                ))                                                 IMRESET _ (FUNCTION (LAMBDA (STREAM)                                                                       (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                          STREAM)))                                                                            (IMAGEOP (QUOTE IMRESET)                                                                                   SYN-STREAM                                                                                    SYN-STREAM))))                                                 IMDRAWPOLYGON _                                                 (FUNCTION (LAMBDA (STREAM POINTS CLOSED BRUSH                                                                           DASHING)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMDRAWPOLYGON)                                                                         SYN-STREAM SYN-STREAM POINTS                                                                          CLOSED BRUSH DASHING))))                                                 IMFILLPOLYGON _                                                 (FUNCTION (LAMBDA (STREAM POINTS TEXTURE OPERATION                                                                           WINDINGNUMBER)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMFILLPOLYGON)                                                                         SYN-STREAM SYN-STREAM POINTS                                                                          TEXTURE OPERATION                                                                          WINDINGNUMBER))))                                                 IMSCALEDBITBLT _                                                 (FUNCTION (LAMBDA (STREAM SOURCE SOURCELEFT                                                                           SOURCEBOTTOM DESTINATION                                                                           DESTINATIONLEFT                                                                           DESTINATIONBOTTOM WIDTH                                                                           HEIGHT SOURCETYPE OPERATION                                                                           TEXTURE CLIPPINGREGION                                                                           CLIPPPEDSOURCELEFT                                                                           CLIPPEDSOURCEBOTTOM SCALE)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMSCALEDBITBLT)                                                                         STREAM SYN-STREAM SOURCE                                                                          SOURCELEFT SOURCEBOTTOM                                                                          DESTINATION DESTINATIONLEFT                                                                          DESTINATIONBOTTOM WIDTH                                                                          HEIGHT SOURCETYPE OPERATION                                                                          TEXTURE CLIPPINGREGION                                                                          CLIPPPEDSOURCELEFT                                                                          CLIPPEDSOURCEBOTTOM SCALE)))                                                  )                                                 IMWRITEPIXEL _                                                 (FUNCTION (LAMBDA (STREAM STREAM X Y VALUE)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMWRITEPIXEL)                                                                         SYN-STREAM SYN-STREAM X Y                                                                          VALUE))))                                                 IMCHARSET _ (FUNCTION (LAMBDA (STREAM CHARSET)                                                                         (LET ((SYN-STREAM                                                                                (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                 STREAM))))                                                                         (IMAGEOP (QUOTE IMCHARSET)                                                                                SYN-STREAM SYN-STREAM                                                                                 CHARSET)))                                                 IMROTATE _ (FUNCTION (LAMBDA (STREAM ROTATION)                                                                        (LET ((SYN-STREAM                                                                               (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                             (IMAGEOP (QUOTE IMROTATE                                                                                             )                                                                                    SYN-STREAM                                                                                     SYN-STREAM                                                                                     ROTATION))))                                                 IMDRAWARC _                                                 (FUNCTION (LAMBDA (STREAM CENTERX CENTERY RADIUS                                                                           STARTANGLE DEGREES BRUSH                                                                           DASHING)                                                             (LET ((SYN-STREAM (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                  (IMAGEOP (QUOTE IMDRAWARC)                                                                         SYN-STREAM SYN-STREAM                                                                          CENTERX CENTERY RADIUS                                                                          STARTANGLE DEGREES BRUSH                                                                          DASHING))))                                                 IMTRANSLATE _ (FUNCTION (LAMBDA (STREAM TX TY)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM)))                                                                                (IMAGEOP (QUOTE                                                                                          IMTRANSLATE                                                                                          )                                                                                       SYN-STREAM                                                                                        SYN-STREAM TX                                                                                        TY))))                                                 IMSCALE2 _ (FUNCTION (LAMBDA (STREAM SX SY)                                                                        (LET ((SYN-STREAM                                                                               (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                STREAM)))                                                                             (IMAGEOP (QUOTE IMSCALE2                                                                                             )                                                                                    SYN-STREAM                                                                                     SYN-STREAM SX SY)                                                                             )))                                                 IMPUSHSTATE _ (FUNCTION (LAMBDA (STREAM)                                                                           (LET ((SYN-STREAM                                                                                  (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                   STREAM))))                                                                           (IMAGEOP (QUOTE                                                                                           IMPUSHSTATE                                                                                           )                                                                                  SYN-STREAM                                                                                   SYN-STREAM)))                                                 IMPOPSTATE _ (FUNCTION (LAMBDA (STREAM)                                                                          (LET ((SYN-STREAM                                                                                 (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                  STREAM)))                                                                               (IMAGEOP (QUOTE                                                                                            IMPOPSTATE                                                                                               )                                                                                      SYN-STREAM                                                                                       SYN-STREAM))))                                                 IMDEFAULTSTATE _ (FUNCTION (LAMBDA (STREAM)                                                                              (LET                                                                               ((SYN-STREAM                                                                                 (                                                                   %%SYNONYM-STREAM-DEVICE-GET-STREAM                                                                                  STREAM)))                                                                               (IMAGEOP (QUOTE                                                                                        IMDEFAULTSTATE                                                                                               )                                                                                      SYN-STREAM                                                                                       SYN-STREAM)))))                                          ))(DEFUN %%INITIALIZE-STANDARD-STREAMS NIL                     (*)                                         (SETQ *QUERY-IO* (MAKE-TWO-WAY-STREAM (MAKE-SYNONYM-STREAM                                                                                (QUOTE \LINEBUF.OFD))                                                                 (MAKE-SYNONYM-STREAM (QUOTE                                                                                             \TERM.OFD                                                                                             ))))                                         (SETQ *DEBUG-IO* *QUERY-IO*)                                         (SETQ *TERMINAL-IO* *QUERY-IO*)                                         (SETQ *ERROR-OUTPUT* (MAKE-SYNONYM-STREAM (QUOTE \TERM.OFD))                                          )                                         (SETQ *STANDARD-OUTPUT* (MAKE-SYNONYM-STREAM (QUOTE                                                                                          \PRIMOUT.OFD                                                                                             )))                                         (SETQ *STANDARD-INPUT* (MAKE-SYNONYM-STREAM (QUOTE                                                                                           \PRIMIN.OFD                                                                                            )))                                         (SETQ *TRACE-OUTPUT* (MAKE-SYNONYM-STREAM (QUOTE \TERM.OFD))                                          ))(DEFINEQ(%%INITIALIZE-CLSTREAM-TYPES  (LAMBDA NIL                                                (* hdj "15-Sep-86 15:11")                    (* * "Initialize the CLSTREAMS package.  This sets up some file devices for the functions make-two-way-stream-device, etc.  See CLtL chapter 21")    (DECLARE (GLOBALVARS \FILL-POINTER-STREAM-DEVICE))    (\DEFINEDEVICE (QUOTE BROADCAST-STREAM-DEVICE)           (create FDEV                  DEVICENAME _ (QUOTE BROADCAST-STREAM-DEVICE)                  RESETABLE _ NIL                  RANDOMACCESSP _ NIL                  NODIRECTORIES _ T                  BUFFERED _ NIL                  PAGEMAPPED _ NIL                  FDBINABLE _ NIL                  FDBOUTABLE _ NIL                  FDEXTENDABLE _ NIL                  DEVICEINFO _ NIL                  HOSTNAMEP _ (FUNCTION NILL)                  EVENTFN _ (FUNCTION NILL)                  DIRECTORYNAMEP _ (FUNCTION NILL)                  OPENFILE _ (FUNCTION %%BROADCAST-STREAM-DEVICE-OPENFILE)                  REOPENFILE _ (FUNCTION NILL)                  CLOSEFILE _ (FUNCTION %%BROADCAST-STREAM-DEVICE-CLOSEFILE)                  GETFILENAME _ (FUNCTION NILL)                  DELETEFILE _ (FUNCTION NILL)                  GENERATEFILES _ (FUNCTION \GENERATENOFILES)                  RENAMEFILE _ (FUNCTION NILL)                  BIN _ (FUNCTION NILL)                  BOUT _ (FUNCTION %%BROADCAST-STREAM-DEVICE-BOUT)                  PEEKBIN _ (FUNCTION NILL)                  READP _ (FUNCTION NILL)                  EOFP _ (FUNCTION TRUE)                  BLOCKIN _ (FUNCTION \GENERIC.BINS)                  BLOCKOUT _ (FUNCTION NILL)                  FORCEOUTPUT _ (FUNCTION %%BROADCAST-STREAM-DEVICE-FORCEOUTPUT)                  GETFILEINFO _ (FUNCTION NILL)                  SETFILEINFO _ (FUNCTION NILL)))    (\DEFINEDEVICE (QUOTE CONCATENATED-STREAM-DEVICE)           (create FDEV                  DEVICENAME _ (QUOTE CONCATENATED-STREAM-DEVICE)                  RESETABLE _ NIL                  RANDOMACCESSP _ NIL                  NODIRECTORIES _ T                  BUFFERED _ NIL                  PAGEMAPPED _ NIL                  FDBINABLE _ NIL                  FDBOUTABLE _ NIL                  FDEXTENDABLE _ NIL                  DEVICEINFO _ NIL                  HOSTNAMEP _ (FUNCTION NILL)                  EVENTFN _ (FUNCTION NILL)                  DIRECTORYNAMEP _ (FUNCTION NILL)                  OPENFILE _ (FUNCTION %%CONCATENATED-STREAM-DEVICE-OPENFILE)                  REOPENFILE _ (FUNCTION NILL)                  CLOSEFILE _ (FUNCTION %%CONCATENATED-STREAM-DEVICE-CLOSEFILE)                  GETFILENAME _ (FUNCTION NILL)                  DELETEFILE _ (FUNCTION NILL)                  GENERATEFILES _ (FUNCTION \GENERATENOFILES)                  RENAMEFILE _ (FUNCTION NILL)                  BIN _ (FUNCTION %%CONCATENATED-STREAM-DEVICE-BIN)                  BOUT _ (FUNCTION NILL)                  PEEKBIN _ (FUNCTION %%CONCATENATED-STREAM-DEVICE-PEEKBIN)                  READP _ (FUNCTION \GENERIC.READP)                  EOFP _ (FUNCTION %%CONCATENATED-STREAM-DEVICE-EOFP)                  BLOCKIN _ (FUNCTION \GENERIC.BINS)                  BLOCKOUT _ (FUNCTION NILL)                  FORCEOUTPUT _ (FUNCTION NILL)                  GETFILEINFO _ (FUNCTION NILL)                  SETFILEINFO _ (FUNCTION NILL)))    (\DEFINEDEVICE (QUOTE TWO-WAY-STREAM-DEVICE)           (create FDEV                  DEVICENAME _ (QUOTE TWO-WAY-STREAM-DEVICE)                  RESETABLE _ NIL                  RANDOMACCESSP _ NIL                  NODIRECTORIES _ T                  BUFFERED _ NIL                  PAGEMAPPED _ NIL                  FDBINABLE _ NIL                  FDBOUTABLE _ NIL                  FDEXTENDABLE _ NIL                  DEVICEINFO _ NIL                  HOSTNAMEP _ (FUNCTION NILL)                  EVENTFN _ (FUNCTION NILL)                  DIRECTORYNAMEP _ (FUNCTION NILL)                  OPENFILE _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-OPENFILE)                  REOPENFILE _ (FUNCTION NILL)                  CLOSEFILE _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-CLOSEFILE)                  GETFILENAME _ (FUNCTION NILL)                  DELETEFILE _ (FUNCTION NILL)                  GENERATEFILES _ (FUNCTION \GENERATENOFILES)                  RENAMEFILE _ (FUNCTION NILL)                  BIN _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-BIN)                  BOUT _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-BOUT)                  PEEKBIN _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-PEEKBIN)                  READP _ (FUNCTION \GENERIC.READP)                  BACKFILEPTR _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-BACKFILEPTR)                  EOFP _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-EOFP)                  BLOCKIN _ (FUNCTION \GENERIC.BINS)                  BLOCKOUT _ (FUNCTION \GENERIC.BOUTS)                  FORCEOUTPUT _ (FUNCTION %%TWO-WAY-STREAM-DEVICE-FORCEOUTPUT)                  GETFILEINFO _ (FUNCTION NILL)                  SETFILEINFO _ (FUNCTION NILL)))    (\DEFINEDEVICE (QUOTE ECHO-STREAM-DEVICE)           (create FDEV using (\GETDEVICEFROMNAME (QUOTE TWO-WAY-STREAM-DEVICE))                              DEVICENAME _ (QUOTE ECHO-STREAM-DEVICE)                              BIN _ (FUNCTION %%ECHO-STREAM-DEVICE-BIN)))    (\DEFINEDEVICE (QUOTE SYNONYM-STREAM-DEVICE)           (create FDEV                  DEVICENAME _ (QUOTE SYNONYM-STREAM-DEVICE)                  RESETABLE _ NIL                  RANDOMACCESSP _ NIL                  NODIRECTORIES _ T                  BUFFERED _ NIL                  PAGEMAPPED _ NIL                  FDBINABLE _ NIL                  FDBOUTABLE _ NIL                  FDEXTENDABLE _ NIL                  DEVICEINFO _ NIL                  HOSTNAMEP _ (FUNCTION NILL)                  EVENTFN _ (FUNCTION NILL)                  DIRECTORYNAMEP _ (FUNCTION NILL)                  OPENFILE _ (FUNCTION %%SYNONYM-STREAM-DEVICE-OPENFILE)                  REOPENFILE _ (FUNCTION NILL)                  CLOSEFILE _ (FUNCTION %%SYNONYM-STREAM-DEVICE-CLOSEFILE)                  GETFILENAME _ (FUNCTION NILL)                  DELETEFILE _ (FUNCTION NILL)                  GENERATEFILES _ (FUNCTION \GENERATENOFILES)                  RENAMEFILE _ (FUNCTION NILL)                  BIN _ (FUNCTION %%SYNONYM-STREAM-DEVICE-BIN)                  BOUT _ (FUNCTION %%SYNONYM-STREAM-DEVICE-BOUT)                  PEEKBIN _ (FUNCTION %%SYNONYM-STREAM-DEVICE-PEEKBIN)                  READP _ (FUNCTION %%SYNONYM-STREAM-DEVICE-READP)                  BACKFILEPTR _ (FUNCTION %%SYNONYM-STREAM-DEVICE-BACKFILEPTR)                  EOFP _ (FUNCTION %%SYNONYM-STREAM-DEVICE-EOFP)                  BLOCKIN _ (FUNCTION \GENERIC.BINS)                  BLOCKOUT _ (FUNCTION \GENERIC.BOUTS)                  FORCEOUTPUT _ (FUNCTION %%SYNONYM-STREAM-DEVICE-FORCEOUTPUT)                  GETFILEINFO _ (FUNCTION %%SYNONYM-STREAM-DEVICE-GETFILEINFO)                  SETFILEINFO _ (FUNCTION %%SYNONYM-STREAM-DEVICE-SETFILEINFO)))    (SETQ \FILL-POINTER-STREAM-DEVICE     (create FDEV            DEVICENAME _ (QUOTE FILL-POINTER-STREAM-DEVICE)            RESETABLE _ NIL            RANDOMACCESSP _ NIL            NODIRECTORIES _ T            BUFFERED _ NIL            PAGEMAPPED _ NIL            FDBINABLE _ NIL            FDBOUTABLE _ NIL            FDEXTENDABLE _ NIL            DEVICEINFO _ NIL            HOSTNAMEP _ (FUNCTION NILL)            EVENTFN _ (FUNCTION NILL)            DIRECTORYNAMEP _ (FUNCTION NILL)            OPENFILE _ (FUNCTION NILL)            REOPENFILE _ (FUNCTION NILL)            CLOSEFILE _ (FUNCTION %%FILL-POINTER-STREAM-DEVICE-CLOSEFILE)            GETFILENAME _ (FUNCTION NILL)            DELETEFILE _ (FUNCTION NILL)            GENERATEFILES _ (FUNCTION \GENERATENOFILES)            RENAMEFILE _ (FUNCTION NILL)            BIN _ (FUNCTION \ILLEGAL.DEVICEOP)            BOUT _ (FUNCTION NILL)            PEEKBIN _ (FUNCTION \ILLEGAL.DEVICEOP)            READP _ (FUNCTION \ILLEGAL.DEVICEOP)            EOFP _ (FUNCTION NILL)            BLOCKIN _ (FUNCTION \ILLEGAL.DEVICEOP)            BLOCKOUT _ (FUNCTION \GENERIC.BOUTS)            FORCEOUTPUT _ (FUNCTION NILL)            GETFILEPTR _ (FUNCTION %%FILL-POINTER-STREAM-DEVICE-GETFILEPTR)            SETFILEINFO _ (FUNCTION \ILLEGAL.DEVICEOP))))))(DECLARE: DONTEVAL@LOAD DOCOPY (%%INITIALIZE-CLSTREAM-TYPES)(%%INITIALIZE-STANDARD-STREAMS)(* (%%INITIALIZE-SYNONYM-IMAGEOPS)))(PUTPROPS CLSTREAMS FILETYPE COMPILE-FILE)(DEFSETF FILE-STREAM-POSITION SETFILEPTR)(PUTPROPS CLSTREAMS COPYRIGHT ("Xerox Corporation" 1985 1986))(DECLARE: DONTCOPY  (FILEMAP (NIL (24043 25525 (%%BROADCAST-STREAM-DEVICE-BOUT 24053 . 24348) (%%BROADCAST-STREAM-DEVICE-CLOSEFILE 24350 . 24777) (%%BROADCAST-STREAM-DEVICE-FORCEOUTPUT 24779 . 25084) (%%BROADCAST-STREAM-DEVICE-OPENFILE 25086 . 25523)) (25526 28155 (%%CONCATENATED-STREAM-DEVICE-BIN 25536 . 26116) (%%CONCATENATED-STREAM-DEVICE-CLOSEFILE 26118 . 26518) (%%CONCATENATED-STREAM-DEVICE-EOFP 26520 . 27050) (%%CONCATENATED-STREAM-DEVICE-OPENFILE 27052 . 27496) (%%CONCATENATED-STREAM-DEVICE-PEEKBIN 27498 . 28153)) (28156 28466 (%%ECHO-STREAM-DEVICE-BIN 28166 . 28464)) (28467 32359 (%%SYNONYM-STREAM-DEVICE-BIN 28477 . 28835) (%%SYNONYM-STREAM-DEVICE-BOUT 28837 . 29215) (%%SYNONYM-STREAM-DEVICE-CLOSEFILE 29217 . 29588) (%%SYNONYM-STREAM-DEVICE-EOFP 29590 . 29951) (%%SYNONYM-STREAM-DEVICE-FORCEOUTPUT 29953 . 30360) (%%SYNONYM-STREAM-DEVICE-GETFILEINFO 30362 . 30765) (%%SYNONYM-STREAM-DEVICE-OPENFILE 30767 . 31209) (%%SYNONYM-STREAM-DEVICE-PEEKBIN 31211 . 31604) (%%SYNONYM-STREAM-DEVICE-READP 31606 . 31740) (%%SYNONYM-STREAM-DEVICE-BACKFILEPTR 31742 . 31946) (%%SYNONYM-STREAM-DEVICE-SETFILEINFO 31948 . 32357)) (32360 34838 (%%TWO-WAY-STREAM-DEVICE-BIN 32370 . 32605) (%%TWO-WAY-STREAM-DEVICE-BOUT 32607 . 32855) (%%TWO-WAY-STREAM-DEVICE-CLOSEFILE 32857 . 33315) (%%TWO-WAY-STREAM-DEVICE-EOFP 33317 . 33551) (%%TWO-WAY-STREAM-DEVICE-BACKFILEPTR 33553 . 33747) (%%TWO-WAY-STREAM-DEVICE-FORCEOUTPUT 33749 . 34026) (%%TWO-WAY-STREAM-DEVICE-OPENFILE 34028 . 34567) (%%TWO-WAY-STREAM-DEVICE-PEEKBIN 34569 . 34836)) (35189 35639 (%%SYNONYM-STREAM-DEVICE-GET-STREAM 35199 . 35637)) (80292 88782 (%%INITIALIZE-CLSTREAM-TYPES 80302 . 88780)))))STOP