From 0b948bab533622305ed61ba09dfef1d2edc6e368 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Wed, 4 Feb 2026 18:05:29 -0800 Subject: [PATCH] TEDIT adds TEDIT.PARAGRAPH.BOUNDARIES, fixed TEDIT.MAP.OBJECTS, a few other bugs --- library/tedit/TEDIT | 98 ++++++++++++++++++++++++--------------- library/tedit/TEDIT.LCOM | Bin 33445 -> 33840 bytes 2 files changed, 60 insertions(+), 38 deletions(-) diff --git a/library/tedit/TEDIT b/library/tedit/TEDIT index 2522759e..d50bfdd2 100644 --- a/library/tedit/TEDIT +++ b/library/tedit/TEDIT @@ -1,12 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "24-Dec-2025 22:45:39" {WMEDLEY}TEDIT>TEDIT.;847 145111 +(FILECREATED " 4-Feb-2026 16:02:02" {WMEDLEY}TEDIT>TEDIT.;852 146779 :EDIT-BY rmk - :CHANGES-TO (VARS TEDITCOMS) + :CHANGES-TO (FNS TEDIT.MAP.OBJECTS TEDIT.PARAGRAPH.BOUNDARIES) + (VARS TEDITCOMS) - :PREVIOUS-DATE "24-Dec-2025 11:23:12" {WMEDLEY}TEDIT>TEDIT.;846) + :PREVIOUS-DATE "31-Jan-2026 11:49:19" {WMEDLEY}TEDIT>TEDIT.;849) (PRETTYCOMPRINT TEDITCOMS) @@ -47,7 +48,7 @@ (FNS TEDIT TEXTSTREAM TEXTSTREAMP COERCETEXTSTREAM TEDIT.CONCAT TEDITSTRING TEDIT-SEE TEDIT.COPY TEDIT.DELETE TEDIT.INSERT TEDIT.TERPRI TEDIT.KILL TEDIT.QUIT TEDIT.MOVE - TEDIT.STRINGWIDTH TEDIT.CHARWIDTH) + TEDIT.STRINGWIDTH TEDIT.CHARWIDTH TEDIT.PARAGRAPH.BOUNDARIES) (FNS TEXTOBJ COERCETEXTOBJ) (MACROS TEVAL) (FNS TDRIBBLE) @@ -676,6 +677,26 @@ (CR (IMAX 6 (CHARWIDTH CH FONT))) (TAB 36) (CHARWIDTH CH FONT]) + +(TEDIT.PARAGRAPH.BOUNDARIES + [LAMBDA (TSTREAM SELORCH# PROTECTEDNOTOK) (* ; "Edited 2-Feb-2026 23:05 by rmk") + + (* ;; "Returns a pair (FIRSTCH# LASTCH#) where FIRSTCH# is the character number of the first character of the paragraph that contains the beginning of the selection, and LASTCH# is the last character number of the last character of the paragraph that contains the end of the selection.") + + (* ;; + "If PROTECTIONNOTOK, the scans stop at any protected piece (e.g. doesn't cross menu boiler plate).") + + (LET ((TEXTOBJ (TEXTOBJ TSTREAM))) + (CL:UNLESS SELORCH# + (SETQ SELORCH# (TEXTSEL TEXTOBJ))) + (LIST (CAR (\TEDIT.PARA.FIRST TEXTOBJ (CL:IF (type? SELECTION SELORCH#) + (GETSEL SELORCH# CH#) + SELORCH#) + PROTECTEDNOTOK)) + (CAR (\TEDIT.PARA.LAST TEXTOBJ (CL:IF (type? SELECTION SELORCH#) + (GETSEL SELORCH# CHLAST) + SELORCH#) + PROTECTEDNOTOK]) ) (DEFINEQ @@ -912,7 +933,8 @@ else (TEDIT.PROMPTPRINT TSTREAM "Changed object not found in document" T]) (TEDIT.MAP.OBJECTS - [LAMBDA (TSTREAM FN FNARG COLLECT?) (* ; "Edited 25-Feb-2025 15:06 by rmk") + [LAMBDA (TSTREAM FN FNARG COLLECT?) (* ; "Edited 4-Feb-2026 16:01 by rmk") + (* ; "Edited 25-Feb-2025 15:06 by rmk") (* ; "Edited 23-Apr-2024 09:15 by rmk") (* ; "Edited 16-Mar-2024 10:03 by rmk") (* ; "Edited 4-Mar-2024 16:12 by rmk") @@ -932,8 +954,7 @@ (NIL) (OBJECT (PUSH $$VAL OBJ)) (CH# (PUSH $$VAL CH#)) - (VALUE (PUSH $$VAL CH#) - FNVAL) + (VALUE (PUSH $$VAL FNVAL)) (FIRST (RETURN (LIST CH# OBJ FNVAL))) (PUSH $$VAL (LIST CH# OBJ FNVAL))) (CL:WHEN (EQ FNVAL 'STOP) @@ -1325,7 +1346,9 @@ (CL:WHEN TYPEIN (\TEDIT.SCROLL.CARET TSTREAM)))])]) (\TEDIT.MOVE - [LAMBDA (FROMSEL TOSEL FROMTSTREAM TOTSTREAM) (* ; "Edited 7-May-2025 00:12 by rmk") + [LAMBDA (FROMSEL TOSEL FROMTSTREAM TOTSTREAM) (* ; "Edited 31-Jan-2026 11:48 by rmk") + (* ; "Edited 10-Jan-2026 01:38 by rmk") + (* ; "Edited 7-May-2025 00:12 by rmk") (* ; "Edited 22-Apr-2025 09:21 by rmk") (* ; "Edited 16-Apr-2025 09:01 by rmk") (* ; "Edited 6-Apr-2025 14:14 by rmk") @@ -1385,7 +1408,7 @@ (CL:WHEN (AND (FGETTOBJ TOOBJ BLUEPENDINGDELETE) (IGREATERP TODCH 0)) (FSETTOBJ TOOBJ BLUEPENDINGDELETE NIL) - (CL:UNLESS (\TEDIT.DELETE TOOBJ TOSEL) + (CL:UNLESS (\TEDIT.DELETE TOTSTREAM TOSEL) (RETURN NIL)) (SETQ BPD T) (CL:WHEN (EQ TOOBJ FROMOBJ) (* ; "Same text, pre-adjust the source") @@ -1421,15 +1444,14 @@ (* ;; "Pop to accumulate into a single event (BPD, DELETE, INSERT).") - else (\TEDIT.DELETE FROMOBJ FROMSEL NIL NIL T)) + else (\TEDIT.DELETE FROMTSTREAM FROMSEL NIL NIL T)) (* ;; "Deletion accomplished possibly in separate FROMOBJ with its own history.") (* ;; "") (CL:WHEN (GETTEXTPROP TOOBJ 'COPYBYBKSYSBUF) - (\TEDIT.FOREIGN.COPY (WFROMDS TOTSTREAM) - FROMSEL T) + (\TEDIT.FOREIGN.COPY FROMSEL FROMTSTREAM T) (CL:WHEN BPD (* ; "If no BPD, TO history is good") (\TEDIT.HISTORYADD.COMPOSITE TOOBJ TOOBJ (LIST (\TEDIT.POPEVENT TOOBJ) (\TEDIT.POPEVENT TOOBJ)))) @@ -1448,7 +1470,8 @@ (CL:IF BPD (\TEDIT.POPEVENT TOOBJ])]) (\TEDIT.COPY - [LAMBDA (FROMSEL TOSEL FROMTSTREAM TOTSTREAM) (* ; "Edited 7-May-2025 00:12 by rmk") + [LAMBDA (FROMSEL TOSEL FROMTSTREAM TOTSTREAM) (* ; "Edited 31-Jan-2026 11:48 by rmk") + (* ; "Edited 7-May-2025 00:12 by rmk") (* ; "Edited 22-Apr-2025 09:12 by rmk") (* ; "Edited 6-Apr-2025 14:16 by rmk") (* ; "Edited 5-Apr-2025 13:19 by rmk") @@ -1497,8 +1520,7 @@ (* ;; "") (CL:WHEN (GETTEXTPROP TOOBJ 'COPYBYBKSYSBUF) - (\TEDIT.FOREIGN.COPY (WFROMDS TOTSTREAM) - FROMSEL T) + (\TEDIT.FOREIGN.COPY FROMSEL FROMTSTREAM T) (RETURN)) (* ;; "") @@ -2331,27 +2353,27 @@ (DEFAULT.IMAGETYPE.CONVERSIONS '(TEDIT TEDIT.TO.IMAGEFILE)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4840 7234 (MAKE-TEDIT-EXPORTS.ALL 4850 . 5396) (UPDATE-TEDIT 5398 . 6327) (EDIT-TEDIT -6329 . 7232)) (8664 36442 (TEDIT 8674 . 11288) (TEXTSTREAM 11290 . 13179) (TEXTSTREAMP 13181 . 13565) -(COERCETEXTSTREAM 13567 . 17778) (TEDIT.CONCAT 17780 . 21082) (TEDITSTRING 21084 . 21998) (TEDIT-SEE -22000 . 22684) (TEDIT.COPY 22686 . 24831) (TEDIT.DELETE 24833 . 26194) (TEDIT.INSERT 26196 . 29165) ( -TEDIT.TERPRI 29167 . 30281) (TEDIT.KILL 30283 . 31265) (TEDIT.QUIT 31267 . 32633) (TEDIT.MOVE 32635 . -33523) (TEDIT.STRINGWIDTH 33525 . 34196) (TEDIT.CHARWIDTH 34198 . 36440)) (36443 38384 (TEXTOBJ 36453 - . 36918) (COERCETEXTOBJ 36920 . 38382)) (39784 41434 (TDRIBBLE 39794 . 41432)) (41475 53371 ( -TEDIT.INSERT.OBJECT 41485 . 45192) (TEDIT.EDIT.OBJECT 45194 . 48134) (TEDIT.OBJECT.CHANGED 48136 . -51326) (TEDIT.MAP.OBJECTS 51328 . 52899) (\TEDIT.FIRST.OBJPIECE 52901 . 53134) (\TEDIT.NEXT.OBJPIECE -53136 . 53369)) (53394 60837 (\TEDIT.CONCAT.PAGEFRAMES 53404 . 58471) (\TEDIT.GET.PAGE.HEADINGS 58473 - . 59502) (\TEDIT.CONCAT.INSTALL.HEADINGS 59504 . 60835)) (60838 64445 (\TEDIT.MOVE.MSG 60848 . 62929) - (\TEDIT.READONLY 62931 . 64443)) (64446 70337 (TEDIT.NCHARS 64456 . 64829) (TEDIT.RPLCHARCODE 64831 - . 67821) (TEDIT.NTHCHARCODE 67823 . 69866) (TEDIT.NTHCHAR 69868 . 70335)) (70383 127160 (\TEDIT1 -70393 . 72470) (\TEDIT.INSERT 72472 . 78585) (\TEDIT.MOVE 78587 . 86493) (\TEDIT.COPY 86495 . 91026) ( -\TEDIT.REPLACE.SELPIECES 91028 . 95564) (\TEDIT.INSERT.SELPIECES 95566 . 98563) (\TEDIT.RESTARTFN -98565 . 101070) (\TEDIT.CHARDELETE 101072 . 104001) (\TEDIT.COPYPIECE 104003 . 109165) ( -\TEDIT.APPLY.OBJFN 109167 . 112253) (\TEDIT.DELETE 112255 . 116623) (\TEDIT.DIFFUSE.PARALOOKS 116625 - . 118896) (\TEDIT.WORDDELETE 118898 . 120513) (\TEDIT.WORDDELETE.FORWARD 120515 . 122304) ( -\TEDIT.FINISHEDIT? 122306 . 127158)) (127161 127820 (\TEDIT.THELP 127171 . 127818)) (127854 136985 ( -\TEDIT.PARAPIECES 127864 . 129838) (\TEDIT.PARACHNOS 129840 . 130732) (\TEDIT.PARA.FIRST 130734 . -133835) (\TEDIT.PARA.LAST 133837 . 136983)) (136986 144081 (\TEDIT.WORD.FIRST 136996 . 141000) ( -\TEDIT.WORD.LAST 141002 . 144079)) (144282 144559 (TEDITSYSTEMDATE 144292 . 144557)) (144695 144902 ( -TEDIT.IMAGESOURCEP 144705 . 144900))))) + (FILEMAP (NIL (4936 7330 (MAKE-TEDIT-EXPORTS.ALL 4946 . 5492) (UPDATE-TEDIT 5494 . 6423) (EDIT-TEDIT +6425 . 7328)) (8760 37759 (TEDIT 8770 . 11384) (TEXTSTREAM 11386 . 13275) (TEXTSTREAMP 13277 . 13661) +(COERCETEXTSTREAM 13663 . 17874) (TEDIT.CONCAT 17876 . 21178) (TEDITSTRING 21180 . 22094) (TEDIT-SEE +22096 . 22780) (TEDIT.COPY 22782 . 24927) (TEDIT.DELETE 24929 . 26290) (TEDIT.INSERT 26292 . 29261) ( +TEDIT.TERPRI 29263 . 30377) (TEDIT.KILL 30379 . 31361) (TEDIT.QUIT 31363 . 32729) (TEDIT.MOVE 32731 . +33619) (TEDIT.STRINGWIDTH 33621 . 34292) (TEDIT.CHARWIDTH 34294 . 36536) (TEDIT.PARAGRAPH.BOUNDARIES +36538 . 37757)) (37760 39701 (TEXTOBJ 37770 . 38235) (COERCETEXTOBJ 38237 . 39699)) (41101 42751 ( +TDRIBBLE 41111 . 42749)) (42792 54772 (TEDIT.INSERT.OBJECT 42802 . 46509) (TEDIT.EDIT.OBJECT 46511 . +49451) (TEDIT.OBJECT.CHANGED 49453 . 52643) (TEDIT.MAP.OBJECTS 52645 . 54300) (\TEDIT.FIRST.OBJPIECE +54302 . 54535) (\TEDIT.NEXT.OBJPIECE 54537 . 54770)) (54795 62238 (\TEDIT.CONCAT.PAGEFRAMES 54805 . +59872) (\TEDIT.GET.PAGE.HEADINGS 59874 . 60903) (\TEDIT.CONCAT.INSTALL.HEADINGS 60905 . 62236)) (62239 + 65846 (\TEDIT.MOVE.MSG 62249 . 64330) (\TEDIT.READONLY 64332 . 65844)) (65847 71738 (TEDIT.NCHARS +65857 . 66230) (TEDIT.RPLCHARCODE 66232 . 69222) (TEDIT.NTHCHARCODE 69224 . 71267) (TEDIT.NTHCHAR +71269 . 71736)) (71784 128828 (\TEDIT1 71794 . 73871) (\TEDIT.INSERT 73873 . 79986) (\TEDIT.MOVE 79988 + . 88086) (\TEDIT.COPY 88088 . 92694) (\TEDIT.REPLACE.SELPIECES 92696 . 97232) ( +\TEDIT.INSERT.SELPIECES 97234 . 100231) (\TEDIT.RESTARTFN 100233 . 102738) (\TEDIT.CHARDELETE 102740 + . 105669) (\TEDIT.COPYPIECE 105671 . 110833) (\TEDIT.APPLY.OBJFN 110835 . 113921) (\TEDIT.DELETE +113923 . 118291) (\TEDIT.DIFFUSE.PARALOOKS 118293 . 120564) (\TEDIT.WORDDELETE 120566 . 122181) ( +\TEDIT.WORDDELETE.FORWARD 122183 . 123972) (\TEDIT.FINISHEDIT? 123974 . 128826)) (128829 129488 ( +\TEDIT.THELP 128839 . 129486)) (129522 138653 (\TEDIT.PARAPIECES 129532 . 131506) (\TEDIT.PARACHNOS +131508 . 132400) (\TEDIT.PARA.FIRST 132402 . 135503) (\TEDIT.PARA.LAST 135505 . 138651)) (138654 +145749 (\TEDIT.WORD.FIRST 138664 . 142668) (\TEDIT.WORD.LAST 142670 . 145747)) (145950 146227 ( +TEDITSYSTEMDATE 145960 . 146225)) (146363 146570 (TEDIT.IMAGESOURCEP 146373 . 146568))))) STOP diff --git a/library/tedit/TEDIT.LCOM b/library/tedit/TEDIT.LCOM index cfdf23b6563f2fe3063243018eba6e4a085dccca..b29448688b1fc6341b1b063fd8944913046cf1e2 100644 GIT binary patch delta 1543 zcmZuxPi)&{6t~;0WocT*pLS_r>sPlM38k(-+p&|tA+~GB&L2D2?zW1*Es2_RFs2Q( zWIdE3A;FFIn*`;C1UDqwr3b_%NJvOS6O*_hap1_Yhyw>Me0IFnG>Iblz2E!Z^Y8uM z^Y`^f1A8A2e0t?+z|U*7)p?d-1ptLC!{Yz;HFh(_CP9P(FceK?IX0UTD6o37_SU=a z+-SUAtAbkd#?4z7v%pms4VNxU721*us^U7JaUD?FQmF*OMQEC)Ky~FkoY`BQ%Q8Hb zj3hLpbU{^YRl-F9)sG=!Na{?A1&|j+F@s(qpM{#~^dZruRgr8dZ%Y-OmaQdoQL+uy zNuu}3>G24~!TG|<^*{iaFAp5Jm9naa)^oNpf6}V!|M;8MX&vL9V)Z9#~T$1u#=Q7{f9_DjjloCggBj z$YH|{6hhUKk)SeYe=y56e;3$e=zvrKJgFwRek>KgL+l2M?J7puPXH@8qyXn$+>#9 zF?!lZt+6%l>F3=`=H!O2U&lDW@6qDtiv>mMBGU1>PQ9VjtD~pUj>Zn8A!_8$o1DlV zX=hc`%c|)DPUwU2ncj0)ykHoPZe76&BPRdZtRRBC>Ut7YY^ws;6#wYdBA$V(0+wgd zAFquMvMi4t*PkH;G^bA{S>|Ll05iRi$fK8^i=8{Bh+kVVR7G_FOmVp0~Vq2vWtw^@&;)b|KS_Fy#n1(%&2+?67MrKesKY0q`?M4fw z$pOfsz5Ij-VfugiLPj`QAk%}SJ=M;k{h|;RfN9xfsRSV8+J6_5b1w!rN52m}2@>Ab zaOfVfVuV3G~u!eH=%%hlvxsfIlc)bEm135j4$R zKx@q`w!Uo6qMw=)wuW05Nxxl`Z^f|xMvF&xThr)=*W>7y)(hz0))YqLck)k$t^q|i tEld*Ky5mNDF7ujUE@EJ1tBkO0&3}}jEMjM delta 1177 zcmZuwO>7fa5cb-w0t>NF8$xU-JeDAAh!?;8v%ROR*Sp@0*M6(rO~4XWMQ}tMAfS{( zVh5#)id6Lk%(beJDo&M9z_}oVK&r%{m%=HR0^-VvTsa_KHh+%DUS{4m^Jd=n&Fs=| z(FeDqch2<*Ql>OdZld7Las_PkJHW~FZ zC0ZWsq=i*MRIzZk%|#`p(;Hnr*7?Ns_A*vyPj;!FnTIFl56n2Mn6<(0N&H_kGWD@D zRGnIVe2T=U{xc)bNnB$i^jnTCK8mb@RX)wWEbd)Hp6h#Iv3&MNYk0EJ?EN-`Nc{4e z4R1W=^)PR^xi5^_%i|>8XoMJvhh{RFT#qf8Bf7TkYTFgoI>aquA*Y}VAz|LK{eXCN ztyJPEd6)P$Wh^SW&A3ZkW6Y=pNR)TMBy06w%NdOF%Z4xX2QdV7eTZnuxYgLe5l sc4Hr1&C_(NMrg;+?SLk{Upx