1
0
mirror of synced 2026-04-25 20:01:51 +00:00

massive reorganization

This commit is contained in:
Larry Masinter
2020-11-15 19:22:14 -08:00
parent 6a758f1aa9
commit 6424116dc9
9681 changed files with 103 additions and 347608 deletions

439
library/TEDITCHAT Normal file
View File

@@ -0,0 +1,439 @@
(DEFINE-FILE-INFO PACKAGE "LISP" READTABLE "XCL" BASE 10)
(IL:FILECREATED "28-Mar-94 16:05:24" IL:|{PELE:MV:ENVOS}<LISPCORE>LIBRARY>TEDITCHAT.;3| 31193
IL:|changes| IL:|to:| (IL:FNS IL:\\TEXTSTREAMBOUT)
IL:|previous| IL:|date:| "12-Jun-90 18:01:39" IL:|{PELE:MV:ENVOS}<LISPCORE>LIBRARY>TEDITCHAT.;2|
)
; Copyright (c) 1985, 1986, 1990, 1994 by Venue & Xerox Corporation. All rights reserved.
(IL:PRETTYCOMPRINT IL:TEDITCHATCOMS)
(IL:RPAQQ IL:TEDITCHATCOMS
((IL:COMS (IL:* IL:\; "character routines")
(IL:FNS IL:TEDITCHAT.CHARFN IL:\\TEXTSTREAMBOUT))
(IL:COMS (IL:FNS IL:TEDITSTREAM.INIT IL:TEDITCHAT.MENUFN))
(IL:COMS (IL:* IL:\; "TEDIT update routines")
(IL:FNS IL:TEDIT.DISPLAYTEXT))
(IL:GLOBALVARS IL:TEDITCHAT.MENU IL:CHAT.DRIVERTYPES IL:CHAT.DISPLAYTYPES)
(IL:VARS IL:TEDITCHAT.MENUITEMS (IL:TEDITCHAT.MENU))
(IL:ADDVARS (IL:CHAT.DRIVERTYPES (IL:TEDIT IL:TEDITCHAT.CHARFN IL:NILL)))
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY (IL:FILES (IL:SOURCE)
IL:CHATDECLS))))
(IL:* IL:\; "character routines")
(IL:DEFINEQ
(IL:TEDITCHAT.CHARFN
(IL:LAMBDA (IL:CH IL:CHAT.STATE) (IL:* IL:\; "Edited 12-Jun-90 18:00 by mitani")
(LET* ((IL:TEXTSTREAM (IL:|fetch| (IL:CHAT.STATE IL:TEXTSTREAM) IL:|of| IL:CHAT.STATE))
(IL:SEL (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of| (IL:TEXTOBJ IL:TEXTSTREAM))))
(IL:\\CARET.DOWN (IL:|fetch| (IL:TEXTOBJ IL:DS) IL:|of| (IL:TEXTOBJ IL:TEXTSTREAM))
)
(IL:SELCHARQ IL:CH
(IL:BS (IL:\\TEDIT.CHARDELETE IL:TEXTSTREAM "" IL:SEL)
(IL:MOVETO (IL:|fetch| IL:X0 IL:|of| IL:SEL)
(IL:|fetch| IL:Y0 IL:|of| IL:SEL)
(CAR (IL:|fetch| (IL:TEXTOBJ IL:\\WINDOW) IL:|of| (IL:TEXTOBJ
IL:TEXTSTREAM
)))))
(IL:LF NIL)
(IL:BOUT IL:TEXTSTREAM IL:CH)))))
(IL:\\TEXTSTREAMBOUT
(IL:LAMBDA (STREAM BYTE) (IL:* IL:\; "Edited 28-Mar-94 15:29 by jds")
(IL:* IL:|;;| "Do BOUT to a text stream, which is an insertion at the caret.")
(PROG ((IL:TEXTOBJ (IL:|fetch| (IL:TEXTSTREAM IL:TEXTOBJ) IL:|of| STREAM))
IL:CH# IL:WINDOW IL:TEXTLEN IL:PS IL:PC IL:PSTR IL:OFFST IL:SEL)
(IL:SETQ IL:TEXTLEN (IL:|fetch| (IL:TEXTOBJ IL:TEXTLEN) IL:|of| IL:TEXTOBJ))
(IL:SETQ IL:WINDOW (IL:|fetch| (IL:TEXTOBJ IL:\\WINDOW) IL:|of| IL:TEXTOBJ))
(IL:SETQ IL:SEL (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of| IL:TEXTOBJ))
(COND
((NOT (CAR (IL:|fetch| IL:L1 IL:|of| IL:SEL)))
(RETURN))) (IL:* IL:\;
 "Return if caret out of bounds, ie, user scrolls past end of text")
(IL:SETQ IL:CH# (IL:|fetch| IL:CH# IL:|of| IL:SEL))
(AND IL:WINDOW (IL:\\TEDIT.MARK.LINES.DIRTY IL:TEXTOBJ IL:CH# IL:CH#))
(COND
((IL:IEQP BYTE 13)
(IL:\\INSERTCR BYTE IL:CH# IL:TEXTOBJ))
(T (IL:\\INSERTCH BYTE IL:CH# IL:TEXTOBJ)))
(AND IL:WINDOW
(PROG ((IL:THISLINE (IL:|fetch| (IL:TEXTOBJ IL:THISLINE) IL:|of| IL:TEXTOBJ))
IL:EOLFLAG IL:CHORIG IL:CHWIDTH IL:OXLIM IL:OCHLIM IL:OCR\\END IL:PREVSPACE
IL:FIXEDLINE IL:NEXTLINE IL:LINES IL:NEWLINEFLG IL:DX IL:PREVLINE IL:SAVEWIDTH
IL:OFLOWFN IL:OLHEIGHT IL:DY IL:TABSEEN IL:IMAGECACHE IL:CURLINE IL:FONT
(IL:L1 (CAR (IL:|fetch| IL:L1 IL:|of| IL:SEL)))
(IL:LN (CAR (IL:|fetch| IL:LN IL:|of| IL:SEL)))
(IL:LOOKS (IL:\\TEDIT.APPLY.STYLES (IL:|fetch| (IL:TEXTOBJ IL:CARETLOOKS)
IL:|of| IL:TEXTOBJ)
(IL:|fetch| (IL:TEXTOBJ IL:\\INSERTPC) IL:|of|
IL:TEXTOBJ)
IL:TEXTOBJ)))
(IL:|add| (IL:|fetch| IL:CH# IL:|of| IL:SEL)
1) (IL:* IL:\;
 "These must be here, since SELs are valid even without a window.")
(IL:|replace| IL:CHLIM IL:|of| IL:SEL IL:|with| (IL:|fetch|
IL:CH# IL:|of|
IL:SEL))
(IL:|replace| IL:POINT IL:|of| IL:SEL IL:|with| 'IL:LEFT)
(IL:|replace| IL:DCH IL:|of| IL:SEL IL:|with| 0)
(IL:|replace| IL:SELKIND IL:|of| IL:SEL IL:|with| 'IL:CHAR)
(IL:SETQ IL:CURLINE IL:L1)
(IL:|add| (IL:|fetch| IL:CHARLIM IL:|of| IL:CURLINE)
1)
(IL:|add| (IL:|fetch| IL:CHARTOP IL:|of| IL:CURLINE)
1)
(IL:SETQ IL:FONT (IL:|fetch| IL:CLFONT IL:|of| IL:LOOKS))
(IL:DSPFONT IL:FONT (CAR IL:WINDOW))
(COND
((OR (IL:IGREATERP (IL:PLUS (IL:|fetch| IL:X0 IL:|of| IL:SEL)
(IL:CHARWIDTH BYTE IL:FONT))
(IL:IDIFFERENCE (IL:|fetch| (IL:TEXTOBJ IL:WRIGHT)
IL:|of| IL:TEXTOBJ)
8))
(IL:IEQP BYTE (IL:CHARCODE IL:CR)))
(IL:* IL:\;
 "gone off the edge of the line reformat and add new line")
(IL:TEDIT.UPDATE.SCREEN IL:TEXTOBJ)
(IL:\\FIXSEL IL:SEL IL:TEXTOBJ (CAR IL:WINDOW))
(IL:SETQ IL:L1 (CAR (IL:|fetch| IL:L1 IL:|of| IL:SEL)))
(IL:SETQ IL:LN (CAR (IL:|fetch| IL:LN IL:|of| IL:SEL)))
(COND
((OR (NULL (IL:SELECTQ (IL:|fetch| IL:POINT IL:|of| IL:SEL)
(IL:LEFT IL:L1)
(IL:RIGHT IL:LN)
NIL))
(IL:ILEQ (IL:SELECTQ (IL:|fetch| IL:POINT IL:|of| IL:SEL)
(IL:LEFT (IL:|fetch| IL:YBOT IL:|of| IL:L1))
(IL:RIGHT (IL:|fetch| IL:YBOT IL:|of| IL:LN))
0)
(IL:|fetch| (IL:REGION IL:BOTTOM)
IL:|of| (IL:DSPCLIPPINGREGION NIL (CAR IL:WINDOW)))))
(IL:* IL:\;
 "The caret is off-window in the selection window. Need to scroll it up so the caret is visible.")
(IL:|while| (IL:ILESSP (IL:|fetch| IL:Y0 IL:|of| IL:SEL)
(IL:|fetch| (IL:TEXTOBJ IL:WBOTTOM)
IL:|of| IL:TEXTOBJ))
IL:|do| (IL:* IL:\;
 "The caret just went off-screen. Move it up some.")
(IL:|replace| (IL:TEXTOBJ IL:EDITOPACTIVE) IL:|of|
IL:TEXTOBJ
IL:|with| NIL)
(IL:SCROLLW (CAR IL:WINDOW)
0
(IL:LLSH (COND
((IL:SELECTQ (IL:|fetch| IL:POINT
IL:|of| IL:SEL)
(IL:LEFT IL:L1)
(IL:RIGHT IL:LN)
NIL)
(IL:|fetch| IL:LHEIGHT
IL:|of| (IL:SELECTQ (IL:|fetch|
IL:POINT
IL:|of|
IL:SEL)
(IL:LEFT IL:L1)
(IL:RIGHT IL:LN)
(IL:SHOULDNT))))
(T 12))
1))))))
(T (IL:TEDIT.DISPLAYTEXT IL:TEXTOBJ BYTE (IL:CHARWIDTH BYTE IL:FONT)
IL:CURLINE
(IL:|fetch| IL:X0 IL:|of| IL:SEL)
(CAR IL:WINDOW)
IL:SEL) (IL:* IL:\;
 "Print out the character on the screen")
(IL:|add| (IL:|fetch| IL:X0 IL:|of| IL:SEL)
(IL:CHARWIDTH BYTE IL:FONT))
(IL:* IL:|;;| "And move the selection's notion of our X position to the right to account for that character's width.")
(IL:|replace| IL:XLIM IL:|of| IL:SEL IL:|with| (IL:|fetch|
IL:X0
IL:|of|
IL:SEL))))
(IL:* IL:|;;;| "Fix up the TEXTSTREAM so that the FILEPTR looks like it ought to after the BOUT, even though we've been updating the screen (which usually moves the fileptr....)")
(IL:SETQ IL:PS (IL:|ffetch| (IL:PIECE IL:PSTR) IL:|of|
(IL:SETQ IL:PC
(IL:|fetch| (IL:TEXTOBJ
IL:\\INSERTPC
)
IL:|of| IL:TEXTOBJ)))
) (IL:* IL:\;
 "This piece resides in a STRING. Because it's newly 'typed' material.")
(IL:|replace| (IL:TEXTSTREAM IL:PIECE) IL:|of| STREAM IL:|with|
IL:PC)
(IL:* IL:\;
 "Remember the current piece for others.")
(IL:* IL:\;
 "And which number piece this is.")
(IL:|freplace| (STREAM IL:CPPTR) IL:|of| STREAM
IL:|with| (IL:ADDBASE (IL:|ffetch| (IL:STRINGP IL:BASE) IL:|of|
IL:PS)
(IL:LRSH (IL:SETQ IL:OFFST (IL:|ffetch| (IL:STRINGP
IL:OFFST)
IL:|of| IL:PS))
1))) (IL:* IL:\;
 "Pointer to the actual characters in the string (allowing for substrings.)")
(IL:|freplace| (STREAM IL:CPAGE) IL:|of| STREAM IL:|with| 0)
(IL:|freplace| (STREAM IL:COFFSET) IL:|of| STREAM
IL:|with| (IL:IPLUS (IL:|freplace| (IL:TEXTSTREAM IL:PCSTARTCH)
IL:|of| STREAM IL:|with| (LOGAND 1
IL:OFFST))
(IL:|fetch| (IL:TEXTOBJ IL:\\INSERTLEN) IL:|of|
IL:TEXTOBJ))
)
(IL:|freplace| (IL:TEXTSTREAM IL:PCSTARTPG) IL:|of| STREAM IL:|with|
0)
(IL:* IL:\;
 "Page # within the 'file' where this piece starts")
(IL:|freplace| (STREAM IL:CBUFSIZE) IL:|of| STREAM
IL:|with| (IL:|fetch| (STREAM IL:COFFSET) IL:|of| STREAM))
(IL:|freplace| (STREAM IL:EPAGE) IL:|of| STREAM IL:|with| 1)
(IL:|freplace| (IL:TEXTSTREAM IL:CHARSLEFT) IL:|of| STREAM IL:|with|
0)
(IL:* IL:\;
 "We're, perforce, at the end of the piece.")
(IL:|freplace| (IL:TEXTSTREAM IL:REALFILE) IL:|of| STREAM IL:|with|
NIL)
(IL:* IL:\; "We're not on a file....")
)))))
)
(IL:DEFINEQ
(IL:TEDITSTREAM.INIT
(IL:LAMBDA (IL:WINDOW IL:MENUFN) (IL:* IL:\; "Edited 12-Jun-90 18:01 by mitani")
(IL:* IL:|;;| "Initialize and return TEDIT TEXTSTREAM")
(PROG* ((IL:TEXTSTREAM (IL:OPENTEXTSTREAM NIL IL:WINDOW NIL NIL))
(IL:TEXTOBJ (IL:TEXTOBJ IL:TEXTSTREAM))) (IL:* IL:\;
 "force shift select typein to be put in keyboard buffer")
(IL:TEXTPROP IL:TEXTSTREAM 'IL:COPYBYBKSYSBUF T)
(IL:|replace| (STREAM IL:STRMBOUTFN) IL:|of| IL:TEXTSTREAM IL:|with|
'IL:\\TEXTSTREAMBOUT)
(IL:|replace| SET IL:|of| (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of|
IL:TEXTOBJ)
IL:|with| T)
(IL:|replace| IL:L1 IL:|of| (IL:|fetch| (IL:TEXTOBJ IL:SEL) IL:|of|
IL:TEXTOBJ)
IL:|with| (LIST (IL:|fetch| IL:DESC IL:|of| (IL:|fetch| (IL:TEXTOBJ
IL:THISLINE)
IL:|of| IL:TEXTOBJ))))
(IL:* IL:\;
 "hookup middle button menu instead of TEDIT menu")
(IL:WINDOWPROP IL:WINDOW 'IL:TEDIT.TITLEMENUFN IL:MENUFN)
(RETURN IL:TEXTSTREAM))))
(IL:TEDITCHAT.MENUFN
(IL:LAMBDA (IL:WINDOW) (IL:* IL:|| "20-Oct-86 15:03")
(DECLARE (IL:GLOBALVARS IL:TEDITCHAT.MENU)
(IL:SPECVARS IL:WINDOW IL:STATE)) (IL:* IL:MIDDLEBUTTON)
(PROG ((IL:STATE (IL:WINDOWPROP IL:WINDOW 'IL:CHATSTATE))
IL:COMMAND)
(COND
((NOT IL:STATE) (IL:* IL:N\o IL:|Connection|
 IL:|here;| IL:|try| IL:|to|
 IL:|reestablish|)
(RETURN (COND
((IL:LASTMOUSESTATE IL:MIDDLE)
(IL:CHAT.RECONNECT IL:WINDOW))
(T (IL:TOTOPW IL:WINDOW))))))
(IL:|replace| (IL:CHAT.STATE IL:HELD) IL:|of| IL:STATE IL:|with| T)
(IL:\\CHECKCARET IL:WINDOW)
(IL:SELECTQ (IL:SETQ IL:COMMAND (IL:MENU (OR IL:TEDITCHAT.MENU (IL:SETQ IL:TEDITCHAT.MENU
(IL:|create| IL:MENU
IL:ITEMS IL:_
IL:TEDITCHAT.MENUITEMS
)))))
(IL:|Close| (IL:|replace| (IL:CHAT.STATE IL:RUNNING?) IL:|of| IL:STATE
IL:|with| 'IL:CLOSE) (IL:* IL:|Ask| IL:CHAT.TYPEIN IL:|to|
 IL:|shut| IL:|things| IL:|down.|)
)
(IL:|New| (IL:|replace| (IL:CHAT.STATE IL:RUNNING?) IL:|of| IL:STATE
IL:|with| 'IL:CLOSE)
(IL:WINDOWPROP IL:WINDOW 'IL:KEEPCHAT 'IL:NEW))
(IL:|Suspend| (IL:|replace| (IL:CHAT.STATE IL:RUNNING?) IL:|of| IL:STATE
IL:|with| 'IL:CLOSE)
(IL:WINDOWPROP IL:WINDOW 'IL:KEEPCHAT T))
(IL:|Freeze| (IL:* IL:|Leave| IL:|in| IL:HELD
 IL:|state|)
(RETURN))
(NIL)
(IL:APPLY* IL:COMMAND IL:STATE IL:WINDOW))
(IL:|replace| (IL:CHAT.STATE IL:HELD) IL:|of| IL:STATE IL:|with| NIL))))
)
(IL:* IL:\; "TEDIT update routines")
(IL:DEFINEQ
(IL:TEDIT.DISPLAYTEXT
(IL:LAMBDA (IL:TEXTOBJ IL:CH IL:CHWIDTH IL:LINE IL:XPOINT IL:DS IL:SEL)
(IL:* IL:\; "Edited 12-Jun-90 18:01 by mitani")
(IL:* IL:|This| IL:|function|
 IL:|does| IL:|the| IL:|actual|
 IL:|displaying| IL:|of|
 IL:|typed-in| IL:|text| IL:|on|
 IL:|the| IL:|edit| IL:|window.|)
(PROG ((IL:LOOKS (IL:\\TEDIT.APPLY.STYLES (IL:|fetch| (IL:TEXTOBJ IL:CARETLOOKS) IL:|of|
IL:TEXTOBJ)
(IL:|fetch| (IL:TEXTOBJ IL:\\INSERTPC) IL:|of| IL:TEXTOBJ)
IL:TEXTOBJ))
(IL:TERMSA (IL:|fetch| (IL:TEXTOBJ IL:TXTTERMSA) IL:|of| IL:TEXTOBJ))
IL:DY IL:FONT)
(IL:MOVETO IL:XPOINT (IL:IPLUS (IL:|fetch| IL:YBASE IL:|of| IL:LINE)
(OR (IL:|fetch| IL:CLOFFSET IL:|of| IL:LOOKS)
0))
IL:DS) (IL:* IL:|Set| IL:|the| IL:|display|
 IL:|stream| IL:|position|)
(COND
(IL:TERMSA (IL:* IL:|Special| IL:|terminal|
 IL:|table| IL:|for| IL:|controlling|
 IL:|character| IL:|display.|
 IL:|Use| IL:|it.|)
(IL:RESETLST
(IL:RESETSAVE IL:\\PRIMTERMSA IL:TERMSA)
(IL:|replace| (IL:TEXTSTREAM IL:REALFILE) IL:|of| (IL:|fetch|
(IL:TEXTOBJ
IL:STREAMHINT
)
IL:|of|
IL:TEXTOBJ)
IL:|with| IL:DS)
(COND
((IL:STRINGP IL:CH)
(IL:|for| IL:CHAR IL:|instring| IL:CH
IL:|do| (IL:SELCHARQ IL:CHAR
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
(IL:BITBLT NIL 0 0 IL:DS IL:XPOINT
(IL:|fetch| IL:YBOT IL:|of|
IL:LINE)
36
(IL:|fetch| IL:LHEIGHT
IL:|of| IL:LINE)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE)
(IL:RELMOVETO 36 0 IL:DS))
(IL:CR (IL:BITBLT NIL 0 0 IL:DS IL:XPOINT
(IL:|fetch| IL:YBOT IL:|of|
IL:LINE)
(IL:IMAX 6 (IL:CHARWIDTH IL:CHAR
IL:FONT))
(IL:|fetch| IL:LHEIGHT
IL:|of| IL:LINE)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE))
(IL:\\DSPPRINTCHAR (IL:|fetch| (IL:TEXTOBJ
IL:STREAMHINT)
IL:|of| IL:TEXTOBJ)
IL:CHAR))))
(T (IL:SELCHARQ IL:CH
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
(IL:BITBLT NIL 0 0 IL:DS IL:XPOINT (IL:|fetch|
IL:YBOT
IL:|of| IL:LINE
)
36
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE)
(IL:RELMOVETO 36 0 IL:DS))
(IL:CR (IL:BITBLT NIL 0 0 IL:DS IL:XPOINT (IL:|fetch| IL:YBOT
IL:|of| IL:LINE)
(IL:IMAX 6 (IL:CHARWIDTH IL:CH IL:FONT))
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE))
(IL:\\DSPPRINTCHAR (IL:|fetch| (IL:TEXTOBJ IL:STREAMHINT)
IL:|of| IL:TEXTOBJ)
IL:CH))))))
(T (IL:* IL:N\o IL:|special|
 IL:|handling;| IL:|just| IL:|use|
 IL:|native| IL:|character|
 IL:|codes|)
(COND
((IL:STRINGP IL:CH)
(IL:|for| IL:CHAR IL:|instring| IL:CH
IL:|do| (IL:SELCHARQ IL:CHAR
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
(IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
36
(IL:|fetch| IL:LHEIGHT IL:|of|
IL:LINE)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE)
(IL:RELMOVETO 36 0 IL:DS))
(IL:CR (IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
(IL:IMAX 6 (IL:CHARWIDTH IL:CHAR IL:FONT))
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE
)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE))
(IL:BLTCHAR IL:CHAR IL:DS))))
(T (IL:SELCHARQ IL:CH
(IL:TAB (IL:* IL:|Put| IL:|down| IL:|white|)
(IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
36
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE)
(IL:RELMOVETO 36 0 IL:DS))
(IL:CR (IL:* IL:|Blank| IL:|out| IL:|the|
 IL:|CR's| IL:|width.|)
(IL:BITBLT NIL 0 0 IL:DS (IL:DSPXPOSITION NIL IL:DS)
(IL:|fetch| IL:YBOT IL:|of| IL:LINE)
(IL:IMAX 6 (IL:CHARWIDTH IL:CH IL:FONT))
(IL:|fetch| IL:LHEIGHT IL:|of| IL:LINE)
'IL:TEXTURE
'IL:REPLACE IL:WHITESHADE))
(IL:BLTCHAR IL:CH IL:DS)))))))))
)
(IL:DECLARE\: IL:DOEVAL@COMPILE IL:DONTCOPY
(IL:GLOBALVARS IL:TEDITCHAT.MENU IL:CHAT.DRIVERTYPES IL:CHAT.DISPLAYTYPES)
)
(IL:RPAQQ IL:TEDITCHAT.MENUITEMS
((IL:|Close| 'IL:|Close| "Closes the connection and returns")
(IL:|Suspend| 'IL:|Suspend| "Closes the connection but leaves window up")
(IL:|New| 'IL:|New| "Closes this connection and prompts for a new host")
(IL:|Freeze| 'IL:|Freeze| "Holds typeout in this window until you bug it again")
("Dribble" (IL:FUNCTION IL:CHAT.TYPESCRIPT)
"Starts a typescript of window typeout")
("Input" (IL:FUNCTION IL:CHAT.TAKE.INPUT)
"Allows input from a file")
("Option" (IL:FUNCTION IL:DO.CHAT.OPTION)
"Do protocol specific option")))
(IL:RPAQQ IL:TEDITCHAT.MENU NIL)
(IL:ADDTOVAR IL:CHAT.DRIVERTYPES (IL:TEDIT IL:TEDITCHAT.CHARFN IL:NILL))
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY
(IL:FILESLOAD (IL:SOURCE)
IL:CHATDECLS)
)
(IL:PUTPROPS IL:TEDITCHAT IL:COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1990 1994))
(IL:DECLARE\: IL:DONTCOPY
(IL:FILEMAP (NIL (1308 15667 (IL:TEDITCHAT.CHARFN 1321 . 2481) (IL:\\TEXTSTREAMBOUT 2483 . 15665)) (
15668 20008 (IL:TEDITSTREAM.INIT 15681 . 17389) (IL:TEDITCHAT.MENUFN 17391 . 20006)) (20054 30055 (
IL:TEDIT.DISPLAYTEXT 20067 . 30053)))))
IL:STOP