(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
(FILECREATED "16-Feb-90 17:00:31" "{piglet/n}<piglet>vanmelle>lispusers>UNIXTELNET;11" 3551   

      changes to%:  (VARS UNIXTELNETCOMS) (FNS UNIX-TCPCHAT.INIT UNIX-TCPCHAT.OPEN UNIX-TCPCHAT.HOST.FILTER UNIX-TCPCHAT.GET.LOGIN)

      previous date%: "30-Jan-90 17:47:34" "{piglet/n}<piglet>vanmelle>lispusers>UNIXTELNET;7")


(* "
Copyright (c) 1989, 1990 by Xerox Corporation.  All rights reserved.
")

(PRETTYCOMPRINT UNIXTELNETCOMS)

(RPAQQ UNIXTELNETCOMS ((FNS UNIX-TCPCHAT.HOST.FILTER UNIX-TCPCHAT.OPEN UNIX-TCPCHAT.GET.LOGIN UNIX-TCPCHAT.INIT) (INITVARS (CHAT.LOGINS) (CHAT.LOGINS.MENU)) (GLOBALVARS CHAT.LOGINS CHAT.LOGINS.MENU) (DECLARE%: DONTEVAL@LOAD DOCOPY (FILES (SYSLOAD) UNIXCHAT) (ADDVARS (AROUNDEXITFNS UNIX-TCPCHAT.INIT)) (P (UNIX-TCPCHAT.INIT)))))
(DEFINEQ

(UNIX-TCPCHAT.HOST.FILTER
(LAMBDA (HOST) (* ; "Edited 14-Feb-90 15:17 by bvm") (if (NOT (STRPOSL (CHARCODE (":" SPACE)) HOST)) then (* ;; "At least reject XNS names or things that will give RLOGIN a syntactic problem.  Really should test whether HOST is a valid ip host name, but I don't know how to do that from here.") (LET ((UPHOST (MKATOM (U-CASE HOST)))) (if (NOT (ASSOC UPHOST NETWORKOSTYPES)) then (push NETWORKOSTYPES (BQUOTE ((\, UPHOST) . UNIX))))) (LIST HOST (FUNCTION UNIX-TCPCHAT.OPEN))))
)

(UNIX-TCPCHAT.OPEN
(LAMBDA (HOST TERMTYPE LOGOPTION) (* ; "Edited 14-Feb-90 18:36 by bvm") (* ;; "For use on Maiko: chat to HOST by using rlogin in a shell window.") (LET (NAME STR) (if (AND (OR (NEQ LOGOPTION (QUOTE NONE)) (SETQ NAME (UNIX-TCPCHAT.GET.LOGIN HOST))) (SETQ STR (CREATE-SHELL-STREAM TERMTYPE (CL:FORMAT NIL "exec rlogin ~@[-l ~A ~]~A" NAME HOST)))) then (STREAMPROP STR (QUOTE SENDSCREENPARAMS) (FUNCTION UNIX.SENDSCREENPARAMS)) (STREAMPROP STR (QUOTE SETDISPLAYTYPE) (FUNCTION UNIX.SETDISPLAYTYPE)) (LIST STR STR (QUOTE LOGOPTION) (QUOTE NONE)))))
)

(UNIX-TCPCHAT.GET.LOGIN
(LAMBDA (HOST) (* ; "Edited 15-Feb-90 11:28 by bvm") (LET (NAME) (if (OR (NULL CHAT.LOGINS) (EQ (SETQ NAME (MENU (OR CHAT.LOGINS.MENU (SETQ CHAT.LOGINS.MENU (create MENU ITEMS _ (APPEND CHAT.LOGINS (QUOTE (("**other**" T "Prompts for a name to login as")))) CENTERFLG _ T TITLE _ "Log in as:"))))) T)) then (* ; "Prompt for a name") (if (SETQ NAME (CHAT.PROMPT.FOR.INPUT (CL:FORMAT NIL "Log in to ~A as user: " HOST) NIL 16)) then (SETQ CHAT.LOGINS (SORT (CONS NAME CHAT.LOGINS) (FUNCTION UALPHORDER))) (SETQ CHAT.LOGINS.MENU NIL))) NAME))
)

(UNIX-TCPCHAT.INIT
(LAMBDA (EVENT) (* ; "Edited 26-Oct-89 15:24 by bvm") (* ;; "If we wake up on Sun, install a new version of the tcp chat host filter.") (SELECTQ EVENT ((AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM NIL) (if (EQ (MACHINETYPE) (QUOTE MAIKO)) then (if (NOT (CL:ASSOC (QUOTE N) CHAT.PROTOCOL.ABBREVS :TEST (QUOTE STRING-EQUAL))) then (* ; "TCPCHAT wasn't loaded--make sure that /n works") (push CHAT.PROTOCOL.ABBREVS (QUOTE (N . TCP)))) (PUTASSOC (QUOTE TCP) (FUNCTION UNIX-TCPCHAT.HOST.FILTER) CHAT.PROTOCOLTYPES) (* ; "Won't need to do this again, as you can't run a Sun sysout on a D machine.") (SETQ AROUNDEXITFNS (DREMOVE (FUNCTION UNIX-TCPCHAT.INIT) AROUNDEXITFNS)))) NIL))
)
)

(RPAQ? CHAT.LOGINS)

(RPAQ? CHAT.LOGINS.MENU)
(DECLARE%: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS CHAT.LOGINS CHAT.LOGINS.MENU)
)
(DECLARE%: DONTEVAL@LOAD DOCOPY 

(FILESLOAD (SYSLOAD) UNIXCHAT)


(ADDTOVAR AROUNDEXITFNS UNIX-TCPCHAT.INIT)


(UNIX-TCPCHAT.INIT)
)
(PUTPROPS UNIXTELNET COPYRIGHT ("Xerox Corporation" 1989 1990))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (836 3203 (UNIX-TCPCHAT.HOST.FILTER 846 . 1353) (UNIX-TCPCHAT.OPEN 1355 . 1924) (
UNIX-TCPCHAT.GET.LOGIN 1926 . 2495) (UNIX-TCPCHAT.INIT 2497 . 3201)))))
STOP
