(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "22-Jul-88 15:38:03" |{MCS:MCS:STANFORD}TEDITTALK.;2| 24816 previous date%: "13-Jun-88 16:35:46" |{MCS:MCS:STANFORD}TEDITTALK.;1|) (PRETTYCOMPRINT TEDITTALKCOMS) (RPAQQ TEDITTALKCOMS [(* TALK TEdit Service) (LOCALVARS . T) (FNS TALK.TEDIT.DISPLAY TALK.TEDIT.LISTEN TALK.TEDIT.CHARFN) (* TALK TEdit hooks) (FNS TALK.TEDIT.USERFN TALK.TEDIT.INSERT TALK.SELFN TALK.SETSELFN TALK.IMAGEOBJFN TALK.LOOKSFN TALK.PARAFN TALK.INSERTFN TALK.INCLUDEFN TALK.DELETEFN TALK.GETFN) (FNS TALK.TEDIT.BACKSPACE TALK.TEDIT.INCLUDE TALK.TEDIT.DELETE.TEXT TALK.TEDIT.GET TALK.TEDIT.INSERT.TEXT TALK.TEDIT.SETSEL TALK.TEDIT.INSERT.OBJECT TALK.TEDIT.LOOKS TALK.TEDIT.PARALOOKS TALK.TEDIT.DELETE) (FNS TALK.ENCODE.SEL TALK.DECODE.SEL) (* TALK data) (VARS TALK.TEDIT.ACTIONS TALK.FROM.TEDIT.PROPS TALK.TO.TEDIT.PROPS) (GLOBALVARS TALK.TEDIT.ACTIONS TALK.TO.TEDIT.PROPS TALK.FROM.TEDIT.PROPS) (* etc) (FILES TALK TEDIT) (APPENDVARS (GAP.SERVICETYPES (6 TEdit TALK.NS.SERVER)) (TALK.SERVICETYPES (TEdit TALK.TEDIT.DISPLAY TALK.TEDIT.LISTEN))) (ADDVARS (TALK.TEDIT.ADVISEDFNS TEDIT.SETSEL TEDIT.INSERT TEDIT.DELETE TEDIT.INSERT.OBJECT TEDIT.LOOKS TEDIT.PARALOOKS OPENFILE-IN-TEDIT.INCLUDE)) (ADVISE * (PROGN TALK.TEDIT.ADVISEDFNS)) (GLOBALVARS TALK.TEDIT.ADVISEDFNS) (DECLARE%: DONTCOPY DOEVAL@COMPILE (ALISTS (CHARACTERNAMES UNDO REDO NEXT MARGINS FONT SHIFT.UNDO SHIFT.REDO SHIFT.NEXT SHIFT.MARGINS SHIFT.FONT SHIFT.DEL) (PRINTOUTMACROS .OP .FORCE))) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA TALK.TEDIT.USERFN]) (* TALK TEdit Service) (DECLARE%: DOEVAL@COMPILE DONTCOPY (LOCALVARS . T) ) (DEFINEQ (TALK.TEDIT.DISPLAY [LAMBDA (MAINWINDOW WINDOW INPUTSTREAM OUTPUTSTREAM PROTOCOL USER) (* ; "Edited 2-Jun-88 16:25 by cdl") (LET (TEXTOBJ) (TEDIT NIL MAINWINDOW NIL TALK.TO.TEDIT.PROPS) (TEXTPROP (SETQ TEXTOBJ (WINDOWPROP MAINWINDOW 'TEXTOBJ)) 'TALK OUTPUTSTREAM) (with TEXTOBJ TEXTOBJ (SETQ TXTFILE (CONCAT "Talk with " USER))) (TEDIT.SETSEL (OPENTEXTSTREAM NIL WINDOW NIL NIL TALK.FROM.TEDIT.PROPS) 1 0 'LEFT) (WINDOWPROP WINDOW 'PROMPTWINDOW (WINDOWPROP MAINWINDOW 'PROMPTWINDOW]) (TALK.TEDIT.LISTEN [LAMBDA (MAINWINDOW WINDOW INPUTSTREAM OUTPUTSTREAM PROTOCOLTYPE) (* ; "Edited 7-Jun-88 08:45 by cdl") (* DECLARATIONS%: (RECORD ACTION  (CCODES ACTIONFN TEXTOBJP))) (DECLARE (SPECVARS INPUTSTREAM)) (PROG ((POSITION (create POSITION)) (TEXTOBJ (WINDOWPROP WINDOW 'TEXTOBJ)) (TEXTSTREAM (WINDOWPROP WINDOW 'TEXTSTREAM)) (SCRATCHPTR (ALLOCSTRING 0)) (STRING (ALLOCSTRING 128)) (EVENTFN (with TALK.PROTOCOLTYPE PROTOCOLTYPE TALK.EVENTFN)) STRINGSTREAM EOFPTR BYTE ACTION CCODE) [SETQ EOFPTR (GETEOFPTR (SETQ STRINGSTREAM (OPENSTRINGSTREAM STRING 'BOTH] (while (OPENP TEXTSTREAM) do (APPLY* EVENTFN INPUTSTREAM OUTPUTSTREAM) (if (NOT (AND (OPENP INPUTSTREAM) (OPENP OUTPUTSTREAM))) then (RETURN)) (TALK.FLASH.CARET WINDOW POSITION 'OFF) (while (AND (OPENP INPUTSTREAM) (READP INPUTSTREAM)) do (SELCHARQ (SETQ BYTE (LOGAND (SETQ CCODE (READCCODE INPUTSTREAM)) (MASK.1'S 0 8))) (BS (* Flush text buffer) (TALK.TEDIT.INSERT TEXTSTREAM STRING STRINGSTREAM SCRATCHPTR) (* the escape code) (SETQ CCODE (LOGAND (SETQ CCODE (READCCODE INPUTSTREAM)) (MASK.1'S 0 10))) (if [SETQ ACTION (for ACTION in TALK.TEDIT.ACTIONS thereis (with ACTION ACTION (EQMEMB CCODE CCODES ] then (with ACTION ACTION (APPLY* ACTIONFN (if TEXTOBJP then TEXTOBJ else TEXTSTREAM) INPUTSTREAM)))) (^G (* Flush text buffer) (TALK.TEDIT.INSERT TEXTSTREAM STRING STRINGSTREAM SCRATCHPTR) (TALK.RINGBELLS WINDOW)) (if (LESSP CCODE (MASK.1'S 0 8)) then (PRINTCCODE CCODE STRINGSTREAM) (if (LEQ EOFPTR (GETFILEPTR STRINGSTREAM)) then (TALK.TEDIT.INSERT TEXTSTREAM STRING STRINGSTREAM SCRATCHPTR)) else (TALK.TEDIT.INSERT TEXTSTREAM STRING STRINGSTREAM SCRATCHPTR) (* String streams don't handle NS  charaters so don't buffer) (TALK.TEDIT.INSERT TEXTSTREAM CCODE))) finally (TALK.TEDIT.INSERT TEXTSTREAM STRING STRINGSTREAM SCRATCHPTR)) (TALK.FLASH.CARET WINDOW POSITION 'ON)) (if (SETQ TEXTOBJ (WINDOWPROP MAINWINDOW 'TEXTOBJ)) then (with TEXTOBJ TEXTOBJ (SETQ TXTFILE (CONCAT TXTFILE TALK.CLOSED.STRING]) (TALK.TEDIT.CHARFN [LAMBDA (TEXTOBJ CCODE) (* ; "Edited 9-Jun-88 15:06 by cdl") (DECLARE (SPECVARS CCODE)) (PROG [(STREAM (TEXTPROP TEXTOBJ 'TALK] (if (OPENP STREAM) then (SELCHARQ CCODE ((BS ^W DEL UNDO REDO NEXT) (PRINTOUT STREAM .OP CCODE)) ((SHIFT.UNDO SHIFT.REDO SHIFT.NEXT) (PRINTOUT STREAM .OP (BITCLEAR CCODE (MASK.1'S 5 1)))) (^O (RETURN T)) (^A (RETURN)) ((SHIFT.DEL FONT SHIFT.FONT MARGINS SHIFT.MARGINS) (* Unimplemented function keys, pass  through) (PRINTCCODE CCODE STREAM)) (if (OR (LESSP CCODE (CHARCODE 2,0)) (GEQ CCODE (CHARCODE 3,0))) then (* Filter out function keys in the  2,0 range) (PRINTCCODE CCODE STREAM))) (if (NOT (READP)) then (FORCEOUTPUT STREAM))) (RETURN T]) ) (* TALK TEdit hooks) (DEFINEQ (TALK.TEDIT.USERFN [LAMBDA VAR (* cdl " 2-Mar-87 09:53") (LET [(USERFN (TEXTPROP (ARG VAR 2) (ARG VAR 1] (if USERFN then (APPLY USERFN (for M from 2 to VAR collect (ARG VAR M]) (TALK.TEDIT.INSERT [LAMBDA (TEXTSTREAM STRING.OR.CCODE STRINGSTREAM SCRATCHPTR) (* cdl "24-Mar-87 08:45") (if STRINGSTREAM then (LET ((FILEPTR (GETFILEPTR STRINGSTREAM))) (if (NOT (ZEROP FILEPTR)) then (TEDIT.INSERT TEXTSTREAM (SUBSTRING STRING.OR.CCODE 1 FILEPTR SCRATCHPTR)) (SETFILEPTR STRINGSTREAM 0))) else (TEDIT.INSERT TEXTSTREAM (MKSTRING (CHARACTER STRING.OR.CCODE]) (TALK.SELFN [LAMBDA (TEXTOBJ SELECTION SELECTMODE FINAL?) (* ; "Edited 9-Jun-88 15:06 by cdl") (DECLARE (SPECVARS SELECTION SELECTMODE)) (SELECTQ FINAL? (FINAL (SELECTQ SELECTMODE ((NORMAL PENDINGDEL DELETE) (PROG [(STREAM (TEXTPROP TEXTOBJ 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^S) |.P2| (LIST (TALK.ENCODE.SEL SELECTION) SELECTMODE) .FORCE)))) NIL)) NIL]) (TALK.SETSELFN [LAMBDA (TEXTSTREAM CH#ORSEL LEN POINT PENDINGDELFLG LEAVECARETLOOKS OPERATION) (* ; "Edited 9-Jun-88 15:09 by cdl") (DECLARE (SPECVARS CH#ORSEL LEN POINT OPERATION)) (PROG [(STREAM (TEXTPROP TEXTSTREAM 'TALK] (if (OPENP STREAM) then [if (NULL OPERATION) then (SETQ OPERATION (if PENDINGDELFLG then 'PENDINGDEL else 'NORMAL] (PRINTOUT STREAM .OP (CHARCODE ^S) |.P2| (LIST (TALK.ENCODE.SEL CH#ORSEL LEN POINT) OPERATION) .FORCE]) (TALK.IMAGEOBJFN [LAMBDA (TEXTSTREAM OBJECT CH#ORSEL) (* ; "Edited 9-Jun-88 15:10 by cdl") (DECLARE (SPECVARS TEXTSTREAM CH#ORSEL)) (PROG [(STREAM (TEXTPROP TEXTSTREAM 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^T)) (WRITEIMAGEOBJ OBJECT STREAM) (PRINTOUT STREAM |.P2| (with SELECTION (TEDIT.GETSEL TEXTSTREAM) (TALK.ENCODE.SEL CH#ORSEL DCH POINT)) .FORCE]) (TALK.LOOKSFN [LAMBDA (TEXTSTREAM NEWLOOKS CH#ORSEL LEN) (* ; "Edited 9-Jun-88 15:10 by cdl") (DECLARE (SPECVARS NEWLOOKS CH#ORSEL LEN)) (PROG [(STREAM (TEXTPROP TEXTSTREAM 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^U) |.P2| (LIST NEWLOOKS (TALK.ENCODE.SEL CH#ORSEL LEN)) .FORCE]) (TALK.PARAFN [LAMBDA (TEXTOBJ NEWLOOKS CH#ORSEL LEN) (* ; "Edited 9-Jun-88 15:10 by cdl") (DECLARE (SPECVARS NEWLOOKS CH#ORSEL LEN)) (PROG [(STREAM (TEXTPROP TEXTOBJ 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^V) |.P2| (LIST NEWLOOKS (TALK.ENCODE.SEL CH#ORSEL LEN)) .FORCE]) (TALK.INSERTFN [LAMBDA (TEXTSTREAM TEXT CH#ORSEL LOOKS DONTSCROLL) (* ; "Edited 9-Jun-88 15:11 by cdl") (DECLARE (SPECVARS TEXT CH#ORSEL LOOKS DONTSCROLL)) (PROG [(STREAM (TEXTPROP TEXTSTREAM 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^R) |.P2| (LIST TEXT (TALK.ENCODE.SEL CH#ORSEL) LOOKS DONTSCROLL) .FORCE]) (TALK.INCLUDEFN [LAMBDA (TEXTSTREAM FILE START END) (* ; "Edited 9-Jun-88 15:11 by cdl") (DECLARE (SPECVARS FILE START END)) (PROG [(STREAM (TEXTPROP TEXTSTREAM 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^O) |.P2| (LIST FILE START END) .FORCE]) (TALK.DELETEFN [LAMBDA (TEXTSTREAM CH#ORSEL LEN) (* ; "Edited 9-Jun-88 15:12 by cdl") (DECLARE (SPECVARS TEXTSTREAM CH#ORSEL LEN)) (PROG [(STREAM (TEXTPROP TEXTSTREAM 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^P) |.P2| (LIST (TALK.ENCODE.SEL (OR CH#ORSEL (TEDIT.GETSEL TEXTSTREAM)) LEN) LEN) .FORCE]) (TALK.GETFN [LAMBDA (TEXTSTREAM FULLFILENAME WHEN) (* ; "Edited 9-Jun-88 15:12 by cdl") (DECLARE (SPECVARS FULLFILENAME)) (SELECTQ WHEN (BEFORE (PROG [(STREAM (TEXTPROP TEXTSTREAM 'TALK] (if (OPENP STREAM) then (PRINTOUT STREAM .OP (CHARCODE ^Q) |.P2| (LIST FULLFILENAME) .FORCE)))) NIL]) ) (DEFINEQ (TALK.TEDIT.BACKSPACE [LAMBDA (TEXTSTREAM) (* cdl " 5-May-87 18:07") (with SELECTION (TEDIT.GETSEL TEXTSTREAM) (TEDIT.DELETE TEXTSTREAM (SUB1 (SELECTQ POINT (LEFT CH#) CHLIM)) 1]) (TALK.TEDIT.INCLUDE [LAMBDA (TEXTSTREAM STREAM) (* cdl "10-Mar-87 17:04") (* DECLARATIONS%: (RECORD DATA  (FILE START END))) (with DATA (READ STREAM) (TEDIT.INCLUDE TEXTSTREAM FILE START END]) (TALK.TEDIT.DELETE.TEXT [LAMBDA (TEXTSTREAM STREAM) (* cdl " 2-Mar-87 12:06") (* DECLARATIONS%: (RECORD DATA  (PLST LEN))) (with DATA (READ STREAM) (TEDIT.DELETE TEXTSTREAM (TALK.DECODE.SEL TEXTSTREAM PLST) LEN]) (TALK.TEDIT.GET [LAMBDA (TEXTOBJ STREAM) (* ; "Edited 3-Jun-88 09:54 by cdl") (* DECLARATIONS%: (RECORD DATA  (FULLFILENAME))) (with TEXTOBJ TEXTOBJ (SETQ \XDIRTY NIL)) (with DATA (READ STREAM) (TEDIT.GET TEXTOBJ FULLFILENAME]) (TALK.TEDIT.INSERT.TEXT [LAMBDA (TEXTSTREAM STREAM) (* cdl " 2-Mar-87 11:42") (* DECLARATIONS%: (RECORD DATA  (TEXT PLST LOOKS DONTSCROLL))) (with DATA (READ STREAM) (TEDIT.INSERT TEXTSTREAM TEXT (TALK.DECODE.SEL TEXTSTREAM PLST) LOOKS DONTSCROLL]) (TALK.TEDIT.SETSEL [LAMBDA (TEXTSTREAM STREAM) (* cdl " 1-Mar-87 10:33") (* DECLARATIONS%: (RECORD DATA  (PLST SELECTMODE))) (with DATA (READ STREAM) (TALK.DECODE.SEL TEXTSTREAM PLST SELECTMODE]) (TALK.TEDIT.INSERT.OBJECT [LAMBDA (TEXTSTREAM STREAM) (* cdl " 5-May-87 18:04") (LET (OBJECT) (if [SETQ OBJECT (RESETFORM (INPUT STREAM) (ERRORSET (READ] then (TEDIT.INSERT.OBJECT (CAR OBJECT) TEXTSTREAM (TALK.DECODE.SEL TEXTSTREAM (READ STREAM]) (TALK.TEDIT.LOOKS [LAMBDA (TEXTSTREAM STREAM) (* cdl " 1-Mar-87 12:19") (* DECLARATIONS%: (RECORD DATA  (NEWLOOKS PLST))) (with DATA (READ STREAM) (TEDIT.LOOKS TEXTSTREAM NEWLOOKS (TALK.DECODE.SEL TEXTSTREAM PLST]) (TALK.TEDIT.PARALOOKS [LAMBDA (TEXTSTREAM STREAM) (* cdl " 1-Mar-87 12:22") (* DECLARATIONS%: (RECORD DATA  (NEWLOOKS PLST))) (with DATA (READ STREAM) (TEDIT.PARALOOKS (TEXTOBJ TEXTSTREAM) NEWLOOKS (TALK.DECODE.SEL TEXTSTREAM PLST]) (TALK.TEDIT.DELETE [LAMBDA (TEXTSTREAM) (* cdl " 1-Mar-87 10:34") (TEDIT.DELETE TEXTSTREAM (TEDIT.GETSEL TEXTSTREAM]) ) (DEFINEQ (TALK.ENCODE.SEL [LAMBDA (CH#ORSEL LEN POINT) (* cdl "16-Mar-87 08:18") (* DECLARATIONS%: (PROPRECORD PLST  (CH# DCH POINT))) (if (type? SELECTION CH#ORSEL) then [for FIELD in [CONSTANT (LDIFFERENCE (RECORDFIELDNAMES 'SELECTION) '(X0 Y0 XLIM YLIM L1 LN DX \TEXTOBJ SELOBJINFO] join (LIST FIELD (RECORDACCESS FIELD CH#ORSEL (CONSTANT (RECLOOK 'SELECTION)) 'FETCH] else (create PLST CH# _ CH#ORSEL DCH _ (OR LEN 0) POINT _ (OR POINT 'LEFT]) (TALK.DECODE.SEL [LAMBDA (TEXTSTREAM PLST SELECTMODE) (* cdl "16-Mar-87 08:12") (* DECLARATIONS%: (PROPRECORD PLST  (CH# DCH POINT))) (with PLST PLST (TEDIT.SETSEL TEXTSTREAM (OR CH# (fetch (SELECTION CH#) of (TEDIT.GETSEL TEXTSTREAM))) DCH POINT (EQ 'PENDINGDEL SELECTMODE) NIL SELECTMODE]) ) (* TALK data) (RPAQQ TALK.TEDIT.ACTIONS ((8 TALK.TEDIT.BACKSPACE) (15 TALK.TEDIT.INCLUDE) (16 TALK.TEDIT.DELETE.TEXT) (17 TALK.TEDIT.GET TEXTOBJ) (18 TALK.TEDIT.INSERT.TEXT) (19 TALK.TEDIT.SETSEL) (20 TALK.TEDIT.INSERT.OBJECT) (21 TALK.TEDIT.LOOKS) (22 TALK.TEDIT.PARALOOKS) (23 \TEDIT.WORDDELETE TEXTOBJ) (127 TALK.TEDIT.DELETE) (516 TEDIT.UNDO TEXTOBJ) (520 TEDIT.REDO TEXTOBJ) (530 TEDIT.NEXT))) (RPAQQ TALK.FROM.TEDIT.PROPS (PROMPTWINDOW DON'T NOTITLE T COPYBYBKSYSBUF T MENU ((Put 'Put NIL (SUBITEMS Plain-Text Old-Format)) Find Quit))) (RPAQQ TALK.TO.TEDIT.PROPS (CHARFN TALK.TEDIT.CHARFN SELFN TALK.SELFN GETFN TALK.GETFN IMAGEOBJFN TALK.IMAGEOBJFN LOOKSFN TALK.LOOKSFN PARAFN TALK.PARAFN INSERTFN TALK.INSERTFN SETSELFN TALK.SETSELFN DELETEFN TALK.DELETEFN INCLUDEFN TALK.INCLUDEFN NOTITLE T QUITFN TRUE COPYBYBKSYSBUF T)) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS TALK.TEDIT.ACTIONS TALK.TO.TEDIT.PROPS TALK.FROM.TEDIT.PROPS) ) (* etc) (FILESLOAD TALK TEDIT) (APPENDTOVAR GAP.SERVICETYPES (6 TEdit TALK.NS.SERVER)) (APPENDTOVAR TALK.SERVICETYPES (TEdit TALK.TEDIT.DISPLAY TALK.TEDIT.LISTEN)) (ADDTOVAR TALK.TEDIT.ADVISEDFNS TEDIT.SETSEL TEDIT.INSERT TEDIT.DELETE TEDIT.INSERT.OBJECT TEDIT.LOOKS TEDIT.PARALOOKS OPENFILE-IN-TEDIT.INCLUDE) [XCL:REINSTALL-ADVICE 'TEDIT.SETSEL :BEFORE '((:LAST (TALK.TEDIT.USERFN 'SETSELFN STREAM CH# LEN POINT PENDINGDELFLG LEAVECARETLOOKS OPERATION] [XCL:REINSTALL-ADVICE 'TEDIT.INSERT :BEFORE '((:LAST (TALK.TEDIT.USERFN 'INSERTFN STREAM TEXT CH#ORSEL LOOKS DONTSCROLL] [XCL:REINSTALL-ADVICE 'TEDIT.DELETE :BEFORE '((:LAST (TALK.TEDIT.USERFN 'DELETEFN STREAM SEL LEN LEAVECARETLOOKS] [XCL:REINSTALL-ADVICE 'TEDIT.INSERT.OBJECT :BEFORE '((:LAST (TALK.TEDIT.USERFN 'IMAGEOBJFN STREAM OBJECT CH#] [XCL:REINSTALL-ADVICE 'TEDIT.LOOKS :BEFORE '((:LAST (TALK.TEDIT.USERFN 'LOOKSFN STREAM NEWLOOKS SELORCH# LEN] [XCL:REINSTALL-ADVICE 'TEDIT.PARALOOKS :BEFORE '((:LAST (TALK.TEDIT.USERFN 'PARAFN TEXTOBJ NEWLOOKS SEL LEN] [XCL:REINSTALL-ADVICE '(OPENFILE :IN TEDIT.INCLUDE) :BEFORE '((:LAST (TALK.TEDIT.USERFN 'INCLUDEFN STREAM FILE START END] (READVISE TEDIT.SETSEL TEDIT.INSERT TEDIT.DELETE TEDIT.INSERT.OBJECT TEDIT.LOOKS TEDIT.PARALOOKS (OPENFILE :IN TEDIT.INCLUDE)) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS TALK.TEDIT.ADVISEDFNS) ) (DECLARE%: DONTCOPY DOEVAL@COMPILE (ADDTOVAR CHARACTERNAMES (UNDO 2,4) (REDO 2,10) (NEXT 2,22) (MARGINS 2,111) (FONT 2,112) (SHIFT.UNDO 2,44) (SHIFT.REDO 2,50) (SHIFT.NEXT 2,62) (SHIFT.MARGINS 2,151) (SHIFT.FONT 2,152) (SHIFT.DEL 2,27)) (ADDTOVAR PRINTOUTMACROS [.OP (LAMBDA (COMS) (CONS `(PROGN (PRINTCCODE (CHARCODE BS) NIL) (PRINTCCODE ,(CADR COMS) NIL)) (CDDR COMS] [.FORCE (LAMBDA (COMS) (CONS '(FORCEOUTPUT NIL) (CDR COMS]) ) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA ) (ADDTOVAR NLAML ) (ADDTOVAR LAMA TALK.TEDIT.USERFN) ) (DECLARE%: DONTCOPY (FILEMAP (NIL (2190 8573 (TALK.TEDIT.DISPLAY 2200 . 2844) (TALK.TEDIT.LISTEN 2846 . 7122) ( TALK.TEDIT.CHARFN 7124 . 8571)) (8603 14772 (TALK.TEDIT.USERFN 8613 . 8921) (TALK.TEDIT.INSERT 8923 . 9559) (TALK.SELFN 9561 . 10339) (TALK.SETSELFN 10341 . 11199) (TALK.IMAGEOBJFN 11201 . 11779) ( TALK.LOOKSFN 11781 . 12246) (TALK.PARAFN 12248 . 12709) (TALK.INSERTFN 12711 . 13231) (TALK.INCLUDEFN 13233 . 13664) (TALK.DELETEFN 13666 . 14239) (TALK.GETFN 14241 . 14770)) (14773 18681 ( TALK.TEDIT.BACKSPACE 14783 . 15139) (TALK.TEDIT.INCLUDE 15141 . 15520) (TALK.TEDIT.DELETE.TEXT 15522 . 15943) (TALK.TEDIT.GET 15945 . 16371) (TALK.TEDIT.INSERT.TEXT 16373 . 16830) (TALK.TEDIT.SETSEL 16832 . 17218) (TALK.TEDIT.INSERT.OBJECT 17220 . 17640) (TALK.TEDIT.LOOKS 17642 . 18047) ( TALK.TEDIT.PARALOOKS 18049 . 18508) (TALK.TEDIT.DELETE 18510 . 18679)) (18682 20137 (TALK.ENCODE.SEL 18692 . 19545) (TALK.DECODE.SEL 19547 . 20135))))) STOP