(FILECREATED "12-Mar-85 05:51:26" ("compiled on " {IVY}TEDITSCREEN.;51) "28-Feb-85 21:47:35" recompiled changes: \TEDIT.COPY.LINEDESCRIPTOR \TEDIT.FIXCHANGEDLINE in "INTERLISP-D 28-Feb-85 ..." dated "28-Feb-85 22:00:41") (FILECREATED "12-Mar-85 05:49:32" {IVY}TEDITSCREEN.;51 127085 changes to: (FNS \TEDIT.COPY.LINEDESCRIPTOR \TEDIT.FIXCHANGEDLINE) previous date: " 6-Mar-85 23:30:45" {IVY}TEDITSCREEN.;50) TEDIT.CR.UPDATESCREEN D1 (P 1 PREVLINE P 0 WINDOW I 11Q DONTSCROLL I 10Q CHWIDTH I 7 DS I 6 CRSEEN I 5 BLANKSEEN I 4 LINE I 3 SEL I 2 TEXTOBJ I 1 XPOINT I 0 CH#)  BDI(j,ADIIIk(BkRBIi CB Chi G;DDhH Bh>HjDD h(221Q SCROLLW 160Q DSPCLIPPINGREGION 124Q \SHOWSEL 116Q \FIXSEL 111Q TEDIT.UPDATE.SCREEN) (213Q LINEDESCRIPTOR 203Q LINEDESCRIPTOR 171Q TEXTOBJ 151Q LINEDESCRIPTOR 144Q LINEDESCRIPTOR 134Q LINEDESCRIPTOR 76Q TEXTOBJ 65Q LINEDESCRIPTOR 53Q LINEDESCRIPTOR 45Q LINEDESCRIPTOR 36Q LINEDESCRIPTOR 22Q LINEDESCRIPTOR 11Q LINEDESCRIPTOR 3 TEXTOBJ) () TEDIT.DELETELINE D1 (P 1 NEXT P 0 PREV I 2 WINDOW I 1 TEXTOBJ I 0 LINE) 3@@HI AHIhB hHI(35Q \TEDIT.CLOSEUPLINES) (53Q LINEDESCRIPTOR 42Q LINEDESCRIPTOR 11Q LINEDESCRIPTOR 3 LINEDESCRIPTOR) () TEDIT.INSERT.DISPLAYTEXTA0001 D1 (NAME ERRORSET L (0 NIL) P 1 CHAR F 7 LINE F 10Q DS F 11Q CH F 12Q XPOINT F 13Q TEXTOBJ F 14Q RESETVARSLST F 15Q FONT F 16Q TERMSA F 17Q RESETY) b gd gW WcW.W WWaHkٻHKHغHCjh]Kk[JMLKLKYdl 0hjdWWWl$W ggj l$jW l 5hjdWWWIW lNNlW ggj W.I rh~Wdl 0hjdWWWl$W ggj l$jW Hl 7hjdWWWWW lHHlW ggj W.W ci(534Q \DSPPRINTCHAR 517Q BKBITBLT 460Q CHARWIDTH 424Q RELMOVETO 413Q BKBITBLT 331Q \DSPPRINTCHAR 313Q BKBITBLT 257Q CHARWIDTH 224Q RELMOVETO 213Q BKBITBLT 17Q SETTOPVAL 6 GETTOPVAL) (525Q TEXTOBJ 512Q REPLACE 507Q TEXTURE 502Q LINEDESCRIPTOR 447Q LINEDESCRIPTOR 406Q REPLACE 403Q TEXTURE 376Q LINEDESCRIPTOR 365Q LINEDESCRIPTOR 323Q TEXTOBJ 306Q REPLACE 303Q TEXTURE 276Q LINEDESCRIPTOR 247Q LINEDESCRIPTOR 206Q REPLACE 203Q TEXTURE 176Q LINEDESCRIPTOR 165Q LINEDESCRIPTOR 40Q STREAM 33Q TEXTOBJ 12Q \PRIMTERMSA 2 \PRIMTERMSA) () TEDIT.INSERT.DISPLAYTEXT D1 (P 12Q CHAR P 10Q RESETZ P 7 RESETY P 6 LISPXHIST P 3 FONT P 2 DY P 1 TERMSA P 0 LOOKS I 6 SEL I 5 DS I 4 XPOINT I 3 LINE I 2 CHWIDTH I 1 CH I 0 TEXTOBJ F 17Q LISPXHIST F 20Q RESETVARSLST) @4@@ @<BH[E HCY@CECCH CCHCCHHCm@CECCH CCHCCHCCCEDCEDBCCDC gg hjdEDCBC ggj DCHjE I*W!W og hg_ O9AAQOk_O_OO_OCjh_Ok_OOOOOO_dl /hjdEhE Cl$C ggj l$jE l 5hjdEhE COK lLLlC ggj xOE oqAdl /hjdEhE Cl$C ggj l$jE O0jEdgO2g'O4#EdgO2gO4 l DO0 (656Q \TEDIT.SET.WINDOW.EXTENT 645Q SCROLLW 631Q SHOULDNT 460Q DSPCLIPPINGREGION 335Q \TEDIT.SET.WINDOW.EXTENT 275Q \COPYSEL 153Q \COPYSEL 143Q \SHOWSEL 134Q \FIXSEL 126Q TEDIT.UPDATE.SCREEN 105Q \SYSBUFP) (634Q LINEDESCRIPTOR 621Q RIGHT 610Q LEFT 602Q SELECTION 567Q RIGHT 556Q LEFT 550Q SELECTION 535Q TEXTOBJ 521Q TEXTOBJ 513Q SELECTION 501Q TEXTOBJ 473Q SELECTION 446Q LINEDESCRIPTOR 437Q RIGHT 431Q LINEDESCRIPTOR 421Q LEFT 413Q SELECTION 400Q RIGHT 367Q LEFT 361Q SELECTION 346Q TEXTOBJ 272Q TEDIT.SELECTION 166Q SELECTION 160Q SELECTION 150Q TEDIT.SELECTION 121Q SELECTION 75Q CHAR 72Q SELECTION 63Q SELECTION 55Q LEFT 52Q SELECTION 42Q SELECTION 36Q SELECTION 25Q SELECTION 11Q TEXTOBJ 3 TEXTOBJ) () TEDIT.UPDATE.SCREEN D1 (P 4 LINE P 3 NLINE P 2 WW I 3 NEXTCARETCH# I 2 INCREMENTAL? I 1 STARTINGLINE I 0 TEXTOBJ) W@ bdA@2HHhHHIhIhII@LJBC [KK@hJ (122Q \FILLWINDOW 101Q \TEDIT.FIXCHANGEDPART 3 TEXTOBJ) (110Q LINEDESCRIPTOR 22Q TEXTOBJ 11Q TEXTOBJ) () \BACKFORMAT D1 (P 5 NLINE P 4 CH P 3 CHNO P 2 CH1 P 1 WHEIGHT P 0 LINE1 I 1 TEXTOBJ I 0 LINES) @A&bHAZddk@kA kJl_ONKA. \l Km԰Kkdkk[Jk4AhK ]IMIM@@MMbkذMHHHMM(150Q \FORMATLINE 107Q \BACKBIN 54Q \SETUPGETCH) (242Q LINEDESCRIPTOR 230Q LINEDESCRIPTOR 216Q LINEDESCRIPTOR 204Q LINEDESCRIPTOR 174Q LINEDESCRIPTOR 164Q LINEDESCRIPTOR 154Q LINEDESCRIPTOR 102Q TEXTOBJ 42Q LINEDESCRIPTOR 25Q TEXTOBJ 11Q TEXTOBJ 3 LINEDESCRIPTOR) () \DISPLAYLINE D1 (P 41Q DX P 40Q TX P 37Q LOOKNO P 36Q I P 32Q CURY P 31Q DDOFFSETCACHE P 30Q DDWIDTHCACHE P 27Q DDPILOTBBT P 26Q DISPLAYDATA P 25Q CLIPRIGHT P 24Q CLIPLEFT P 23Q XOFFSET P 22Q OLOOKS P 21Q OFONT P 20Q FONT P 17Q \PFILE P 16Q \PSTRING P 15Q \PCHARSLEFT P 14Q LOOKSTARTX P 13Q CACHE P 12Q DS P 11Q OLDCACHE P 10Q STREAM P 7 TERMSA P 6 THISLINE P 5 TEXTLEN P 4 WINDOWDS P 3 LOOKS P 2 WLIST P 1 CHLIST P 0 CH I 2 WINDOW I 1 LINE I 0 TEXTOBJ) "j@8@8@8BB @@@8@<@.@N@P0@NAA _dO$dO jdOOhO hjdOjdhdggj A_6jRO6O6 DAM8A@(&NA@hAA AAO AA@(L O(_,*_.O,_&O,"_(O,#_*K_$O _"O,_0O,_2A_O$jO$O NjkO&A!Ok_>npO,O@O&AOOO$A KO>O>_$O O,_0O,_2O>k_>O$jO$O O@O&_~Hdl wl sH$OOH bHOOBO@O,O.O0O2O* KO@O&hO _4O Hg _8HOg@.lO8O$O O@O&O4O O@OB_@OKIIKjA(jKjKHKkعKIwH@B('hjdLjB(B$@B(ggj Jd(jJMJjuJKhJBhKk _OXJHJH HJHHKkHZHZ- BhIk XJHJ_JHOOH@H bB(#H@H@HBHL @H bB Fg _LBlOg HK@H bB(H@H@HBHL AKHB(kHX3JKJ(jJhN(1165Q \DISPLAYLINE 1071Q RETFROM 1041Q LISTGET 1026Q TEXTOBJ 1003Q \DISPLAYLINE 647Q \FORMATLINE 633Q \FZEROP 501Q \FORMATLINE 377Q BKBITBLT 207Q RETFROM 163Q LISTGET 150Q TEXTOBJ) (1263Q LINEDESCRIPTOR 1251Q LINEDESCRIPTOR 1236Q LINEDESCRIPTOR 1224Q LINEDESCRIPTOR 1211Q TEXTOBJ 1205Q LINEDESCRIPTOR 1174Q LINEDESCRIPTOR 1151Q LINEDESCRIPTOR 1144Q LINEDESCRIPTOR 1134Q LINEDESCRIPTOR 1120Q TEXTOBJ 1107Q LINEDESCRIPTOR 1066Q \FILLWINDOW 1036Q OVERFLOWFN 1031Q TEXTOBJ 1014Q LINEDESCRIPTOR 767Q LINEDESCRIPTOR 762Q LINEDESCRIPTOR 752Q LINEDESCRIPTOR 740Q TEXTOBJ 727Q LINEDESCRIPTOR 716Q LINEDESCRIPTOR 702Q LINEDESCRIPTOR 667Q LINEDESCRIPTOR 663Q LINEDESCRIPTOR 653Q LINEDESCRIPTOR 622Q LINEDESCRIPTOR 612Q LINEDESCRIPTOR 574Q LINEDESCRIPTOR 562Q LINEDESCRIPTOR 554Q LINEDESCRIPTOR 550Q LINEDESCRIPTOR 536Q LINEDESCRIPTOR 530Q LINEDESCRIPTOR 524Q LINEDESCRIPTOR 514Q LINEDESCRIPTOR 471Q LINEDESCRIPTOR 454Q LINEDESCRIPTOR 440Q LINEDESCRIPTOR 426Q LINEDESCRIPTOR 411Q LINEDESCRIPTOR 372Q REPLACE 367Q TEXTURE 361Q TEXTOBJ 352Q TEXTOBJ 344Q TEXTOBJ 325Q TEXTOBJ 236Q LINEDESCRIPTOR 204Q \FILLWINDOW 160Q OVERFLOWFN 153Q TEXTOBJ 136Q LINEDESCRIPTOR 121Q LINEDESCRIPTOR 112Q LINEDESCRIPTOR 74Q LINEDESCRIPTOR 51Q TEXTOBJ 42Q TEXTOBJ 31Q TEXTOBJ 20Q TEXTOBJ 11Q LINEDESCRIPTOR 3 LINEDESCRIPTOR) () \FIXDLINES D1 (P 12Q CHARLIM P 11Q NL P 10Q PL P 7 CH#1L P 6 DCH P 5 NLINES P 1 WW I 4 TEXTOBJ I 3 CH#LIM I 2 CH#1 I 1 SEL I 0 LINES) DAHdHhHHIg bCBBk3 @! OADDBCN D DBCN DDBCN D"DBCN _O_BOXOB"BOOk(DkROd(jOOjOk(DkRCO5OONٺkJJkOONOONBOCOVOk(DkROOdBBkKKkCOOONCOټdLL7OO,O_O_.O MOOOk( O_OO(163Q \TEDIT.FIXDELSEL 144Q \TEDIT.FIXDELSEL 125Q \TEDIT.FIXDELSEL 106Q \TEDIT.FIXDELSEL 37Q GETWINDOWUSERPROP) (700Q LINEDESCRIPTOR 666Q LINEDESCRIPTOR 654Q LINEDESCRIPTOR 642Q LINEDESCRIPTOR 613Q LINEDESCRIPTOR 601Q LINEDESCRIPTOR 566Q LINEDESCRIPTOR 536Q LINEDESCRIPTOR 500Q LINEDESCRIPTOR 466Q TEXTOBJ 455Q LINEDESCRIPTOR 424Q LINEDESCRIPTOR 417Q LINEDESCRIPTOR 403Q LINEDESCRIPTOR 357Q LINEDESCRIPTOR 335Q TEXTOBJ 324Q LINEDESCRIPTOR 272Q LINEDESCRIPTOR 255Q TEXTOBJ 244Q LINEDESCRIPTOR 232Q LINEDESCRIPTOR 203Q LINEDESCRIPTOR 171Q LINEDESCRIPTOR 151Q TEXTOBJ 132Q TEXTOBJ 113Q TEXTOBJ 74Q TEXTOBJ 56Q LINEDESCRIPTOR 34Q LINES 3 TEXTOBJ) () \FIXILINES D1 (P 4 CHARLIM P 3 CHAR1 P 2 CHLIM P 1 CH# P 0 LINES I 4 OTEXTLEN I 3 DCH I 2 CH#1 I 1 SEL I 0 TEXTOBJ)  `BdkkbA@@# N_OhO_O$@@BC @ @BC A@BC hO_hO_O_jOOO]N^M[BMKCLBKjMdOKCMd%k(MMBMMdDd(jk(@kRM\BDL&Md(j𲄿MLCMdBrdCMf(132Q \TEDIT.FIXINSSEL 123Q \TEDIT.FIXINSSEL 107Q \TEDIT.FIXINSSEL) (340Q TEXTOBJ 212Q LINEDESCRIPTOR 113Q TEXTOBJ 77Q TEXTOBJ 30Q TEXTOBJ 17Q SELECTION) () \FORMATLINE D1 (P 50Q PCNO P 47Q PC P 46Q BOX P 45Q TABPENDING P 44Q INVISIBLERUNSB P 43Q DESCENTB P 42Q ASCENTB P 41Q LOOKS P 40Q WLIST P 37Q CHLIST P 36Q TEXTSTREAM P 35Q CLOOKS P 34Q TERMSA P 33Q FONTWIDTHS P 32Q FONT P 31Q LOOK#B P 30Q WIDTH P 27Q DXB P 26Q TXB1 P 25Q T1SPACE P 24Q FORCEEND P 23Q CH P 22Q TXB P 21Q DX P 20Q TX P 17Q DS P 16Q #BLANKS P 15Q PREVSP P 14Q DESCENT P 13Q ASCENT P 12Q INVISIBLERUNS P 11Q LOOKNO P 10Q CHNO P 7 THISLINE P 6 TEXTLEN P 5 TLEN P 4 GATHERBLANK P 3 CH#B P 2 LINE I 4 1STLN I 3 OLINE I 2 CH#1 I 1 FMTSPEC I 0 TEXTOBJ) ACP`@$HdI@(kHdIdj( dj(dhdhdodjdjBij@@8Bjddddd@ -9O_>O_@O_B@._<@<_8O<(gJNJj(JBJj(Jj(@BN)Nj"NN B@ O<2_:0jOk_O<_NOBOON__ROROROO>nO@jMkԽO>l_>O@k_@ON_NO<k_PONd ON@ _:ONQO:0jEOBOOON__TOTOTOON_Nd ON@ _:OPk_POOBOO_ONgjOP@ ONhh"JO: jkj(0O:gg _4OO4O:j_VdOVOV__DOO4O:j_XdOXOX__FO8O4 _6OBO:AO<@:bBkjPO<GO< 9O< &O<O<jO<O<jbJh JDkO4 jj(PDgAgQA IA"AAA_ZjOZ(OZ !A#A_\jO\O\ Jg J@*DAAl_^O^_ JA_`jO`O` Al؈@$l_0O0_,NOlM=OzOv_OtMOxO< _& O6O6O&O&g _bO&OO O0lOb_LOOLOL_ddOdOd_OOL_fdOfOf_O&gOL O<_NkpOk_OBOONk@O|O~O~OO>nO@jMkԽO>l_>O@k_@OONk_OOBOO_OL_"O&dl SLO _,hOO>OO@O"Mk_i_*O O"_ _$O"_.O_2O_DO_FO_HOk_l JJOi_(O>l O@O"dll_"LO _,hi_*Jk(O O"_ Jk(`O&l Jk(@@AOO>O@O l$lOJ _Jdd_ h_JOJ_ LO _,hOO@_"O>O&OO j_i_*O O"_ _$O"_.O_2O_DO_FO_HiO O"_ O0i_(O*&JKO$_ O._"OD_OF_O2_OH_1MjJOkdBBO O"_ JOO>O&O@O"MljNO@oi OJT@AOO>O@O l$lOJi _ h_JOO j_$O>O&O@O"O>l_>O@k_@MkԽOkԱNj N@ _N@4@4@@@@`_4_O4_AONON@:bONh ONbJDkj(PDJ@*Al_hOhJ@*Al_jOj_ JA_ljOlOl A@$l_0O0_,JOO_n On_pjOp,Op %J@@@@` JOJOJOO(Ok_MkٽJO JO(LO0O O0O, OJOBNmOJdNNOJ_rlOrOrl@JAOOOD JA(O<(hJ(4364Q \DOFORMATTING 4110Q \FZEROP 4020Q \FZEROP 3501Q \CHTOPC 3402Q \TEDIT.PURGE.SPACES 3357Q \TEDIT.FORMATTABS 3323Q TEDIT.PROMPTPRINT 3043Q \TEDIT.PURGE.SPACES 2744Q \TEDIT.FORMATTABS 2221Q IMAGEOBJPROP 2104Q IMAGEOBJPROP 1732Q \FZEROP 1616Q \FZEROP 1556Q \FZEROP 1451Q \TEDIT.GET.TERMSA.WIDTHS 1071Q FONTCOPY 1006Q \SETUPGETCH 725Q \TEDIT.APPLY.STYLES 613Q \TEDIT.APPLY.STYLES 400Q \SETUPGETCH 367Q \FZEROP 155Q \INSUREWINDOW) (4407Q TEXTIMAGEDATA 4402Q STREAM 4371Q LINEDESCRIPTOR 4320Q LINEDESCRIPTOR 4302Q LINEDESCRIPTOR 4172Q LINEDESCRIPTOR 4161Q LINEDESCRIPTOR 4150Q FONTDESCRIPTOR 4145Q DEFAULTFONT 4136Q CHARLOOKS 4131Q TEXTOBJ 4122Q TEXTOBJ 4116Q LINEDESCRIPTOR 4034Q TEXTOBJ 4025Q FMTSPEC 3776Q FMTSPEC 3772Q LINEDESCRIPTOR 3746Q FMTSPEC 3740Q TEXTOBJ 3734Q LINEDESCRIPTOR 3711Q FMTSPEC 3703Q TEXTOBJ 3677Q LINEDESCRIPTOR 3657Q LINEDESCRIPTOR 3646Q PIECE 3626Q TEXTOBJ 3616Q PIECE 3576Q FONTDESCRIPTOR 3564Q FONTDESCRIPTOR 3557Q DEFAULTFONT 3550Q CHARLOOKS 3543Q TEXTOBJ 3534Q TEXTOBJ 3524Q CHARLOOKS 3517Q TEXTOBJ 3510Q TEXTOBJ 3474Q TEXTOBJ 3373Q THISLINE 3034Q THISLINE 2713Q LINEDESCRIPTOR 2667Q LINEDESCRIPTOR 2404Q ARRAYP 2365Q PIECE 2300Q ARRAYP 2264Q PIECE 2236Q PIECE 2227Q STREAM 2214Q BOUNDBOX 2101Q IMAGEBOXFN 2061Q ARRAYP 2052Q ARRAYP 1751Q TEXTOBJ 1737Q FMTSPEC 1710Q FMTSPEC 1704Q LINEDESCRIPTOR 1660Q FMTSPEC 1651Q FMTSPEC 1641Q TEXTOBJ 1635Q LINEDESCRIPTOR 1626Q GREY 1623Q LINEDESCRIPTOR 1574Q FMTSPEC 1564Q FMTSPEC 1534Q FMTSPEC 1524Q FMTSPEC 1514Q FMTSPEC 1504Q FMTSPEC 1475Q PAGEHEADING 1470Q FMTSPEC 1440Q LINEDESCRIPTOR 1430Q LINEDESCRIPTOR 1414Q STREAM 1405Q STREAM 1371Q STREAM 1362Q STREAM 1351Q PIECE 1344Q PIECE 1337Q STREAM 1326Q PIECE 1321Q STREAM 1310Q STREAM 1267Q TEXTOBJ 1257Q PIECE 1252Q STREAM 1233Q ARRAYP 1221Q FONTDESCRIPTOR 1156Q CHARLOOKS 1147Q FONTDESCRIPTOR 1112Q CHARLOOKS 1103Q FONTDESCRIPTOR 1066Q DISPLAY 1063Q DEVICE 1056Q CHARLOOKS 1034Q CHARLOOKS 1027Q LINEDESCRIPTOR 775Q LASTPIECE 750Q ARRAYP 707Q PIECE 665Q ARRAYP 651Q PIECE 627Q CHARLOOKS 570Q STREAM 556Q PIECE 473Q ARRAYP 460Q PIECE 442Q STREAM 415Q CHARLOOKS 406Q STREAM 334Q LINEDESCRIPTOR 277Q \TEDIT.LOOKS.UPDATE 274Q TEXTIMAGEDATA 267Q STREAM 255Q TEXTOBJ 244Q TEXTOBJ 233Q THISLINE 221Q ARRAYP 214Q THISLINE 202Q ARRAYP 175Q THISLINE 147Q TEXTOBJ 127Q TEXTOBJ 32Q TEXTOBJ 12Q TEXTOBJ 5 LINEDESCRIPTORTYPE#) ( 3317Q "Line too long to format." 103Q 3641100Q) \PULLTEXT D1 (I 3 TEXTOBJ I 2 CH1 I 1 DX I 0 LINE) jAoA o(13Q ERROR) NIL ( 17Q (PROG ((OXLIM (fetch LXLIM of LINE)) (OCHLIM (fetch CHARLIM of LINE)) (OLEFTMAR (fetch LEFTMARGIN of LINE)) (OLHEIGHT (fetch LHEIGHT of LINE)) (OLASCENT (fetch ASCENT of LINE)) (OLDESCENT (fetch DESCENT of LINE)) (OSPACE (IPLUS (fetch SPACELEFT of LINE) DX)) NLINE NDX NL (DEL NIL) (DS (fetch DS of TEXTOBJ)) (OCH1 (fetch CHAR1 of LINE))) (replace DIRTY of LINE with NIL) (replace SPACELEFT of LINE with OSPACE) (* There's going to be more space on this line when we're done.) (replace CHAR1 of LINE with CH1) (BITBLT DS (IPLUS (fetch LEFTMARGIN of LINE) DX) (fetch YBOT of LINE) DS (fetch LEFTMARGIN of LINE) (fetch YBOT of LINE) (fetch RIGHTMARGIN of LINE) (fetch LHEIGHT of LINE) (QUOTE INPUT) (QUOTE REPLACE)) (* Move remaining text over) (SETQ OXLIM (IDIFFERENCE OXLIM DX)) (* And shorten the line accordingly) (BITBLT NIL 0 0 DS (IDIFFERENCE (fetch RIGHTMARGIN of LINE) OSPACE) (fetch YBOT of LINE) (fetch RIGHTMARGIN of LINE) (fetch LHEIGHT of LINE) (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE) (* Blank the newly-cleared section of the line's image) (COND ((IEQP OXLIM (fetch LEFTMARGIN of LINE)) (TEDIT.DELETELINE LINE TEXTOBJ) (* The call to \PULLTEXT emptied this line completely. Throw it away.) (SETQ DEL T)) (T (* Need to check for flow-in from the next line.) (\FORMATLINE TEXTOBJ NIL CH1 LINE) (\TEDIT.ADJUST.LINES TEXTOBJ LINE DS (IPLUS (fetch YBOT of LINE) (IMIN OLHEIGHT (fetch LHEIGHT of LINE))) (IDIFFERENCE OLASCENT (fetch ASCENT of LINE))) (* Allow for differences in ascent of the line) (\TEDIT.ADJUST.LINES TEXTOBJ NEXTLINE WINDOW (fetch YBOT of LINE) (IDIFFERENCE OLDESCENT (fetch DESCENT of LINE))) (COND ((NOT (ZEROP (SETQ NDX (IDIFFERENCE (IDIFFERENCE (fetch LXLIM of LINE) (fetch LEFTMARGIN of LINE)) (IDIFFERENCE OXLIM OLEFTMAR))))) (* The line length changed from what we'd expected. Some text got moved up from below.) (COND ((ILESSP NDX 0) (ERROR "Moving Text down after DEL." NDX)) (T (COND ((AND (SETQ NLINE (fetch NEXTLINE of LINE)) (IGEQ (fetch YBOT of NLINE) (fetch WBOTTOM of TEXTOBJ))) (COND ((OR (fetch LHASTABS of LINE) (fetch LHASTABS of NLINE)) (* There are TABS involved. punt out.) (\DISPLAYLINE TEXTOBJ LINE) (replace CHAR1 of NLINE with (ADD1 (fetch CHARLIM of LINE))) (replace DIRTY of NLINE with T) (TEDIT.UPDATE.SCREEN TEXTOBJ NLINE) (RETURN NIL)) ((IGEQ (IDIFFERENCE (fetch LXLIM of NLINE) (fetch LEFTMARGIN of NLINE)) NDX) (* There's enough on the next line to grab) (BITBLT DS (fetch LEFTMARGIN of NLINE) (fetch YBOT of NLINE) DS OXLIM (IPLUS (fetch YBOT of LINE) (IDIFFERENCE (fetch DESCENT of LINE) (fetch DESCENT of NLINE))) NDX (IMIN (fetch LHEIGHT of LINE) (fetch LHEIGHT of NLINE)) (QUOTE INPUT) (QUOTE PAINT)) (* Move the text up from the next line) (COND ((ILESSP (fetch CHARLIM of LINE) (fetch TEXTLEN of TEXTOBJ)) (* There are more characters to go on the next line.) (SETQ DEL (\PULLTEXT NLINE NDX (ADD1 (fetch CHARLIM of LINE)) TEXTOBJ))) (T (* This line is the last. Delete all the others) (SETQ DEL T) (replace NEXTLINE of LINE with NIL) (replace PREVLINE of NLINE with NIL) (BITBLT NIL 0 0 DS 0 (fetch WBOTTOM of TEXTOBJ) (fetch WRIGHT of TEXTOBJ) (IDIFFERENCE (SUB1 (fetch YBOT of LINE)) (fetch WBOTTOM of TEXTOBJ)) (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE)))) (T (* Not enough on next line;; grab it and loop) (ERROR "PULLING TEXT FROM TOO SHORT A LINE")))) (T (\DISPLAYLINE TEXTOBJ LINE) (replace NEXTLINE of LINE with NIL) (AND NLINE (replace PREVLINE of NLINE with NIL))))))))) (T (replace LXLIM of LINE with OXLIM))) (RETURN DEL)) 7 "MOVING TEXT DOWN AFTER A DELETE??!") \PUSHTEXT D1 (L (11Q PREVDESCENT 10Q SAVEWIDTH 7 IMAGECACHE 6 FORCEFORMAT 5 TEXTOBJ 4 CH 3 DX 2 Y 1 X 0 LINE))  oNIL NIL ( 3 (PROG ((NDX 0) (OXLIM (fetch LXLIM of LINE)) (OCHLIM (fetch CHARLIM of LINE)) (OSPACE (fetch SPACELEFT of LINE)) (OLHEIGHT (fetch LHEIGHT of LINE)) (OLASCENT (fetch ASCENT of LINE)) (OLDESCENT (fetch DESCENT of LINE)) (OTABS (fetch LHASTABS of LINE)) (DS (ffetch DS of TEXTOBJ)) (NEXTCACHE (fetch LCNEXTCACHE of IMAGECACHE)) NEXTLINE OCR\END NEWLINE NSAVEWIDTH OFLOWFN DY IMAGE) (replace CHAR1 of LINE with CH) (* Fix up this line to start just after old line ends) (SETQ OCR\END (fetch CR\END of LINE)) (\FORMATLINE TEXTOBJ NIL CH LINE) (\TEDIT.ADJUST.LINES TEXTOBJ LINE DS (IPLUS (fetch YBOT of LINE) (IMIN OLHEIGHT (fetch LHEIGHT of LINE))) (IDIFFERENCE OLASCENT (fetch ASCENT of LINE))) (\TEDIT.ADJUST.LINES TEXTOBJ NEXTLINE WINDOW (fetch YBOT of LINE) (IDIFFERENCE OLDESCENT (fetch DESCENT of LINE))) (COND ((OR (fetch LHASTABS of LINE) OTABS) (* Punt if this line has tabs in it.) (replace DIRTY of LINE with T) (TEDIT.UPDATE.SCREEN TEXTOBJ LINE) (RETURN))) (COND ((OR FORCEFORMAT (IGREATERP DX OSPACE)) (* May need to move some text to yet another line...) (SETQ NDX (IDIFFERENCE (IPLUS OXLIM DX) (fetch LXLIM of LINE))) (* NDX _ Amount of text to be moved to the next line) (COND ((IGREATERP NDX 0) (* There is excess on this line--move it to the next line) (COND (OCR\END (* This line ends in a CR -- just create a new line with the overflow on it) (SETQ NEWLINE (\FORMATLINE TEXTOBJ NIL (ADD1 (fetch CHARLIM of LINE)))) (replace YBOT of NEWLINE with (IDIFFERENCE (fetch YBOT of LINE) (fetch LHEIGHT of NEWLINE))) (replace YBASE of NEWLINE with (IPLUS (fetch YBOT of NEWLINE) (fetch DESCENT of NEWLINE))) (COND ((AND (SETQ OFLOWFN (TEXTPROP TEXTOBJ (QUOTE OVERFLOWFN))) (APPLY* OFLOWFN DS TEXTOBJ)) (RETURN NIL)) ((SETQ NEXTLINE (fetch NEXTLINE of LINE)) (* There's another line to push onto.) (OR (\TEDIT.ADJUST.LINES TEXTOBJ NEXTLINE DS (fetch YBOT of LINE) (IMINUS (fetch LHEIGHT of NEWLINE))) (RETURN NIL)) (* If pushing overflowed the window, punt here and now.) (BITBLT NIL 0 0 DS 0 (IDIFFERENCE (fetch YBOT of LINE) (fetch LHEIGHT of NEWLINE)) (fetch WRIGHT of TEXTOBJ) (fetch LHEIGHT of NEWLINE) (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE) (replace PREVLINE of NEXTLINE with NEWLINE))) (replace NEXTLINE of NEWLINE with NEXTLINE) (replace PREVLINE of NEWLINE with LINE) (replace NEXTLINE of LINE with NEWLINE) (\TEDIT.CHECK (fetch TCUP of (fetch CARET of TEXTOBJ)) "Caret visible during pushtext move down.") (BITBLT DS (IDIFFERENCE OXLIM NDX) (fetch YBOT of LINE) DS (fetch LEFTMARGIN of NEWLINE) (fetch YBOT of NEWLINE) NDX (fetch LHEIGHT of NEWLINE) (QUOTE INPUT) (QUOTE REPLACE)) (* Move the text onto the newly-built line) (SETQ NDX 0)) ((fetch NEXTLINE of LINE) (* There is text to be moved onto the next line; save its image for the move which happens later) (SETQ NSAVEWIDTH (IMIN NDX (IMAX 0 (IDIFFERENCE (fetch RIGHTMARGIN of LINE) (IDIFFERENCE OXLIM NDX))))) (\TEDIT.CHECK (fetch TCUP of (fetch CARET of TEXTOBJ))) (* THE CARET MUST BE INVISIBLE) (SETQ IMAGE (\TEDIT.LINECACHE NEXTCACHE NSAVEWIDTH (fetch LHEIGHT of LINE))) (BITBLT DS (IDIFFERENCE OXLIM NDX) (fetch YBOT of LINE) IMAGE 0 0 NDX (fetch LHEIGHT of LINE) (QUOTE INPUT) (QUOTE REPLACE)) (* Save the text that will be moved down later on)) (T (* No succeeding line, so create one.) (SETQ NEXTLINE (\FORMATLINE TEXTOBJ NIL (ADD1 (fetch CHARLIM of LINE)))) (COND ((IGEQ (fetch YBOT of LINE) (IPLUS (fetch LHEIGHT of NEXTLINE) (fetch WBOTTOM of TEXTOBJ))) (replace YBOT of NEXTLINE with (IDIFFERENCE (fetch YBOT of LINE) (fetch LHEIGHT of NEXTLINE))) (replace YBASE of NEXTLINE with (IPLUS (fetch YBOT of NEXTLINE) (fetch DESCENT of NEXTLINE))) (\DISPLAYLINE TEXTOBJ NEXTLINE NIL NEXTCACHE)) ((AND (SETQ OFLOWFN (TEXTPROP TEXTOBJ (QUOTE OVERFLOWFN))) (APPLY* OFLOWFN DS TEXTOBJ)) (* This line overflowed the window. If it gets handled by user handler, just punt out.) (RETURN NIL))) (replace NEXTLINE of LINE with NEXTLINE) (replace PREVLINE of NEXTLINE with LINE) (SETQ NDX 0)))))) (T (* There is enough room on this line, so not to worry about moving text down.) (replace SPACELEFT of LINE with (IDIFFERENCE (fetch SPACELEFT of LINE) DX)) (replace LXLIM of LINE with (IPLUS OXLIM DX)))) (COND ((IGEQ (fetch YBOT of LINE) (fetch WBOTTOM of TEXTOBJ)) (* This line is fully on-screen. Move it over to make room for text, then move the text in from above.) (BITBLT DS (fetch LEFTMARGIN of LINE) (fetch YBOT of LINE) DS (IPLUS (fetch LEFTMARGIN of LINE) DX) (fetch YBOT of LINE) OXLIM (fetch LHEIGHT of LINE) (QUOTE INPUT) (QUOTE REPLACE)) (* Move this line over to make room.) (BITBLT NIL 0 0 DS (fetch LEFTMARGIN of LINE) (fetch YBOT of LINE) DX (fetch LHEIGHT of LINE) (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE) (* Blank out the space just cleared.) (BITBLT (fetch LCBITMAP of IMAGECACHE) 0 0 DS (fetch LEFTMARGIN of LINE) (IPLUS (fetch YBOT of LINE) (IDIFFERENCE PREVDESCENT (fetch DESCENT of LINE))) SAVEWIDTH (fetch LHEIGHT of LINE) (QUOTE INPUT) (QUOTE PAINT)) (* Move the text in from above.) (BITBLT NIL 0 0 DS (fetch LXLIM of LINE) (fetch YBOT of LINE) (fetch WRIGHT of TEXTOBJ) (fetch LHEIGHT of LINE) (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE) (* Blank out the area beyond the end of this line) (* Cache the new image) (OR (ILEQ NDX 0) (\PUSHTEXT (fetch NEXTLINE of LINE) (IDIFFERENCE OXLIM NDX) (fetch YBOT of LINE) NDX (ADD1 (fetch CHARLIM of LINE)) TEXTOBJ OCR\END NEXTCACHE NSAVEWIDTH (fetch DESCENT of LINE))) (* Now propogate the change to the next line.))) (replace DIRTY of LINE with NIL) (RETURN T))) \SHOWTEXTA0001 D1 (NAME ERRORSET L (0 NIL) F 2 TEXTOBJ F 3 LINES F 4 WINDOW F 5 RESETVARSLST F 6 RESETY) g` hhUc `R&HdIdjdjdm R$kHdIdhdmdj R$HdIdk(djdjdjdj( dj(dhdjdjcTgS R&SRhT RT Sc i(270Q \TEDIT.SET.WINDOW.EXTENT 262Q \FILLWINDOW 243Q PUTWINDOWPROP 10Q CURSOR) (250Q TEXTOBJ 237Q LINES 134Q TEXTOBJ 72Q TEXTOBJ 32Q TEXTOBJ 25Q LINEDESCRIPTORTYPE# 5 WAITINGCURSOR 2 CURSOR) () \SHOWTEXT D1 (P 3 RESETZ P 2 RESETY P 1 LISPXHIST P 0 WREG I 2 WINDOW I 1 LINES I 0 TEXTOBJ F 4 LISPXHIST F 5 RESETVARSLST) g@_B@ b@*@(@$@*@&@( jgB T!Uog hg[ KJ(142Q ERROR! 135Q RESETRESTORE 123Q \SHOWTEXTA0001 104Q DSPFILL 74Q CREATEREGION 21Q \TEDIT.PRIMARYW) (131Q ERROR 120Q INTERNAL 100Q REPLACE 66Q TEXTOBJ 60Q TEXTOBJ 51Q TEXTOBJ 43Q TEXTOBJ 35Q TEXTOBJ 27Q TEXTOBJ 3 TEXTOBJ) ( 115Q (\SHOWTEXTA0001)) \TEDIT.ADJUST.LINES D1 (P 5 LL P 3 PREVLINE P 2 OYBOT P 1 OFLOWFN P 0 OFLOW I 4 DY I 3 LINETOP I 2 WINDOW I 1 FIRSTLINE I 0 TEXTOBJ) PDjvDC@(d \AMM@(MMJD\L@(=hjdBjJ@$M ggj @ Fg YiXB@lI0MMDMMMM[]gHhDjgBj@(BjD@(@$Cgg hjdBj@(@$Dggj KkK@([KK@hB KBj@(jDBj@(@$C@(gg hjdBjCD@$jDggj i(574Q BKBITBLT 537Q BKBITBLT 461Q \FILLWINDOW 417Q BKBITBLT 361Q BKBITBLT 210Q LISTGET 175Q TEXTOBJ 170Q BKBITBLT 36Q \FZEROP) (567Q REPLACE 564Q TEXTURE 554Q TEXTOBJ 533Q REPLACE 530Q INPUT 522Q TEXTOBJ 513Q TEXTOBJ 505Q TEXTOBJ 471Q TEXTOBJ 447Q LINEDESCRIPTOR 435Q TEXTOBJ 427Q LINEDESCRIPTOR 412Q REPLACE 407Q TEXTURE 401Q TEXTOBJ 373Q TEXTOBJ 355Q REPLACE 352Q INPUT 344Q TEXTOBJ 335Q TEXTOBJ 324Q TEXTOBJ 276Q LINEDESCRIPTOR 263Q LINEDESCRIPTOR 255Q LINEDESCRIPTOR 251Q LINEDESCRIPTOR 236Q LINEDESCRIPTOR 232Q LINEDESCRIPTOR 205Q OVERFLOWFN 200Q TEXTOBJ 163Q REPLACE 160Q TEXTURE 153Q LINEDESCRIPTOR 145Q TEXTOBJ 125Q TEXTOBJ 111Q LINEDESCRIPTOR 102Q LINEDESCRIPTOR 66Q TEXTOBJ 60Q LINEDESCRIPTOR 23Q TEXTOBJ) () \TEDIT.BLTCHAR D1 (L (10Q CLIPRIGHT 7 DDOFFSETCACHE 6 DDWIDTHCACHE 5 DDPILOTBBT 4 DISPLAYDATA 3 CURX 2 WIDTH 1 DISPLAYSTREAM 0 CHARCODE) P 4 \INTERRUPTABLE) H @CBXjCCjYGdHHZdI+EIEF@JIٻdKKEG@EjvhNIL NIL () \TEDIT.CLEAR.SCREEN.BELOW.LINE D1 (I 2 LINE I 1 WINDOW I 0 TEXTOBJ) +hjdAj@(@$B@(ggj (50Q BKBITBLT) (43Q REPLACE 40Q TEXTURE 32Q TEXTOBJ 24Q LINEDESCRIPTOR 16Q TEXTOBJ 10Q TEXTOBJ) () \TEDIT.CLOSEUPLINES D1 (P 4 NYBOT P 3 LINE P 2 DY P 1 LOWESTY P 0 WWIDTH I 4 WINDOW I 3 DONTFILLFLG I 2 NEXTLINE I 1 PREVLINE I 0 TEXTOBJ) kA@b@$@*A)@&kBIBB ZjhD@*@(D@*J@(HB@(B gg BIKL@(LK \@(LK@(_CKLKLK@KD KPK@@K@hKk KKKLKKKK[KhjdD@*@(HI@(ggj i(547Q BKBITBLT 413Q \FORMATLINE 341Q \DISPLAYLINE 203Q BKBITBLT) (542Q REPLACE 537Q TEXTURE 531Q TEXTOBJ 521Q TEXTOBJ 513Q TEXTOBJ 474Q LINEDESCRIPTOR 462Q LINEDESCRIPTOR 454Q LINEDESCRIPTOR 450Q LINEDESCRIPTOR 440Q LINEDESCRIPTOR 427Q LINEDESCRIPTOR 422Q LINEDESCRIPTOR 404Q LINEDESCRIPTOR 376Q LINEDESCRIPTOR 364Q TEXTOBJ 356Q LINEDESCRIPTOR 346Q LINEDESCRIPTOR 325Q LINEDESCRIPTOR 320Q LINEDESCRIPTOR 310Q LINEDESCRIPTOR 271Q TEXTOBJ 263Q LINEDESCRIPTOR 250Q TEXTOBJ 240Q LINEDESCRIPTOR 223Q TEXTOBJ 177Q REPLACE 174Q INPUT 166Q LINEDESCRIPTOR 157Q TEXTOBJ 151Q LINEDESCRIPTOR 141Q TEXTOBJ 132Q TEXTOBJ 123Q TEXTOBJ 115Q TEXTOBJ 104Q LINEDESCRIPTOR 67Q LINEDESCRIPTOR 61Q LINEDESCRIPTOR 36Q TEXTOBJ 24Q TEXTOBJ 16Q TEXTOBJ 6 TEXTOBJ) () \TEDIT.COPY.LINEDESCRIPTOR D1 (L (1 TOLINE 0 FROMLINE)) A@A@A@A@  A@  A@A@A@Aj(jdhA@(jkjHI(IjhA@&&A@(0jkjHI(0IjhA@((A@A@A@A@A@(@jkjHI(@IjhA@  A@(PjkjHI(PIjhA@(`jkjHI(`IjhNIL NIL () \TEDIT.CREATE.LINECACHE D1 (P 1 I I 0 #CACHES) N@kBIH'`ldl dMK Lh[IkYL&JJd[KJJ(24Q BITMAPCREATE) (74Q LINECACHE 14Q LINECACHETYPE#) () \TEDIT.FIXCHANGEDLINE D1 (P 12Q NEWLINE P 11Q OFLOWFN P 10Q DY P 7 FOUND P 6 PREVLINE P 5 OLHEIGHT P 4 OCHLIM P 3 WASDIRTY P 2 LIMITCHANGED P 1 FORMATDONE P 0 YBOT I 10Q NEXTCARETCH# I 7 CHARLIM I 6 WHEIGHT I 5 THISLINE I 4 TEXTLEN I 3 WINDOW I 2 LINES I 1 PREVYBOT I 0 TEXTOBJ)  A GkjBbB(jGBjVBB @hG _B EBB_kbBFOBHO X@(JBOD@OCOjO OHOHO@OGH@(C@BCHB jMMB BHBHB@BC OOb@ Fg _C@lOg BB@(k_OBGBh@CB hB(575Q \TEDIT.CLEAR.SCREEN.BELOW.LINE 505Q RETFROM 463Q LISTGET 450Q TEXTOBJ 434Q \DISPLAYLINE 376Q \TEDIT.ADJUST.LINES 263Q \TEDIT.ADJUST.LINES 107Q \TEDIT.COPY.LINEDESCRIPTOR 101Q \FORMATLINE) (570Q LINEDESCRIPTOR 556Q LINEDESCRIPTOR 544Q LINEDESCRIPTOR 522Q TEXTOBJ 516Q LINEDESCRIPTOR 512Q LINEDESCRIPTOR 502Q \TEDIT.FIXCHANGEDLINE 460Q OVERFLOWFN 453Q TEXTOBJ 420Q LINEDESCRIPTOR 413Q LINEDESCRIPTOR 403Q LINEDESCRIPTOR 367Q LINEDESCRIPTOR 353Q LINEDESCRIPTOR 343Q LINEDESCRIPTOR 330Q TEXTOBJ 310Q LINEDESCRIPTOR 302Q LINEDESCRIPTOR 271Q LINEDESCRIPTOR 254Q LINEDESCRIPTOR 244Q LINEDESCRIPTOR 237Q LINEDESCRIPTOR 227Q LINEDESCRIPTOR 205Q TEXTOBJ 175Q LINEDESCRIPTOR 160Q LINEDESCRIPTOR 154Q LINEDESCRIPTOR 141Q LINEDESCRIPTOR 126Q LINEDESCRIPTOR 114Q THISLINE 67Q LINEDESCRIPTOR 60Q LINEDESCRIPTOR 43Q LINEDESCRIPTOR 27Q LINEDESCRIPTOR 16Q LINEDESCRIPTOR) () \TEDIT.FIXCHANGEDPART D1 (P 22Q NEWLINE P 21Q OFLOWFN P 20Q DY P 17Q TPREVLINE P 16Q PREVLINE P 15Q OLHEIGHT P 14Q OCHLIM P 13Q CHARLIM P 12Q WASDIRTY P 11Q LIMITCHANGED P 10Q FORMATDONE P 7 NEXTCARETCH# P 6 CLEARBOTTOM P 5 WBOTTOM P 4 WHEIGHT P 3 THISLINE P 2 TEXTLEN P 1 YBOT P 0 LINES I 4 NEXTCARETCH# I 3 INCREMENTAL? I 2 WINDOW I 1 STARTINGLINE I 0 TEXTOBJ) TB@ g @&@@8@&@(iD @Hd_HHOH I_ j@HB@ IH O I@(HOOhhXH(j)HOkj0O_&j#O&H*jHHX H_XOHThjdBj@(hB I@(ggj JjJJ B@ g @hH_YOk_HI@(OOIH H_ j@HB@ HH O OH_(kO(O(kdJJH@B %@IHBJKLOO 8Hk_HYJO"Hh@jRH_XO^CHOOh_^N@BO O(1117Q \TEDIT.CLEAR.SCREEN.BELOW.LINE 1077Q \SYSBUFP 757Q \TEDIT.FIXCHANGEDLINE 736Q TEDIT.DELETELINE 673Q \TEDIT.ADJUST.LINES 650Q \TEDIT.PRIMARYW 512Q GETWINDOWUSERPROP 504Q \TEDIT.PRIMARYW 473Q \FZEROP 455Q BKBITBLT 427Q DSPCLIPPINGREGION 366Q \FZEROP 210Q \TEDIT.ADJUST.LINES 172Q \TEDIT.PRIMARYW 14Q GETWINDOWUSERPROP 6 \TEDIT.PRIMARYW) (1061Q LINEDESCRIPTOR 1041Q LINEDESCRIPTOR 1026Q TEXTOBJ 1016Q LINEDESCRIPTOR 1000Q LINEDESCRIPTOR 765Q LINEDESCRIPTOR 702Q LINEDESCRIPTOR 662Q LINEDESCRIPTOR 654Q LINEDESCRIPTOR 626Q LINEDESCRIPTOR 617Q LINEDESCRIPTOR 574Q TEXTOBJ 554Q LINEDESCRIPTOR 544Q LINEDESCRIPTOR 535Q LINEDESCRIPTOR 524Q TEXTOBJ 515Q LINEDESCRIPTOR 507Q LINES 450Q REPLACE 445Q TEXTURE 437Q TEXTOBJ 420Q TEXTOBJ 376Q LINEDESCRIPTOR 356Q LINEDESCRIPTOR 345Q LINEDESCRIPTOR 317Q LINEDESCRIPTOR 301Q LINEDESCRIPTOR 272Q LINEDESCRIPTOR 257Q LINEDESCRIPTOR 243Q LINEDESCRIPTOR 230Q LINEDESCRIPTOR 216Q TEXTOBJ 177Q LINEDESCRIPTOR 146Q LINEDESCRIPTOR 140Q LINEDESCRIPTOR 130Q LINEDESCRIPTOR 112Q LINEDESCRIPTOR 74Q SELECTION 67Q TEXTOBJ 55Q TEXTOBJ 47Q TEXTOBJ 41Q TEXTOBJ 33Q TEXTOBJ 25Q TEXTOBJ 17Q LINEDESCRIPTOR 11Q LINES) () \TEDIT.INSERTLINE D1 (L (1 BEFORELINE 0 NEWLINE)) *A@H@AA@Hd@hNIL (43Q LINEDESCRIPTOR 32Q LINEDESCRIPTOR 23Q LINEDESCRIPTOR 14Q LINEDESCRIPTOR 3 LINEDESCRIPTOR) () \TEDIT.LINE.LIST D1 (L (1 WINDOW 0 TEXTOBJ)) 8@@"HHhHHIhIhIIJAKNIL (11Q TEXTOBJ 3 TEXTOBJ) () \TEDIT.LINECACHE D1 (P 2 CH P 1 CW P 0 BITMAP I 2 HEIGHT I 1 WIDTH I 0 CACHE) <@1HYHZAIBJH@IdAAJdBB [K(65Q BITMAPCREATE) (44Q LINECACHE 23Q BITMAP 14Q BITMAP 3 LINECACHE) () \TEDIT.MARK.LINES.DIRTY D1 (P 5 WW P 3 CHLIM# P 2 CH# I 2 CHLIM I 1 CH1 I 0 TEXTOBJ) yA@HdIIBdmj@k@#L @kRhLhLLMg ^KNdJNk(N(113Q GETWINDOWUSERPROP) (163Q LINEDESCRIPTOR 152Q LINEDESCRIPTOR 137Q LINEDESCRIPTOR 123Q LINEDESCRIPTOR 110Q LINES 62Q TEXTOBJ 46Q TEXTOBJ 36Q TEXTOBJ 4 TEXTOBJ) () \TEDIT.PURGE.SPACES D1 (L (1 PREVSP 0 CHLIST)) .Adjhkٸ@HHb@HHl NIL (37Q ARRAYP 20Q ARRAYP) () (PRETTYCOMPRINT TEDITSCREENCOMS) (RPAQQ TEDITSCREENCOMS ((RECORDS THISLINE LINEDESCRIPTOR LINECACHE) (CONSTANTS (LMInvisibleRun 401) ( LMLooksChange 400)) (FILES TEXTOFD TEDITLOOKS IMAGEOBJ) (FNS TEDIT.CR.UPDATESCREEN TEDIT.DELETELINE TEDIT.INSERT.DISPLAYTEXT TEDIT.INSERT.UPDATESCREEN TEDIT.UPDATE.SCREEN \BACKFORMAT \DISPLAYLINE \DOFORMATTING \FILLWINDOW \FIXDLINES \FIXILINES \FORMATLINE \PULLTEXT \PUSHTEXT \SHOWTEXT \TEDIT.ADJUST.LINES \TEDIT.BLTCHAR \TEDIT.CLEAR.SCREEN.BELOW.LINE \TEDIT.CLOSEUPLINES \TEDIT.COPY.LINEDESCRIPTOR \TEDIT.CREATE.LINECACHE \TEDIT.FIXCHANGEDLINE \TEDIT.FIXCHANGEDPART \TEDIT.INSERTLINE \TEDIT.LINE.LIST \TEDIT.LINECACHE \TEDIT.MARK.LINES.DIRTY \TEDIT.PURGE.SPACES))) (DATATYPE THISLINE ((* Cache for line-related character location info, for selection code to use) ( DESC FULLXPOINTER) (* Line descriptor for the line this describes now) LEN (* Length of the line in characters) CHARS (* Array of character codes (or objects) on the line (charcode of 400 => dummy entry for looks change--go get next entry in LOOKS)) WIDTHS (* Array of each character's width in points) LOOKS (* Array of any looks changes within the line. LOOKS (0) = starting character looks for the line )) LEN _ 0 CHARS _ (ARRAY 256 (QUOTE POINTER) 0 0) WIDTHS _ (ARRAY 256 (QUOTE SMALLP) 0 0) LOOKS _ ( ARRAY 256 (QUOTE POINTER) NIL 0)) (DATATYPE LINEDESCRIPTOR (YBOT (* Y value for the bottom of the line (below the descent)) YBASE (* Yvalue for the base line the characters sit on) LEFTMARGIN (* Left margin, in screen points) RIGHTMARGIN (* Right margin, in screen points) LXLIM (* X value of right edge of rightmost character on the line (may exceed right margin, if char is a space.)) SPACELEFT (* Space left on the line, ignoring trailing blanks & CRs.) LHEIGHT (* Total height of hte line, Ascent+Descent.) ASCENT (* Ascent of the line above YBASE) DESCENT (* How far line descends below YBASE) LTRUEDESCENT (* The TRUE DESCENT for this line, unadjusted for line leading.) LTRUEASCENT (* The TRUE ASCENT for this line, unadjusted for pre-paragraph leading.) CHAR1 (* CH# of the first character on the line.) CHARLIM (* CH# of the last character on the line) CHARTOP (* CH# of the character which forced the line break ( may exceed CHARLIM)) NEXTLINE (* Next line chain pointer) (PREVLINE FULLXPOINTER) (* Previous line chain pointer) LMARK (* One of SOLID, GREY, NIL. Tells what kind of special-line marker should be put in the left margin for this paragraph. (For hardcopy, can also be an indicator for special processing? )) LTEXTOBJ (* A cached TEXTOBJ that this line took its text from. Used in hardcopy to disambiguate when chno's should be updated...) CACHE (* A cached THISLINE, for keeping hardcopy info around while we crunch with the line descriptors to make things fit.) LDOBJ (* The object which lies behind this line of text, for updating, etc.) LFMTSPEC (* The format spec for this line's paragraph (eventually)) (DIRTY FLAG) (* T if this line has changed since it was last formatted.) (CR\END FLAG) (* T if this line ends with a CR.) (DELETED FLAG) (* T if this line has been completely deleted since it was last formatted or displayed. (Used by deletion routines to detect garbage lines)) (LHASPROT FLAG) (* This line contains protected text.) (LHASTABS FLAG) (* If this line has a tab in it, this is the line-relative ch# of the final tab. This is to let us punt properly with tabs in a line.) (1STLN FLAG) (* This line is the first line in a paragraph) (LSTLN FLAG) (* This is the last line in a paragraph)) CHARLIM _ 1000000 NEXTLINE _ NIL PREVLINE _ NIL DIRTY _ NIL YBOT _ 0 YBASE _ 0 LEFTMARGIN _ 0 DELETED _ NIL) (DATATYPE LINECACHE (LCBITMAP (* The bitmap that will be used by this instance of the cache) ( LCNEXTCACHE FULLXPOINTER) (* The next cache in the chain, for screen updates.))) (/DECLAREDATATYPE (QUOTE THISLINE) (QUOTE (FULLXPOINTER POINTER POINTER POINTER POINTER))) (/DECLAREDATATYPE (QUOTE LINEDESCRIPTOR) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER FULLXPOINTER POINTER POINTER POINTER POINTER POINTER FLAG FLAG FLAG FLAG FLAG FLAG FLAG))) (/DECLAREDATATYPE (QUOTE LINECACHE) (QUOTE (POINTER FULLXPOINTER))) (RPAQQ LMInvisibleRun 401) (RPAQQ LMLooksChange 400) (CONSTANTS (LMInvisibleRun 401) (LMLooksChange 400)) (FILESLOAD TEXTOFD TEDITLOOKS IMAGEOBJ) (PUTPROPS TEDITSCREEN COPYRIGHT ("John Sybalsky & Xerox Corporation" 1983 1984 1985)) NIL