(FILECREATED "26-Mar-86 17:29:04" {ERIS}<LISPCORE>LIBRARY>TCPCHATSERVER.;2 3226   

      changes to:  (VARS TCPCHATSERVERCOMS)
                   (FNS TCP.CHAT.LISTENER TCPCHATSERVER)

      previous date: "26-Mar-86 17:24:51" {ERIS}<LISPCORE>LIBRARY>TCPCHATSERVER.;1)


(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT TCPCHATSERVERCOMS)

(RPAQQ TCPCHATSERVERCOMS ((FNS TCP.CHAT.LISTENER TCPCHATSERVER)
                          (FILES (SYSLOAD FROM VALUEOF LISPUSERSDIRECTORIES)
                                 TCP)))
(DEFINEQ

(TCP.CHAT.LISTENER
  (LAMBDA (PORT)                                                          (* ejs: 
                                                                          "26-Mar-86 17:21")
    (while T do (LET*((INSTREAM (TCP.OPEN NIL NIL (OR PORT \TCP.TELNET.PORT)
                                       (QUOTE PASSIVE)
                                       (QUOTE INPUT)
                                       T))
                      (OUTSTREAM (AND INSTREAM (TCP.OTHER.STREAM INSTREAM))))
                                                                          (* Uncomment the 
                                                                          following, and remove 
                                                                          the body of this 
                                                                          function from the loop 
                                                                          to support multiple 
                                                                          connections)
                                                                          (* (ADD.PROCESS
                                                                          (LIST (FUNCTION 
                                                                          TCP.CHAT.LISTENER)
                                                                          (KWOTE PORT))
                                                                          (QUOTE RESTARTABLE)
                                                                          (QUOTE HARDRESET)))
                 (replace ENDOFSTREAMOP of INSTREAM with (FUNCTION \CHATSERVER.ENDOFSTREAMOP))
                 (STREAMPROP INSTREAM (QUOTE AFTERCLOSE)
                        (FUNCTION CHATSERVERWHENCLOSEDFN))
                 (LINELENGTH 80 OUTSTREAM)
                 (PAGEHEIGHT 24 OUTSTREAM)
                 (RESETLST (RESETSAVE NIL (LIST (FUNCTION CLOSEF?)
                                                INSTREAM))
                        (CHATSERVEROPENFN INSTREAM OUTSTREAM))))))

(TCPCHATSERVER
  (LAMBDA NIL                                                             (* ejs: 
                                                                          "26-Mar-86 16:47")
    (DEL.PROCESS (QUOTE TCP.CHAT.LISTENER))
    (ADD.PROCESS (QUOTE (TCP.CHAT.LISTENER))
           (QUOTE RESTARTABLE)
           (QUOTE HARDRESET))))
)
(FILESLOAD (SYSLOAD FROM VALUEOF LISPUSERSDIRECTORIES)
       TCP)
(PUTPROPS TCPCHATSERVER COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (566 3075 (TCP.CHAT.LISTENER 576 . 2717) (TCPCHATSERVER 2719 . 3073)))))
STOP