From 428aac56ea2047c9d530d6b9fc2049d350da29f4 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Fri, 14 Nov 2025 10:09:46 -0800 Subject: [PATCH] TEDIT.INSERT ends with a point selection (#2371) --- library/tedit/TEDIT | 97 +++++++++++++++++++-------------------- library/tedit/TEDIT.LCOM | Bin 33194 -> 33274 bytes 2 files changed, 46 insertions(+), 51 deletions(-) diff --git a/library/tedit/TEDIT b/library/tedit/TEDIT index 95cb160a..39cb40cc 100644 --- a/library/tedit/TEDIT +++ b/library/tedit/TEDIT @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 8-Sep-2025 22:10:20" {WMEDLEY}TEDIT>TEDIT.;838 145349 +(FILECREATED "13-Nov-2025 21:00:34" {WMEDLEY}TEDIT>TEDIT.;844 144838 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.NTHCHARCODE) + :CHANGES-TO (FNS TEDIT.INSERT \TEDIT.INSERT) - :PREVIOUS-DATE " 6-Sep-2025 09:54:48" {WMEDLEY}TEDIT>TEDIT.;837) + :PREVIOUS-DATE "28-Oct-2025 00:29:56" {WMEDLEY}TEDIT>TEDIT.;843) (PRETTYCOMPRINT TEDITCOMS) @@ -75,9 +75,9 @@ (FNS TEDITSYSTEMDATE) (VARS (TEDITSYSTEMDATE (TEDITSYSTEMDATE] (COMS (* ; - "LISTFILES Interface, so the system can decide if a file is a TEdit file.") - (ADDVARS (PRINTFILETYPES (TEDIT (TEST \TEDIT.GET.TRAILER) - (EXTENSION (TEDIT]) + "IMAGETYPE Interface, so the system can decide if a file is a TEdit file.") + (ADDVARS (PRINTFILETYPES (TEDIT (TEST TEDIT.FORMATTEDFILEP) + (EXTENSION (TEDIT TED]) (FILESLOAD (SYSLOAD) POSTSCRIPTSTREAM PDFSTREAM WHEELSCROLL) @@ -441,6 +441,8 @@ (TEDIT-SEE [LAMBDA (FILE WINDOW FORMAT TITLE) + (* ;; "Edited 27-Oct-2025 21:25 by rmk") + (* ;;  "Edited 13-Sep-2023 09:04 by rmk: Old code replaced to take advantage of new standard interfaces.") @@ -452,7 +454,8 @@ (* ;; "Edited 1-Feb-88 19:00 by bvm:") - (TEXTSTREAM (TEDIT FILE WINDOW NIL `(READONLY T LEAVETTY T FONT ,DEFAULTFONT]) + (TEXTSTREAM (TEDIT FILE WINDOW NIL `(READONLY T LEAVETTY T FONT ,DEFAULTFONT TITLE ,TITLE FORMAT + ,FORMAT]) (TEDIT.COPY [LAMBDA (FROM TO) (* ; "Edited 2-Dec-2024 09:02 by rmk") @@ -506,7 +509,8 @@ (\TEDIT.DELETE TSTREAM SEL]) (TEDIT.INSERT - [LAMBDA (TSTREAM TEXT CH#ORSEL LOOKS DONTSCROLL) (* ; "Edited 4-Apr-2025 11:22 by rmk") + [LAMBDA (TSTREAM TEXT CH#ORSEL LOOKS DONTSCROLL) (* ; "Edited 13-Nov-2025 20:58 by rmk") + (* ; "Edited 4-Apr-2025 11:22 by rmk") (* ; "Edited 2-Aug-2024 22:17 by rmk") (* ; "Edited 31-Jul-2024 12:13 by rmk") (* ; "Edited 23-Jul-2024 16:35 by rmk") @@ -531,7 +535,7 @@ (* ;; "Nothing to do for an empty string") - (LET ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM))) + (LET ((TEXTOBJ (FTEXTOBJ TSTREAM))) (if (FIXP CH#ORSEL) then (TEDIT.SETSEL TEXTOBJ CH#ORSEL 1 'LEFT) (* ; "He gave us a ch# to insert before") @@ -540,14 +544,8 @@ then (SETQ CH#ORSEL (TEXTSEL TEXTOBJ))) (SELECTION! CH#ORSEL) (if (FGETSEL CH#ORSEL SET) - then (\TEDIT.INSERT TEXT CH#ORSEL TSTREAM DONTSCROLL) - (CL:WHEN LOOKS - - (* ;; "TEXTSEL now selects the insertion, apply the looks, but don't keep the looks-change as a separate event. We want it to behave as if the looks had been applied to the TEXT before the insertion (e.g. converting first to SELPIECES).") - - (LET ((HISTORY (FGETTOBJ TEXTOBJ TXTHISTORY))) - (\TEDIT.CHANGE.CHARLOOKS TSTREAM LOOKS) - (FSETTOBJ TEXTOBJ TXTHISTORY HISTORY))) + then (CL:WHEN LOOKS (TEDIT.CARETLOOKS TSTREAM LOOKS)) + (\TEDIT.INSERT TEXT CH#ORSEL TSTREAM DONTSCROLL) else (TEDIT.PROMPTPRINT TEXTOBJ "Please select a place for the insertion." T)))) ]) @@ -1240,7 +1238,8 @@ (T TSTREAM)))]) (\TEDIT.INSERT - [LAMBDA (INSERT SEL TSTREAM DONTSCROLL TYPEIN) (* ; "Edited 7-May-2025 00:11 by rmk") + [LAMBDA (INSERT SEL TSTREAM DONTSCROLL TYPEIN) (* ; "Edited 13-Nov-2025 20:57 by rmk") + (* ; "Edited 7-May-2025 00:11 by rmk") (* ; "Edited 21-Apr-2025 20:16 by rmk") (* ; "Edited 20-Apr-2025 13:26 by rmk") (* ; "Edited 6-Apr-2025 14:12 by rmk") @@ -1311,14 +1310,10 @@ (* ;; "Set the caret so that the next insertion should also come in front of that (now displaced) character, and then update the screen.") - (* ;; "If typein, the new selection is a point selection, if from a function e.g. TEDIT.INSERT, the insertion is selected/underlined. TEDIT.INSERT can then apply the looks, if specified.") - - (if TYPEIN - then (\TEDIT.UPDATE.SEL SEL (SUB1 (IPLUS CARETCHNO NCHARSADDED)) - 0 - 'RIGHT - 'NORMAL) - else (\TEDIT.UPDATE.SEL SEL CARETCHNO NCHARSADDED 'RIGHT 'NORMAL)) + (\TEDIT.UPDATE.SEL SEL (SUB1 (IPLUS CARETCHNO NCHARSADDED)) + 0 + 'RIGHT + 'NORMAL) (CL:UNLESS DONTSCROLL (* ;; "All the panes must be updated. SELPANE mayalso need to be scrolled to make the caret visible for the next input.") @@ -2320,32 +2315,32 @@ -(* ; "LISTFILES Interface, so the system can decide if a file is a TEdit file.") +(* ; "IMAGETYPE Interface, so the system can decide if a file is a TEdit file.") -(ADDTOVAR PRINTFILETYPES (TEDIT (TEST \TEDIT.GET.TRAILER) - (EXTENSION (TEDIT)))) +(ADDTOVAR PRINTFILETYPES (TEDIT (TEST TEDIT.FORMATTEDFILEP) + (EXTENSION (TEDIT TED)))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4823 7217 (MAKE-TEDIT-EXPORTS.ALL 4833 . 5379) (UPDATE-TEDIT 5381 . 6310) (EDIT-TEDIT -6312 . 7215)) (8647 36705 (TEDIT 8657 . 11271) (TEXTSTREAM 11273 . 13162) (TEXTSTREAMP 13164 . 13548) -(COERCETEXTSTREAM 13550 . 17761) (TEDIT.CONCAT 17763 . 21065) (TEDITSTRING 21067 . 21981) (TEDIT-SEE -21983 . 22542) (TEDIT.COPY 22544 . 24689) (TEDIT.DELETE 24691 . 26052) (TEDIT.INSERT 26054 . 29428) ( -TEDIT.TERPRI 29430 . 30544) (TEDIT.KILL 30546 . 31528) (TEDIT.QUIT 31530 . 32896) (TEDIT.MOVE 32898 . -33786) (TEDIT.STRINGWIDTH 33788 . 34459) (TEDIT.CHARWIDTH 34461 . 36703)) (36706 38647 (TEXTOBJ 36716 - . 37181) (COERCETEXTOBJ 37183 . 38645)) (40047 41697 (TDRIBBLE 40057 . 41695)) (41738 53634 ( -TEDIT.INSERT.OBJECT 41748 . 45455) (TEDIT.EDIT.OBJECT 45457 . 48397) (TEDIT.OBJECT.CHANGED 48399 . -51589) (TEDIT.MAP.OBJECTS 51591 . 53162) (\TEDIT.FIRST.OBJPIECE 53164 . 53397) (\TEDIT.NEXT.OBJPIECE -53399 . 53632)) (53657 61100 (\TEDIT.CONCAT.PAGEFRAMES 53667 . 58734) (\TEDIT.GET.PAGE.HEADINGS 58736 - . 59765) (\TEDIT.CONCAT.INSTALL.HEADINGS 59767 . 61098)) (61101 64708 (\TEDIT.MOVE.MSG 61111 . 63192) - (\TEDIT.READONLY 63194 . 64706)) (64709 70600 (TEDIT.NCHARS 64719 . 65092) (TEDIT.RPLCHARCODE 65094 - . 68084) (TEDIT.NTHCHARCODE 68086 . 70129) (TEDIT.NTHCHAR 70131 . 70598)) (70646 127675 (\TEDIT1 -70656 . 72733) (\TEDIT.INSERT 72735 . 79100) (\TEDIT.MOVE 79102 . 87008) (\TEDIT.COPY 87010 . 91541) ( -\TEDIT.REPLACE.SELPIECES 91543 . 96079) (\TEDIT.INSERT.SELPIECES 96081 . 99078) (\TEDIT.RESTARTFN -99080 . 101585) (\TEDIT.CHARDELETE 101587 . 104516) (\TEDIT.COPYPIECE 104518 . 109680) ( -\TEDIT.APPLY.OBJFN 109682 . 112768) (\TEDIT.DELETE 112770 . 117138) (\TEDIT.DIFFUSE.PARALOOKS 117140 - . 119411) (\TEDIT.WORDDELETE 119413 . 121028) (\TEDIT.WORDDELETE.FORWARD 121030 . 122819) ( -\TEDIT.FINISHEDIT? 122821 . 127673)) (127676 128335 (\TEDIT.THELP 127686 . 128333)) (128369 137500 ( -\TEDIT.PARAPIECES 128379 . 130353) (\TEDIT.PARACHNOS 130355 . 131247) (\TEDIT.PARA.FIRST 131249 . -134350) (\TEDIT.PARA.LAST 134352 . 137498)) (137501 144596 (\TEDIT.WORD.FIRST 137511 . 141515) ( -\TEDIT.WORD.LAST 141517 . 144594)) (144797 145074 (TEDITSYSTEMDATE 144807 . 145072))))) + (FILEMAP (NIL (4838 7232 (MAKE-TEDIT-EXPORTS.ALL 4848 . 5394) (UPDATE-TEDIT 5396 . 6325) (EDIT-TEDIT +6327 . 7230)) (8662 36440 (TEDIT 8672 . 11286) (TEXTSTREAM 11288 . 13177) (TEXTSTREAMP 13179 . 13563) +(COERCETEXTSTREAM 13565 . 17776) (TEDIT.CONCAT 17778 . 21080) (TEDITSTRING 21082 . 21996) (TEDIT-SEE +21998 . 22682) (TEDIT.COPY 22684 . 24829) (TEDIT.DELETE 24831 . 26192) (TEDIT.INSERT 26194 . 29163) ( +TEDIT.TERPRI 29165 . 30279) (TEDIT.KILL 30281 . 31263) (TEDIT.QUIT 31265 . 32631) (TEDIT.MOVE 32633 . +33521) (TEDIT.STRINGWIDTH 33523 . 34194) (TEDIT.CHARWIDTH 34196 . 36438)) (36441 38382 (TEXTOBJ 36451 + . 36916) (COERCETEXTOBJ 36918 . 38380)) (39782 41432 (TDRIBBLE 39792 . 41430)) (41473 53369 ( +TEDIT.INSERT.OBJECT 41483 . 45190) (TEDIT.EDIT.OBJECT 45192 . 48132) (TEDIT.OBJECT.CHANGED 48134 . +51324) (TEDIT.MAP.OBJECTS 51326 . 52897) (\TEDIT.FIRST.OBJPIECE 52899 . 53132) (\TEDIT.NEXT.OBJPIECE +53134 . 53367)) (53392 60835 (\TEDIT.CONCAT.PAGEFRAMES 53402 . 58469) (\TEDIT.GET.PAGE.HEADINGS 58471 + . 59500) (\TEDIT.CONCAT.INSTALL.HEADINGS 59502 . 60833)) (60836 64443 (\TEDIT.MOVE.MSG 60846 . 62927) + (\TEDIT.READONLY 62929 . 64441)) (64444 70335 (TEDIT.NCHARS 64454 . 64827) (TEDIT.RPLCHARCODE 64829 + . 67819) (TEDIT.NTHCHARCODE 67821 . 69864) (TEDIT.NTHCHAR 69866 . 70333)) (70381 127158 (\TEDIT1 +70391 . 72468) (\TEDIT.INSERT 72470 . 78583) (\TEDIT.MOVE 78585 . 86491) (\TEDIT.COPY 86493 . 91024) ( +\TEDIT.REPLACE.SELPIECES 91026 . 95562) (\TEDIT.INSERT.SELPIECES 95564 . 98561) (\TEDIT.RESTARTFN +98563 . 101068) (\TEDIT.CHARDELETE 101070 . 103999) (\TEDIT.COPYPIECE 104001 . 109163) ( +\TEDIT.APPLY.OBJFN 109165 . 112251) (\TEDIT.DELETE 112253 . 116621) (\TEDIT.DIFFUSE.PARALOOKS 116623 + . 118894) (\TEDIT.WORDDELETE 118896 . 120511) (\TEDIT.WORDDELETE.FORWARD 120513 . 122302) ( +\TEDIT.FINISHEDIT? 122304 . 127156)) (127159 127818 (\TEDIT.THELP 127169 . 127816)) (127852 136983 ( +\TEDIT.PARAPIECES 127862 . 129836) (\TEDIT.PARACHNOS 129838 . 130730) (\TEDIT.PARA.FIRST 130732 . +133833) (\TEDIT.PARA.LAST 133835 . 136981)) (136984 144079 (\TEDIT.WORD.FIRST 136994 . 140998) ( +\TEDIT.WORD.LAST 141000 . 144077)) (144280 144557 (TEDITSYSTEMDATE 144290 . 144555))))) STOP diff --git a/library/tedit/TEDIT.LCOM b/library/tedit/TEDIT.LCOM index 3f9c88b3f9cd04eba04719f3982fae95f38ec779..bcfdf700b92e4552bfe92b97e4f9e8a4793a22cb 100644 GIT binary patch delta 1035 zcmb7@zi-n(6vyL05ecmn`h$>84@U|IXsl z@@Wk`vt)T$%c+@F4=x{AwQd4ip0aJ|_Lj|NS!m3x5Ep-k5w%fXV7Yj@Y}sb9YU;!v z97tw2Rs4owV+etOkSeLzXGYHbD+dm=O4Ynzxl^@FiFgB6R5NaUCDctsi+N2}Scu~- z2BJu6|6soLGb-L1OjWK&$S4N0(H!0zz0@3|QzDXXL+^>?ZZQvD1MOY#a8lc^c{omCzZZOdf;ky=jmqT9^S~O@TX*nJ5hXAD8^}w zZQUr8f{=;v1!`y=qjRE3f(vRM?{GtDEXDEZxk1Of=E1Z-vApIP={ z*`N38EA8pj=aJE5A`IF+Lap@+kqmnKpWAt(3X|~iHb^e z0v6yZ*jU(L0l8wUy0ElcH`v)JVq@ZL6B>kg!@axr?tS;Z@7~XC`t3IT>?#XdC2X%% zL|&9Z6b*qlME?1*xFu<2V2Zt2fn+s97K?Cmy*?^L{3M+L2Lr|0xp1f|z$Us_#a!OLm4CXdQ;{p295LLoQ z?098yBDH}Wv3#-=awSP6Ea##yBAv~EBxamRzp*h=p&0=jH;nw?8sPS*OYhP6{irhh z#7xVVj^l^b{sib?4ClwD(0Q{~t*7wTF6$gPgA`S@nB;=vvW{DDR+D|_bg~u}$?JlK zuyBc`6#Q*+f)!*Qu4kIN&Cm`a&_(=lY<^CXAhbQ(id?@5f{1!gLPo%^O@qKIJsDk3 znI#EL1qI@M&~bTY9fQg{5ai?W-~ zc8MagsCP98t-$v@&N2f#0$DhT+u(6T2&60BtF75&AUMx$+94oS$KPj%&mq)PLMj>! zK$3zlS4QHqmP5&c(4&^jqd#&XO^56Q61|ZsLDLUrOb?Kvy?I(!^B$QAGS7C1cOG