From 69b5c4120b73a547ab041257091df6d7000a2775 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sun, 16 Mar 2025 22:07:25 -0700 Subject: [PATCH 01/26] Implement new key binding architecture, better initial regions --- internal/TEDIT-DEBUG | 339 ++--- internal/TEDIT-DEBUG.LCOM | Bin 61668 -> 61964 bytes library/tedit/TEDIT | 336 ++--- library/tedit/TEDIT-ABBREV | 236 ++-- library/tedit/TEDIT-ABBREV.LCOM | Bin 3528 -> 3580 bytes library/tedit/TEDIT-BUTTONS | 63 +- library/tedit/TEDIT-BUTTONS.LCOM | Bin 35386 -> 35089 bytes library/tedit/TEDIT-CHAT | 13 +- library/tedit/TEDIT-CHAT.LCOM | Bin 5409 -> 5406 bytes library/tedit/TEDIT-COMMAND | 708 +--------- library/tedit/TEDIT-COMMAND.LCOM | Bin 15738 -> 5431 bytes library/tedit/TEDIT-FILE | 67 +- library/tedit/TEDIT-FILE.LCOM | Bin 38524 -> 38516 bytes library/tedit/TEDIT-FIND | 413 +++--- library/tedit/TEDIT-FIND.LCOM | Bin 8039 -> 9154 bytes library/tedit/TEDIT-FNKEYS | 2042 +++++++++++++++++++--------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 19748 -> 32715 bytes library/tedit/TEDIT-HISTORY | 51 +- library/tedit/TEDIT-HISTORY.LCOM | Bin 13159 -> 13338 bytes library/tedit/TEDIT-MENU | 198 +-- library/tedit/TEDIT-MENU.LCOM | Bin 47107 -> 47289 bytes library/tedit/TEDIT-SELECTION | 86 +- library/tedit/TEDIT-SELECTION.LCOM | Bin 30119 -> 30118 bytes library/tedit/TEDIT-WINDOW | 289 ++-- library/tedit/TEDIT-WINDOW.LCOM | Bin 65327 -> 65685 bytes library/tedit/TEDIT.LCOM | Bin 35167 -> 33908 bytes library/tedit/tedit-exports.all | 72 +- 27 files changed, 2573 insertions(+), 2340 deletions(-) diff --git a/internal/TEDIT-DEBUG b/internal/TEDIT-DEBUG index 6a953ed07..a8c3380a5 100644 --- a/internal/TEDIT-DEBUG +++ b/internal/TEDIT-DEBUG @@ -1,12 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "19-Feb-2025 12:21:45" {WMEDLEY}TEDIT-DEBUG.;135 130829 +(FILECREATED " 6-Mar-2025 11:29:26" {WMEDLEY}TEDIT-DEBUG.;136 131290 :EDIT-BY rmk - :CHANGES-TO (FNS SPPRINT) + :CHANGES-TO (VARS TEDIT-DEBUGCOMS) + (FNS CLEARTHISLINE) - :PREVIOUS-DATE " 8-Feb-2025 22:41:55" {WMEDLEY}TEDIT-DEBUG.;134) + :PREVIOUS-DATE "19-Feb-2025 12:21:45" {WMEDLEY}TEDIT-DEBUG.;135) (PRETTYCOMPRINT TEDIT-DEBUGCOMS) @@ -30,7 +31,8 @@ (COMS (* ; "Inspect") (FNS IPC ILINES ISEL ITS IPANES ITL IHIST IPCTB IMB ICL IPL ICARET INSPECTPIECES)) (COMS (* ; "Show") - (FNS SP SL SSP STL SPF SLF SHOWLINE SLL STBYTES SSEL)) + (FNS SP SL SSP SPF SLF SHOWLINE SLL STBYTES SSEL) + (FNS STL CLEARTHISLINE)) (COMS (FNS NTHPIECE NPIECES NTHPIECECHAR SELPIECE PIECENUM PCBYTES)) (COMS (FNS FILEBYTES TFILEBYTES)) (FNS TRELMOVE TSCROLL TSCROLL*) @@ -550,140 +552,6 @@ (SPPRINT PC OFILE TEXTOBJ))) SELPIECES]) -(STL - [LAMBDA (THISLINE LASTCS LCHAR1 OFILE) (* ; "Edited 22-Aug-2024 23:51 by rmk") - (* ; "Edited 4-Aug-2024 12:08 by rmk") - (* ; "Edited 31-Jul-2024 19:55 by rmk") - (* ; "Edited 29-Jul-2024 09:20 by rmk") - (* ; "Edited 1-Feb-2024 17:00 by rmk") - (* ; "Edited 25-Nov-2023 10:50 by rmk") - (* ; "Edited 23-Nov-2023 11:41 by rmk") - (* ; "Edited 23-Mar-2023 23:00 by rmk") - - (* ;; "Debugging tool while \FORMATLINE is creating THISLINE, or when it's done. During creation the NEXTAVAILABLECHARSLOT is at the very end, so bad slots are visible. When complete, they shouldn't appear.") - - (* ;; "If OFILE isn't given, this goes to a textstream") - - (DECLARE (USEDFREE PREVSP CHARSLOT)) - (CL:UNLESS (type? THISLINE THISLINE) - (CL:WHEN (EQ THISLINE T) - (SETQ THISLINE NIL) - (SETQ LASTCS CHARSLOT)) - (SETQ THISLINE (fetch (TEXTOBJ THISLINE) of (GTO THISLINE)))) - (\DTEST THISLINE 'THISLINE) - (DEBUGOUTPUT OFILE (CL:IF OFILE - NIL - 'STL) - (for CSLOT EXPANDSPACES CHNO TX LENGTH CHAR CHARW (SPACEFACTOR _ (FETCH TLSPACEFACTOR - OF THISLINE)) - (FIRSTSPACESLOT _ (fetch TLFIRSTSPACE of THISLINE)) - (LINE _ (fetch (THISLINE DESC) of THISLINE)) - (NSPACES _ 0) - (NCHARS _ 0) - (SPACETOTAL _ 0) - (PSP _ (AND (BOUNDP 'PREVSP) - (NEQ PREVSP (GETATOMVAL 'PREVSP)) - PREVSP)) incharslots THISLINE as NSLOTS from 0 - first (if (NULL LINE) - then (printout OFILE THISLINE ":" T 5 - "No line parameters, start at CHNO = 1 LX1 = 0" T) - (SETQ CHNO 1) - (SETQ TX 0) - elseif (type? LINEDESCRIPTOR LINE) - then (SETQ CHNO (GETLD LINE LCHAR1)) - (SETQ TX (GETLD LINE LX1)) - (printout OFILE THISLINE " for " LINE ":" T 5 "Start at CHNO = " CHNO - " LX1 = " TX ", LXLIM = " (GETLD LINE LXLIM) - T)) - (CL:WHEN LCHAR1 - (SETQ CHNO (OR LCHAR1 1))) - (SETQ LENGTH TX) - (printout OFILE 29 "XLIM" T) eachtime (SETQ CHAR (CHAR CSLOT)) - (SETQ CHARW (CHARW CSLOT)) - (CL:UNLESS (CHARSLOTP CSLOT THISLINE) - (HELP "THISLINE RUNS OFF THE EDGE" - THISLINE)) - repeatuntil [OR (EQ CSLOT (OR LASTCS (LASTCHARSLOT THISLINE] - do (printout OFILE .I4 NSLOTS) - [if (IMAGEOBJP CHAR) - then (add NCHARS 1) - (printout OFILE " " .I5 CHNO ": ") - (add TX CHARW) - (printout OFILE "Imobj" .FR 28 CHARW " " .I4 TX 35 CSLOT " " CHAR " ") - (SPPRINT.OBJ CHAR OFILE) - (add LENGTH CHARW) - (ADD CHNO 1) - elseif (SMALLP CHAR) - then (add NCHARS 1) - (printout OFILE " " .I5 CHNO ": ") - (printout OFILE .I3 CHAR " " - (SELCHARQ CHAR - ((EOL CR LF) - (add TX CHARW) - (add LENGTH CHARW) - "EOL") - (FORM "FORM") - (SPACE (CL:WHEN (EQ CSLOT FIRSTSPACESLOT) - (SETQ EXPANDSPACES T)) - (if EXPANDSPACES - then (add LENGTH (SCALEUP SPACEFACTOR CHARW)) - (add TX (SCALEUP SPACEFACTOR CHARW)) - else (add LENGTH CHARW) - (add TX CHARW)) - (ADD NSPACES 1) - " ") - (TAB (add LENGTH CHARW) - (add TX CHARW) - "TAB") - (Meta,TAB (add LENGTH CHARW) - (add TX CHARW) - "MTAB") - (PROGN (add LENGTH CHARW) - (add TX CHARW) - (CHARACTER CHAR))) - .FR 28 CHARW " " .I4 TX 35 CSLOT) - (ADD CHNO 1) - elseif [AND [OR (CHARSLOTP CHAR THISLINE) - (AND (NULL CHAR) - (NOT (TYPE? CHARLOOKS CHARW] - (OR (EQ CSLOT PSP) - (find CS incharslots (NEXTCHARSLOT CSLOT) - while (CHARSLOTP CS THISLINE) suchthat (EQ CSLOT CHAR] - then (* ; "Presumably a PREVSP") - (ADD NSPACES 1) - (printout OFILE " " .I5 CHNO ":") - (ADD LENGTH CHARW) - (ADD TX CHARW) - (PRINTOUT OFILE " " (OR CHAR "[ENDSP]") - .FR 28 CHARW " " .I4 TX 35 CSLOT) - (ADD CHNO 1) - elseif (SMALLP CHARW) - then (if (EQ CSLOT FIRSTSPACESLOT) - then (PRINTOUT OFILE "First space") - else (PRINTOUT OFILE .FR 11 "Invis" .FR 38 CHARW) - (add CHNO CHARW)) - elseif (type? CHARLOOKS CHARW) - then (printout OFILE 7 CHARW 35 CSLOT) - else (printout OFILE " BAD CHARSLOT " 28 CSLOT " CHAR = " CHAR " CHARW = " CHARW T - ) - (TERPRI OFILE) - (GO $$OUT) - (AND NIL (CL:UNLESS (EQ 'Y (ASKUSER NIL NIL "Bad charslot, continue? ")) - (TERPRI OFILE) - (GO $$OUT))] - (TERPRI OFILE) - finally (printout OFILE NSLOTS " slots" -2 NCHARS " characters" -2 NSPACES " spaces" -2 - "next avail = " (fetch (THISLINE NEXTAVAILABLECHARSLOT) of THISLINE) - T) - (printout OFILE "line length = " LENGTH -3 "right margin = " - (AND LINE (GETLD LINE RIGHTMARGIN)) - -3 "X limit = " (AND LINE (GETLD (fetch (THISLINE DESC) of THISLINE) - LXLIM)) - T) - (printout OFILE "first expanded space = " FIRSTSPACESLOT -3 "space factor = " - (CL:WHEN SPACEFACTOR (printout OFILE .F2.3 SPACEFACTOR)) - T]) - (SPF [LAMBDA (ARG TITLE OFILE) (* ; "Edited 30-Aug-2024 21:25 by rmk") (* ; "Edited 15-Aug-2024 22:39 by rmk") @@ -987,6 +855,149 @@ ) (DEFINEQ +(STL + [LAMBDA (THISLINE LASTCS LCHAR1 OFILE) (* ; "Edited 22-Aug-2024 23:51 by rmk") + (* ; "Edited 4-Aug-2024 12:08 by rmk") + (* ; "Edited 31-Jul-2024 19:55 by rmk") + (* ; "Edited 29-Jul-2024 09:20 by rmk") + (* ; "Edited 1-Feb-2024 17:00 by rmk") + (* ; "Edited 25-Nov-2023 10:50 by rmk") + (* ; "Edited 23-Nov-2023 11:41 by rmk") + (* ; "Edited 23-Mar-2023 23:00 by rmk") + + (* ;; "Debugging tool while \FORMATLINE is creating THISLINE, or when it's done. During creation the NEXTAVAILABLECHARSLOT is at the very end, so bad slots are visible. When complete, they shouldn't appear.") + + (* ;; "If OFILE isn't given, this goes to a textstream") + + (DECLARE (USEDFREE PREVSP CHARSLOT)) + (CL:UNLESS (type? THISLINE THISLINE) + (CL:WHEN (EQ THISLINE T) + (SETQ THISLINE NIL) + (SETQ LASTCS CHARSLOT)) + (SETQ THISLINE (fetch (TEXTOBJ THISLINE) of (GTO THISLINE)))) + (\DTEST THISLINE 'THISLINE) + (DEBUGOUTPUT OFILE (CL:IF OFILE + NIL + 'STL) + (for CSLOT EXPANDSPACES CHNO TX LENGTH CHAR CHARW (SPACEFACTOR _ (FETCH TLSPACEFACTOR + OF THISLINE)) + (FIRSTSPACESLOT _ (fetch TLFIRSTSPACE of THISLINE)) + (LINE _ (fetch (THISLINE DESC) of THISLINE)) + (NSPACES _ 0) + (NCHARS _ 0) + (SPACETOTAL _ 0) + (PSP _ (AND (BOUNDP 'PREVSP) + (NEQ PREVSP (GETATOMVAL 'PREVSP)) + PREVSP)) incharslots THISLINE as NSLOTS from 0 + first (if (NULL LINE) + then (printout OFILE THISLINE ":" T 5 + "No line parameters, start at CHNO = 1 LX1 = 0" T) + (SETQ CHNO 1) + (SETQ TX 0) + elseif (type? LINEDESCRIPTOR LINE) + then (SETQ CHNO (GETLD LINE LCHAR1)) + (SETQ TX (GETLD LINE LX1)) + (printout OFILE THISLINE " for " LINE ":" T 5 "Start at CHNO = " CHNO + " LX1 = " TX ", LXLIM = " (GETLD LINE LXLIM) + T)) + (CL:WHEN LCHAR1 + (SETQ CHNO (OR LCHAR1 1))) + (SETQ LENGTH TX) + (printout OFILE 29 "XLIM" T) eachtime (SETQ CHAR (CHAR CSLOT)) + (SETQ CHARW (CHARW CSLOT)) + (CL:UNLESS (CHARSLOTP CSLOT THISLINE) + (HELP "THISLINE RUNS OFF THE EDGE" + THISLINE)) + repeatuntil [OR (EQ CSLOT (OR LASTCS (LASTCHARSLOT THISLINE] + do (printout OFILE .I4 NSLOTS) + [if (IMAGEOBJP CHAR) + then (add NCHARS 1) + (printout OFILE " " .I5 CHNO ": ") + (add TX CHARW) + (printout OFILE "Imobj" .FR 28 CHARW " " .I4 TX 35 CSLOT " " CHAR " ") + (SPPRINT.OBJ CHAR OFILE) + (add LENGTH CHARW) + (ADD CHNO 1) + elseif (SMALLP CHAR) + then (add NCHARS 1) + (printout OFILE " " .I5 CHNO ": ") + (printout OFILE .I3 CHAR " " + (SELCHARQ CHAR + ((EOL CR LF) + (add TX CHARW) + (add LENGTH CHARW) + "EOL") + (FORM "FORM") + (SPACE (CL:WHEN (EQ CSLOT FIRSTSPACESLOT) + (SETQ EXPANDSPACES T)) + (if EXPANDSPACES + then (add LENGTH (SCALEUP SPACEFACTOR CHARW)) + (add TX (SCALEUP SPACEFACTOR CHARW)) + else (add LENGTH CHARW) + (add TX CHARW)) + (ADD NSPACES 1) + " ") + (TAB (add LENGTH CHARW) + (add TX CHARW) + "TAB") + (Meta,TAB (add LENGTH CHARW) + (add TX CHARW) + "MTAB") + (PROGN (add LENGTH CHARW) + (add TX CHARW) + (CHARACTER CHAR))) + .FR 28 CHARW " " .I4 TX 35 CSLOT) + (ADD CHNO 1) + elseif [AND [OR (CHARSLOTP CHAR THISLINE) + (AND (NULL CHAR) + (NOT (TYPE? CHARLOOKS CHARW] + (OR (EQ CSLOT PSP) + (find CS incharslots (NEXTCHARSLOT CSLOT) + while (CHARSLOTP CS THISLINE) suchthat (EQ CSLOT CHAR] + then (* ; "Presumably a PREVSP") + (ADD NSPACES 1) + (printout OFILE " " .I5 CHNO ":") + (ADD LENGTH CHARW) + (ADD TX CHARW) + (PRINTOUT OFILE " " (OR CHAR "[ENDSP]") + .FR 28 CHARW " " .I4 TX 35 CSLOT) + (ADD CHNO 1) + elseif (SMALLP CHARW) + then (if (EQ CSLOT FIRSTSPACESLOT) + then (PRINTOUT OFILE "First space") + else (PRINTOUT OFILE .FR 11 "Invis" .FR 38 CHARW) + (add CHNO CHARW)) + elseif (type? CHARLOOKS CHARW) + then (printout OFILE 7 CHARW 35 CSLOT) + else (printout OFILE " BAD CHARSLOT " 28 CSLOT " CHAR = " CHAR " CHARW = " CHARW T + ) + (TERPRI OFILE) + (GO $$OUT) + (AND NIL (CL:UNLESS (EQ 'Y (ASKUSER NIL NIL "Bad charslot, continue? ")) + (TERPRI OFILE) + (GO $$OUT))] + (TERPRI OFILE) + finally (printout OFILE NSLOTS " slots" -2 NCHARS " characters" -2 NSPACES " spaces" -2 + "next avail = " (fetch (THISLINE NEXTAVAILABLECHARSLOT) of THISLINE) + T) + (printout OFILE "line length = " LENGTH -3 "right margin = " + (AND LINE (GETLD LINE RIGHTMARGIN)) + -3 "X limit = " (AND LINE (GETLD (fetch (THISLINE DESC) of THISLINE) + LXLIM)) + T) + (printout OFILE "first expanded space = " FIRSTSPACESLOT -3 "space factor = " + (CL:WHEN SPACEFACTOR (printout OFILE .F2.3 SPACEFACTOR)) + T]) + +(CLEARTHISLINE + [LAMBDA (TSTREAM) (* ; "Edited 6-Mar-2025 11:28 by rmk") + (LET ((THISLINE (GETTOBJ (GTO TSTREAM) + THISLINE))) + (replace (THISLINE DESC) of THISLINE with NIL) + (for CSLOT incharslots THISLINE do (FILLCHARSLOT CSLOT NIL NIL]) +) +(DEFINEQ + (NTHPIECE [LAMBDA (PIECES N) (* ; "Edited 16-Mar-2024 10:07 by rmk") (* ; "Edited 16-Sep-2023 12:17 by rmk") @@ -2441,30 +2452,30 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4850 7409 (GTO 4860 . 5110) (GTS 5112 . 6883) (GTW 6885 . 7041) (GSEL 7043 . 7407)) ( -7466 20597 (IPC 7476 . 8980) (ILINES 8982 . 11523) (ISEL 11525 . 12136) (ITS 12138 . 13862) (IPANES -13864 . 14099) (ITL 14101 . 14520) (IHIST 14522 . 17184) (IPCTB 17186 . 17494) (IMB 17496 . 18111) ( -ICL 18113 . 18678) (IPL 18680 . 19084) (ICARET 19086 . 19463) (INSPECTPIECES 19465 . 20595)) (20619 -56081 (SP 20629 . 25146) (SL 25148 . 28292) (SSP 28294 . 29725) (STL 29727 . 38239) (SPF 38241 . 40540 -) (SLF 40542 . 49675) (SHOWLINE 49677 . 53239) (SLL 53241 . 53988) (STBYTES 53990 . 55716) (SSEL 55718 - . 56079)) (56082 61455 (NTHPIECE 56092 . 57224) (NPIECES 57226 . 58091) (NTHPIECECHAR 58093 . 59401) -(SELPIECE 59403 . 59845) (PIECENUM 59847 . 60566) (PCBYTES 60568 . 61453)) (61456 63930 (FILEBYTES -61466 . 62890) (TFILEBYTES 62892 . 63928)) (63931 65253 (TRELMOVE 63941 . 64184) (TSCROLL 64186 . -64352) (TSCROLL* 64354 . 65251)) (65254 68303 (TRY 65264 . 66533) (TEDITCLOSEW 66535 . 66878) ( -PARALASTWITHOUTEOL 66880 . 67765) (FIXPARALAST 67767 . 68301)) (68304 82803 (SPPRINT 68314 . 74899) ( -SPPRINT.CHAR 74901 . 75885) (SPPRINT.OBJ 75887 . 78945) (SHOWPIECEBYTES 78947 . 80503) (CHECKPLENGTHS -80505 . 80962) (SBT 80964 . 81953) (COPYPCHAIN 81955 . 82801)) (82804 84865 (POSLINE 82814 . 84863)) ( -84866 85749 (PRESPLIT 84876 . 85747)) (85750 87463 (ALLTL 85760 . 87013) (NTHCHARSLOT 87015 . 87461)) -(87489 97702 (PLCHAIN 87499 . 88027) (PRINTLINE 88029 . 91019) (SL.GETLINES 91021 . 94314) (CHECKLINES - 94316 . 95296) (COLLECTLINES 95298 . 95550) (NTHLINE 95552 . 96557) (HEIGHT 96559 . 96847) (LINEBOTS -96849 . 97700)) (97703 100151 (IPC.DECODEARGS 97713 . 100149)) (100152 100745 (SPF1 100162 . 100743)) -(100774 103152 (SLF.FATPLEN 100784 . 101643) (FILEPIECE 101645 . 103150)) (103185 103953 (SELTEDIT -103195 . 103951)) (104023 109635 (PPARA 104033 . 104455) (PRUN 104457 . 105933) (ADDLINEPOSITIONS -105935 . 107362) (SBR 107364 . 108018) (SBC 108020 . 109633)) (109692 114367 (DFOV 109702 . 112172) ( -OLDWI 112174 . 112549) (DFOV.OLDEST 112551 . 112976) (COMP 112978 . 113173) (DFR 113175 . 114365)) ( -114368 115401 (DFGV 114378 . 114904) (GDIRECTORIES 114906 . 115399)) (115402 121967 (TTEST 115412 . -119944) (LTEST 119946 . 121311) (THC 121313 . 121965)) (122281 122973 (SHOWSAFE 122291 . 122971)) ( -123026 123473 (MYH 123036 . 123471)) (123718 124813 (DFVENUE 123728 . 124607) (VSEE 124609 . 124811)) -(124814 125268 (PTT 124824 . 125266)) (126515 128831 (TEDIT-DEBUG 126525 . 128829)) (128832 130568 ( -TRENAME 128842 . 130566))))) + (FILEMAP (NIL (4931 7490 (GTO 4941 . 5191) (GTS 5193 . 6964) (GTW 6966 . 7122) (GSEL 7124 . 7488)) ( +7547 20678 (IPC 7557 . 9061) (ILINES 9063 . 11604) (ISEL 11606 . 12217) (ITS 12219 . 13943) (IPANES +13945 . 14180) (ITL 14182 . 14601) (IHIST 14603 . 17265) (IPCTB 17267 . 17575) (IMB 17577 . 18192) ( +ICL 18194 . 18759) (IPL 18761 . 19165) (ICARET 19167 . 19544) (INSPECTPIECES 19546 . 20676)) (20700 +47648 (SP 20710 . 25227) (SL 25229 . 28373) (SSP 28375 . 29806) (SPF 29808 . 32107) (SLF 32109 . 41242 +) (SHOWLINE 41244 . 44806) (SLL 44808 . 45555) (STBYTES 45557 . 47283) (SSEL 47285 . 47646)) (47649 +56542 (STL 47659 . 56171) (CLEARTHISLINE 56173 . 56540)) (56543 61916 (NTHPIECE 56553 . 57685) ( +NPIECES 57687 . 58552) (NTHPIECECHAR 58554 . 59862) (SELPIECE 59864 . 60306) (PIECENUM 60308 . 61027) +(PCBYTES 61029 . 61914)) (61917 64391 (FILEBYTES 61927 . 63351) (TFILEBYTES 63353 . 64389)) (64392 +65714 (TRELMOVE 64402 . 64645) (TSCROLL 64647 . 64813) (TSCROLL* 64815 . 65712)) (65715 68764 (TRY +65725 . 66994) (TEDITCLOSEW 66996 . 67339) (PARALASTWITHOUTEOL 67341 . 68226) (FIXPARALAST 68228 . +68762)) (68765 83264 (SPPRINT 68775 . 75360) (SPPRINT.CHAR 75362 . 76346) (SPPRINT.OBJ 76348 . 79406) +(SHOWPIECEBYTES 79408 . 80964) (CHECKPLENGTHS 80966 . 81423) (SBT 81425 . 82414) (COPYPCHAIN 82416 . +83262)) (83265 85326 (POSLINE 83275 . 85324)) (85327 86210 (PRESPLIT 85337 . 86208)) (86211 87924 ( +ALLTL 86221 . 87474) (NTHCHARSLOT 87476 . 87922)) (87950 98163 (PLCHAIN 87960 . 88488) (PRINTLINE +88490 . 91480) (SL.GETLINES 91482 . 94775) (CHECKLINES 94777 . 95757) (COLLECTLINES 95759 . 96011) ( +NTHLINE 96013 . 97018) (HEIGHT 97020 . 97308) (LINEBOTS 97310 . 98161)) (98164 100612 (IPC.DECODEARGS +98174 . 100610)) (100613 101206 (SPF1 100623 . 101204)) (101235 103613 (SLF.FATPLEN 101245 . 102104) ( +FILEPIECE 102106 . 103611)) (103646 104414 (SELTEDIT 103656 . 104412)) (104484 110096 (PPARA 104494 . +104916) (PRUN 104918 . 106394) (ADDLINEPOSITIONS 106396 . 107823) (SBR 107825 . 108479) (SBC 108481 . +110094)) (110153 114828 (DFOV 110163 . 112633) (OLDWI 112635 . 113010) (DFOV.OLDEST 113012 . 113437) ( +COMP 113439 . 113634) (DFR 113636 . 114826)) (114829 115862 (DFGV 114839 . 115365) (GDIRECTORIES +115367 . 115860)) (115863 122428 (TTEST 115873 . 120405) (LTEST 120407 . 121772) (THC 121774 . 122426) +) (122742 123434 (SHOWSAFE 122752 . 123432)) (123487 123934 (MYH 123497 . 123932)) (124179 125274 ( +DFVENUE 124189 . 125068) (VSEE 125070 . 125272)) (125275 125729 (PTT 125285 . 125727)) (126976 129292 +(TEDIT-DEBUG 126986 . 129290)) (129293 131029 (TRENAME 129303 . 131027))))) STOP diff --git a/internal/TEDIT-DEBUG.LCOM b/internal/TEDIT-DEBUG.LCOM index 1c29b2669c9d033267cfe88ae5e044a0ad65e27c..61accf82129304fd1e623d214d20b722a4f5585e 100644 GIT binary patch delta 712 zcmZvZO=}ZD7{@nht#$FxVjvzoJS?^D3eoH&8|{D$X0&&&TA{$6-9TzFegKrU5j zbW$jdG*DF?6?ByAKFyYL3WyTQr|e*78blc#X?i9t!A>W5^n7o>y&E(kc(LC(xT=GR zEyHJyOR-zEp#2OayM{5K?yt**GqPkQMU-t9Tc&Rr%qoI(Rv)1nTU*Y7no&_99X^O% zxwmQf6u91HsiL(}E16z}Dj?fcI^Tf;I`OSd*Q?P~krx0-EzCwyk&aY7t4Sbs57&Cf zv4`t%Vuv5!E4`n0{wlqj^2_9_`HA#mUX%%B!E_A24g@k0aX?^F>@iMh_-}wac~HiO zt0*AcUlN4a-3tOgoCINzUyTV)gsmTfvud1ko8KpacYSv%So++Y#s|ya$^+p`c@Y0v zZdU$$T5PQ(gnqe|i1*98i^tm^hJvg?iFw>l4b2+JW@enxW{lJstLffR``TfF*g!GA zj#rPiCsMvS$~Lx`MS)TapE^t#o_9ICIJ&(e5;IaNTs2uoxIOX{A~Ade8u=6E$` zc^JZ@5xpdW>5(nMU39CbX~Xq#H7OF`t+J>*#WzY;gcQQpW0Dj>z7DrQB8?{jJnl61 Of&+>F?VXHI&i@0YD!_jL delta 468 zcmZut%}T>S5TSiMBm&81Pzt$u3RPIZ?))GMLGZuNfAc-WRqiG?6o2%2aoJr>1O zb!sY)`jRRuL0Rce57&4w9~cJcL2@Fr@@blGa6k2#FJv#0?W7}V!ayshQ?U*~!uwq1 yj$%caW!B30Gp^4+`DbDsQ#mVVSoO*4pzp!~AfBD)a8_iK{1z#$RyDr9SAPMHV1c&) diff --git a/library/tedit/TEDIT b/library/tedit/TEDIT index 880b90756..f9b817491 100644 --- a/library/tedit/TEDIT +++ b/library/tedit/TEDIT @@ -1,21 +1,26 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "25-Feb-2025 15:07:03" {WMEDLEY}TEDIT>TEDIT.;765 155339 +(FILECREATED "16-Mar-2025 21:48:26" {WMEDLEY}tedit>TEDIT.;783 151695 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.MAP.OBJECTS TEDIT.INSERT.OBJECT) + :CHANGES-TO (FNS TDRIBBLE) - :PREVIOUS-DATE "20-Feb-2025 08:50:50" {WMEDLEY}TEDIT>TEDIT.;763) + :PREVIOUS-DATE "16-Mar-2025 00:16:31" {WMEDLEY}tedit>TEDIT.;782) (PRETTYCOMPRINT TEDITCOMS) (RPAQQ TEDITCOMS [(FILES (SYSLOAD) - POSTSCRIPTSTREAM PDFSTREAM) + POSTSCRIPTSTREAM PDFSTREAM WHEELSCROLL) (COMS (* ; "Loadup stuff") + + (* ;; "Would be nice to just do (DOFILESLOAD (CDR TEDITFILES)). But the order for exports.all and the order for loading have to be aligned.") + (VARS TEDITFILES) + (FILES TEDIT-PCTREE TEDIT-STREAM TEDIT-COMMAND TEDIT-SCREEN TEDIT-ABBREV TEDIT-LOOKS + TEDIT-STYLES) (FNS MAKE-TEDIT-EXPORTS.ALL UPDATE-TEDIT EDIT-TEDIT) (DECLARE%: DONTEVAL@LOAD DONTCOPY DONTEVAL@COMPILE @@ -34,24 +39,21 @@ (GLOBALVARS CHECK-TEDIT-ASSERTIONS) (INITVARS (CHECK-TEDIT-ASSERTIONS T))) (MACROS OBJECT.ALLOWS))) - (FILES TEDIT-PCTREE TEDIT-STREAM TEDIT-COMMAND TEDIT-SCREEN TEDIT-ABBREV TEDIT-LOOKS - TEDIT-STYLES) - [VARS (TEDIT.STARTUP.MONITORLOCK (CREATE.MONITORLOCK 'TEDIT.STARTUP] (INITVARS (TEDIT.TENTATIVE NIL) (TEDIT.DEFAULT.PROPS NIL)) (GLOBALVARS TEDIT.TENTATIVE TEDIT.DEFAULT.PROPS) (* ;; "Unslashed functions. Public?") - (FNS TEDIT TEXTSTREAM TEXTSTREAMP TEDITMENUP COERCETEXTSTREAM TEDIT.CONCAT TEDITSTRING - TEDIT-SEE TEDIT.COPY TEDIT.DELETE TEDIT.INSERT TEDIT.TERPRI TEDIT.KILL TEDIT.QUIT - TEDIT.MOVE TEDIT.STRINGWIDTH TEDIT.CHARWIDTH) + (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) (FNS TEXTOBJ COERCETEXTOBJ) (MACROS TEVAL) (FNS TDRIBBLE) (COMS (* ; "Object-oriented editing") - (FNS TEDIT.INSERT.OBJECT TEDIT.EDIT.OBJECT TEDIT.FIND.OBJECT TEDIT.FIND.OBJECT.BACKWARD - TEDIT.OBJECT.CHANGED TEDIT.MAP.OBJECTS \TEDIT.FIRST.OBJPIECE \TEDIT.NEXT.OBJPIECE) + (FNS TEDIT.INSERT.OBJECT TEDIT.EDIT.OBJECT TEDIT.OBJECT.CHANGED TEDIT.MAP.OBJECTS + \TEDIT.FIRST.OBJPIECE \TEDIT.NEXT.OBJPIECE) (FILES IMAGEOBJ)) (FNS \TEDIT.CONCAT.PAGEFRAMES \TEDIT.GET.PAGE.HEADINGS \TEDIT.CONCAT.INSTALL.HEADINGS) (FNS \TEDIT.MOVE.MSG \TEDIT.READONLY) @@ -65,11 +67,8 @@ \TEDIT.WORDDELETE.FORWARD \TEDIT.FINISHEDIT?) (COMS (FNS \TEDIT.THELP) (INITVARS (\TEDIT.THELPFLG NIL))) - (FNS \TEDIT.PARAPIECES \TEDIT.PARA.FIRST \TEDIT.PARA.LAST) + (FNS \TEDIT.PARAPIECES \TEDIT.PARACHNOS \TEDIT.PARA.FIRST \TEDIT.PARA.LAST) (FNS \TEDIT.WORD.FIRST \TEDIT.WORD.LAST) - - (* ;; "Would be nice to just do (DOFILESLOAD (CDR TEDITFILES)). But the order for exports.all and the order for loading have to be aligned.") - (FILES TEDIT-FIND TEDIT-HISTORY TEDIT-FILE TEDIT-OLDFILE TEDIT-WINDOW TEDIT-SELECTION TEDIT-TFBRAVO TEDIT-HCPY TEDIT-PAGE TEDIT-BUTTONS TEDIT-MENU TEDIT-FNKEYS) (COMS (* ; "TEDIT Support information") @@ -81,17 +80,27 @@ (EXTENSION (TEDIT]) (FILESLOAD (SYSLOAD) - POSTSCRIPTSTREAM PDFSTREAM) + POSTSCRIPTSTREAM PDFSTREAM WHEELSCROLL) (* ; "Loadup stuff") + + +(* ;; +"Would be nice to just do (DOFILESLOAD (CDR TEDITFILES)). But the order for exports.all and the order for loading have to be aligned." +) + + (RPAQQ TEDITFILES (TEDIT TEDIT-PCTREE TEDIT-SELECTION TEDIT-SCREEN TEDIT-STREAM TEDIT-COMMAND TEDIT-FILE TEDIT-OLDFILE TEDIT-LOOKS TEDIT-STYLES TEDIT-WINDOW TEDIT-BUTTONS TEDIT-MENU TEDIT-FIND TEDIT-FNKEYS TEDIT-HCPY TEDIT-HISTORY TEDIT-PAGE TEDIT-ABBREV TEDIT-TFBRAVO)) + +(FILESLOAD TEDIT-PCTREE TEDIT-STREAM TEDIT-COMMAND TEDIT-SCREEN TEDIT-ABBREV TEDIT-LOOKS TEDIT-STYLES + ) (DEFINEQ (MAKE-TEDIT-EXPORTS.ALL @@ -105,22 +114,23 @@ VAL]) (UPDATE-TEDIT - [LAMBDA (FILES LDFLG) (* ; "Edited 16-Feb-2025 11:25 by rmk") - (* ; "Edited 26-Oct-2022 21:10 by rmk") - (CL:UNLESS LDFLG (SETQ LDFLG T)) - (for F in LOADEDFILELST eachtime (SETQ F (TRUEFILENAME F)) - when [AND (STRPOS ">library>tedit>TEDIT-" F 1 NIL NIL NIL UPPERCASEARRAY) - (STRING.EQUAL 'LCOM (FILENAMEFIELD F 'EXTENSION] collect (FILENAMEFIELD F - 'NAME) - finally + [LAMBDA (FILES LDFLG) (* ; "Edited 9-Mar-2025 19:17 by rmk") + (* ; "Edited 7-Mar-2025 23:40 by rmk") + (* ; "Edited 26-Oct-2022 21:10 by rmk") + (* ; "Edited 16-Feb-2025 11:25 by rmk") - (* ;; "Loading TEDIT will probably do the DOFILESLOAD for all the other files, this may be overkill. But we want to make sure the load's happen even if it looks like the files are already there (e.g. not LOAD?).") + (* ;; + "Loads compiled TEDITFILES that were compiled on sources different from the currently loaded files.") - (RETURN (for LF in (CONS 'TEDIT (REMOVE 'TEDIT $$VAL)) - collect (PSEUDOFILENAME (LOAD LF LDFLG]) + (CL:UNLESS LDFLG + (SETQ LDFLG 'SYSLOAD)) + (for F CF in TEDITFILES when (SETQ CF (FINDFILE-WITH-EXTENSIONS F NIL *COMPILED-EXTENSIONS*)) + unless (thereis LF TCF in LOADEDFILELST first (SETQ TCF (TRUEFILENAME CF)) + suchthat (STRING.EQUAL TCF (TRUEFILENAME LF))) do (LOAD CF LDFLG]) (EDIT-TEDIT - [LAMBDA NIL (* ; "Edited 3-Jul-2023 13:44 by rmk") + [LAMBDA NIL (* ; "Edited 7-Mar-2025 22:53 by rmk") + (* ; "Edited 3-Jul-2023 13:44 by rmk") (* ; "Edited 17-Jun-2023 10:00 by rmk") (* ; "Edited 25-Apr-2023 17:39 by rmk") (* ; "Edited 26-Oct-2022 21:12 by rmk") @@ -128,6 +138,7 @@ (BKSYSBUF " ") (RESETLST (RESETSAVE LOADDBFLG 'YES) + (UPDATE-TEDIT) (FOR F IN TEDITFILES DO (LOADFROM F) (LOADCOMP F))) (%. ANALYZE ON IN TEDITFILES]) @@ -177,11 +188,6 @@ ) -(FILESLOAD TEDIT-PCTREE TEDIT-STREAM TEDIT-COMMAND TEDIT-SCREEN TEDIT-ABBREV TEDIT-LOOKS TEDIT-STYLES - ) - -(RPAQ TEDIT.STARTUP.MONITORLOCK (CREATE.MONITORLOCK 'TEDIT.STARTUP)) - (RPAQ? TEDIT.TENTATIVE NIL) (RPAQ? TEDIT.DEFAULT.PROPS NIL) @@ -291,19 +297,6 @@ (CL:WHEN (type? TEXTSTREAM TSTREAM) TSTREAM]) -(TEDITMENUP - [LAMBDA (WINDOW TITLE) (* ; "Edited 15-Mar-2024 15:39 by rmk") - (* ; "Edited 7-Dec-2023 21:06 by rmk") - (* ; "Edited 20-Sep-2023 22:36 by rmk") - (* ; "Edited 10-Apr-2023 10:14 by rmk") - (CL:WHEN (AND (WINDOWP WINDOW) - (WINDOWPROP WINDOW 'TEDITMENU) - (fetch (TEXTWINDOW WTEXTOBJ) of WINDOW) - (CL:IF TITLE - (STRING.EQUAL TITLE (WINDOWPROP WINDOW 'TITLE)) - T)) - (WINDOWPROP WINDOW 'TITLE))]) - (COERCETEXTSTREAM [LAMBDA (TSTREAM TYPE OUTPUTSTREAM) (* ; "Edited 17-Mar-2024 12:05 by rmk") (* ; "Edited 13-Jan-2024 20:01 by rmk") @@ -728,14 +721,22 @@ (DEFINEQ (TDRIBBLE - [LAMBDA NIL (* ; "Edited 27-Nov-2024 23:20 by rmk") + [LAMBDA NIL (* ; "Edited 16-Mar-2025 21:47 by rmk") + (* ; "Edited 27-Nov-2024 23:20 by rmk") (* ; "Edited 17-Nov-2024 14:10 by rmk") (* ; "Edited 15-Nov-2024 21:13 by rmk") (* ; "Edited 22-Oct-2024 21:23 by rmk") (LET [(TSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL `(HISTORY OFF TITLE "Tedit dribble" FONT DEFAULTFONT] [WHENCLOSE TSTREAM 'BEFORE (FUNCTION (LAMBDA (TSTREAM) - (TEDIT TSTREAM 'TeditDribble NIL + (TEDIT TSTREAM [GETBOXREGION + (fetch (REGION WIDTH) + of (WINDOWPROP (WFROMDS T) + 'REGION)) + (fetch (REGION HEIGHT) + of (WINDOWPROP (WFROMDS T) + 'REGION] + NIL '(LEAVETTY T APPEND QUIET PARABREAKCHARS NIL HISTORY OFF)) (TEDIT.SETSEL TSTREAM 1 0] @@ -861,57 +862,6 @@ (TEDIT.OBJECT.CHANGED TSTREAM OBJ))) (T (TEDIT.PROMPTPRINT TEXTOBJ "Please select an editable object" T T]) -(TEDIT.FIND.OBJECT - [LAMBDA (TSTREAM OBJ START END) (* ; "Edited 20-Oct-2024 12:07 by rmk") - (* ; "Edited 10-May-2024 21:58 by rmk") - (* ; "Edited 16-Mar-2024 10:03 by rmk") - (* ; "Edited 6-Nov-2022 11:12 by rmk") - (* ; "Edited 3-May-93 12:52 by jds") - - (* ;; "Return the character number of OBJ in TSTREAM, if it occurs between START and END. We know that an object occupies its own singleton piece, so we don't need to worry about starting or ending in the middle of a piece. We also don't need to test PTYPE, just look at PCONTENTS.") - - (SETQ TSTREAM (TEXTSTREAM TSTREAM)) - (CL:WHEN (IMAGEOBJP OBJ) - [LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ))) - (CL:UNLESS END - (SETQ END (FGETTOBJ TEXTOBJ TEXTLEN))) - (CL:UNLESS START - (SETQ START (TEDIT.GETPOINT TSTREAM))) - (CL:WHEN (AND (ILEQ START END) - (SETQ START (\TEDIT.CHTOPC START TEXTOBJ))) - (SETQ END (\TEDIT.CHTOPC END TEXTOBJ)) - (for PC inpieces START when (EQ OBJ (PCONTENTS PC)) - do (RETURN (\TEDIT.PCTOCH PC TEXTOBJ)) repeatuntil (EQ PC END)))])]) - -(TEDIT.FIND.OBJECT.BACKWARD - [LAMBDA (TSTREAM OBJ START END AGAIN) (* ; "Edited 10-May-2024 22:06 by rmk") - (* ; "Edited 16-Mar-2024 10:03 by rmk") - (* ; "Edited 6-Nov-2022 11:12 by rmk") - (* ; "Edited 3-May-93 12:52 by jds") - - (* ;; "Return the character number of OBJ in TSTREAM, if it occurs between START and END and is the occurrence closest to END. START defaults to 1, END defaults to current caret position (or one before, if AGAIN).") - - (* ;; "If we were sure that a given object can appear only once in a document, we could just run the TEDIT.FIND.OBJECT with different defaults for START and END, but...") - - (* ;; "We know that an object occupies its own singleton piece, so we don't need to worry about starting or ending in the middle of a piece. We also don't need to test PTYPE, just look at PCONTENTS.") - - (SETQ TSTREAM (TEXTSTREAM TSTREAM)) - (CL:WHEN (IMAGEOBJP OBJ) - [LET [(TEXTOBJ (TEXTOBJ! (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM] - (SETQ START (IMAX 1 (OR START 1))) - (SETQ END (IMIN (OR END (SUB1 (TEDIT.GETPOINT TSTREAM))) - (FGETTOBJ TEXTOBJ TEXTLEN))) - (CL:WHEN AGAIN - - (* ;; "Assume that we aren't interested in another match at the current position.") - - (ADD END -1)) - (CL:WHEN (ILEQ START END) - (SETQ START (\TEDIT.CHTOPC START TEXTOBJ)) - (SETQ END (\TEDIT.CHTOPC END TEXTOBJ)) - (for PC backpieces END when (EQ OBJ (PCONTENTS PC)) - do (RETURN (\TEDIT.PCTOCH PC TEXTOBJ)) repeatuntil (EQ PC START)))])]) - (TEDIT.OBJECT.CHANGED [LAMBDA (TSTREAM OBJECT PIECE/CH#/SEL) (* ; "Edited 26-Nov-2024 03:52 by rmk") (* ; "Edited 20-Oct-2024 12:08 by rmk") @@ -2248,6 +2198,20 @@ SPFIRSTCHAR _ (CAR FIRST) SPLASTCHAR _ (CAR LAST]) +(\TEDIT.PARACHNOS + [LAMBDA (SEL/FIRSTCHAR LASTCHAR TEXTOBJ) (* ; "Edited 7-Mar-2025 23:39 by rmk") + (* ; "Edited 30-May-91 21:06 by jds") + + (* ;; "Returns a list containing the last character number (EOL?) for each paragraph that includes characters from SEL/FIRSTCHAR to LASTCHAR.") + + (CL:WHEN (type? SELECTION SEL/FIRSTCHAR) + (SETQ LASTCHAR (FGETSEL SEL/FIRSTCHAR CHLAST)) + (SETQ SEL/FIRSTCHAR (FGETSEL SEL/FIRSTCHAR CH#))) + (LET [PARAS (FIRSTPARA (\TEDIT.PARA.LAST TEXTOBJ SEL/FIRSTCHAR)) + (LASTPARAPC (CDR (\TEDIT.PARA.LAST TEXTOBJ LASTCHAR] + (for PC inpieces (CDR FIRSTPARA) as CHNO from (CAR FIRSTPARA) by (PLEN PC) + when (PPARALAST PC) collect CHNO repeatuntil (EQ PC LASTPARAPC]) + (\TEDIT.PARA.FIRST [LAMBDA (TEXTOBJ CHNO PROTECTEDNOTOK) (* ; "Edited 30-Jan-2025 12:02 by rmk") (* ; "Edited 11-Jan-2025 00:08 by rmk") @@ -2334,7 +2298,8 @@ (DEFINEQ (\TEDIT.WORD.FIRST - [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 20-Dec-2024 07:51 by rmk") + [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 13-Mar-2025 21:15 by rmk") + (* ; "Edited 20-Dec-2024 07:51 by rmk") (* ; "Edited 29-Apr-2024 10:56 by rmk") (* ; "Edited 20-Mar-2024 10:54 by rmk") (* ; "Edited 17-Mar-2024 12:05 by rmk") @@ -2353,65 +2318,41 @@ (if (ILEQ CHNO 1) then 1 - else (PROG ((TEXTOBJ (TEXTOBJ! (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM))) - READSA CH) - (SETQ READSA (fetch READSA of (OR WORDBOUNDTABLE (FGETTOBJ TEXTOBJ TXTWTBL) - TEDIT.WORDBOUND.READTABLE))) - (SETQ CHNO (IMIN CHNO (FGETTOBJ TEXTOBJ TEXTLEN))) - (\TEDIT.TEXTSETFILEPTR TSTREAM (SUB1 CHNO)) (* ; "Fileptrs are one back") - (SETQ CH (BIN TSTREAM)) (* ; "The char at CHNO") - (CL:WHEN (AND (CHARCODEP CH) - (EQ PUNCT.TTC (\SYNCODE READSA CH))) - - (* ;; "Started on a punct, return") - - (RETURN CHNO)) + else (LET ((TEXTOBJ (TEXTOBJ! (GETTSTR TSTREAM TEXTOBJ))) + READSA CH) + (SETQ READSA (fetch READSA of (OR WORDBOUNDTABLE (FGETTOBJ TEXTOBJ TXTWTBL) + TEDIT.WORDBOUND.READTABLE))) + (SETQ CHNO (IMIN CHNO (FGETTOBJ TEXTOBJ TEXTLEN))) + (\TEDIT.TEXTSETFILEPTR TSTREAM (SUB1 CHNO)) (* ; "Fileptrs are one back") + (SETQ CH (BIN TSTREAM)) (* ; "The char at CHNO") - (* ;; "Skip over any preceding whitespace characters. We don't know when the stream's piece might have changed, so test at each iteration.") + (* ;; "Skip over any preceding whitespace characters. .") - (for old CHNO from CHNO to 1 by -1 while (AND (CHARCODEP CH) - (EQ WHITESPACE.TTC (\SYNCODE READSA CH - ))) - until (fetch CLPROTECTED of (PLOOKS (fetch (TEXTSTREAM PIECE) of TSTREAM))) - do (SETQ CH (\BACKBIN TSTREAM))) + (for old CHNO from CHNO to 1 by -1 while (AND (CHARCODEP CH) + (EQ (\TEDIT.TTC WHITESPACE) + (\SYNCODE READSA CH))) + until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED) do (SETQ CH (\BACKBIN TSTREAM))) - (* ;; "") + (* ;; "") - (* ;; "CH is either TEXT, PUNCT, or image object.") + (* ;; "We've reached the first unprotected non-white character, and CHNO is the number of the character BEFORE that one. Continue backwards through the text characters until reaching the first preceding non-text.") - (CL:WHEN (AND (CHARCODEP CH) - (EQ PUNCT.TTC (\SYNCODE READSA CH))) - - (* ;; "Punct before whitespace, look no further, punct is our guy.") - - (RETURN (ADD1 CHNO))) - - (* ;; "") - - (* ;; "We've reached the first unprotected non-separator character, and CHNO is the number of the character BEFORE that one. Continue backwards through the text characters until reaching the first preceding non-text.") - - (for old CHNO from CHNO to 1 by -1 - until [OR (CL:IF (CHARCODEP CH) - (NEQ TEXT.TTC (\SYNCODE READSA CH)) - T) - (fetch CLPROTECTED of (PLOOKS (fetch (TEXTSTREAM PIECE) of TSTREAM] - do (SETQ CH (\BACKBIN TSTREAM))) - (CL:WHEN (AND (CHARCODEP CH) - (EQ PUNCT.TTC (\SYNCODE READSA CH))) - - (* ;; - "We ended on a punct before some text, CHNO is one before the punct, get back to text") + (for old CHNO from CHNO to 1 by -1 while (AND (CHARCODEP CH) + (EQ (\TEDIT.TTC TEXT) + (\SYNCODE READSA CH))) + until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED) do (SETQ CH (\BACKBIN TSTREAM))) - (RETURN (IPLUS CHNO 2))) + (* ;; "We've reached the first non-text character before the word, and CHNO is the character number of the character BEFORE it, or 0 if you hit the front of the document. We add 1 for that, plus 1 to convert fileptr to charno.") - (* ;; "We've now reached the first non-text character before the word, and CHNO is the character number of the character BEFORE it, or 0 if you hit the front of the document. We add 1 for that, plus 1 to convert fileptr to charno.") - - (RETURN (IPLUS CHNO (CL:IF (EQ CHNO 0) - 1 - 2)]) + (IPLUS CHNO (CL:IF (EQ CHNO 0) + 1 + 2)]) (\TEDIT.WORD.LAST - [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 29-Apr-2024 10:57 by rmk") + [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 13-Mar-2025 21:06 by rmk") + (* ; "Edited 29-Apr-2024 10:57 by rmk") (* ; "Edited 20-Mar-2024 10:54 by rmk") (* ; "Edited 17-Mar-2024 12:05 by rmk") (* ; "Edited 25-Dec-2023 18:38 by rmk") @@ -2448,15 +2389,16 @@ (* ;; "Skip over any following separator characters. Objects are consider to be text characters--don't skip over them. We don't know when the stream's piece might have changed, so test at each iteration.") (for old CHNO from CHNO to (SUB1 TEXTLEN) while (AND (CHARCODEP CH) - (EQ WHITESPACE.TTC (\SYNCODE READSA - CH))) - until (fetch CLPROTECTED of (PLOOKS (fetch (TEXTSTREAM PIECE) of TSTREAM))) - do (SETQ CH (BIN TSTREAM))) + (EQ (\TEDIT.TTC WHITESPACE) + (\SYNCODE READSA CH))) + until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED) do (SETQ CH (BIN TSTREAM))) (* ;; "CH is either TEXT, PUNCT, or image object.") (CL:WHEN (AND (CHARCODEP CH) - (EQ PUNCT.TTC (\SYNCODE READSA CH))) + (EQ (\TEDIT.TTC PUNCT) + (\SYNCODE READSA CH))) (* ;; "Punct after whitespace, look no further, punct is our guy.") @@ -2464,34 +2406,23 @@ (* ;; "We reached the last unprotected non-separator character, and CHNO is the number of the character AFTER that one. Continue forwards through the text characters until reaching the first following separator.") - (for old CHNO from CHNO to (SUB1 TEXTLEN) - until [OR (CL:IF (CHARCODEP CH) - (NEQ TEXT.TTC (\SYNCODE READSA CH)) - T) - (fetch CLPROTECTED of (PLOOKS (fetch (TEXTSTREAM PIECE) of TSTREAM] - do (SETQ CH (BIN TSTREAM))) - (CL:WHEN (AND (CHARCODEP CH) - (EQ PUNCT.TTC (\SYNCODE READSA CH))) - - (* ;; - "We ended on a punct after some text, CHNO is one after the punct, get back to text") + (for old CHNO from CHNO to (SUB1 TEXTLEN) while (AND (CHARCODEP CH) + (EQ (\TEDIT.TTC TEXT) + (\SYNCODE READSA CH))) + until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED) do (SETQ CH (BIN TSTREAM))) - (RETURN (SUB1 CHNO))) + (* ;; "CHNO is the number of the first non-TEXT character") - (* ;; "We've now reached the first separator character after the word, and CHNO is the character number of the character after it, or TEXTLEN if we ran off the end..") + (RETURN (if (IGEQ CHNO TEXTLEN) + then + (* ;; + "The last character of the word is the last character of the document.") - (RETURN (CL:IF (IGEQ CHNO TEXTLEN) - TEXTLEN - (SUB1 CHNO))]) + TEXTLEN + else (SUB1 CHNO]) ) - - -(* ;; -"Would be nice to just do (DOFILESLOAD (CDR TEDITFILES)). But the order for exports.all and the order for loading have to be aligned." -) - - (FILESLOAD TEDIT-FIND TEDIT-HISTORY TEDIT-FILE TEDIT-OLDFILE TEDIT-WINDOW TEDIT-SELECTION TEDIT-TFBRAVO TEDIT-HCPY TEDIT-PAGE TEDIT-BUTTONS TEDIT-MENU TEDIT-FNKEYS) @@ -2500,7 +2431,7 @@ (* ; "TEDIT Support information") -(RPAQQ TEDITSYSTEMDATE "25-Feb-2025 15:07:03") +(RPAQQ TEDITSYSTEMDATE "16-Mar-2025 21:48:26") @@ -2510,27 +2441,26 @@ (ADDTOVAR PRINTFILETYPES (TEDIT (TEST \TEDIT.GET.TRAILER) (EXTENSION (TEDIT)))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4651 6994 (MAKE-TEDIT-EXPORTS.ALL 4661 . 5207) (UPDATE-TEDIT 5209 . 6223) (EDIT-TEDIT -6225 . 6992)) (8688 36922 (TEDIT 8698 . 11276) (TEXTSTREAM 11278 . 13198) (TEXTSTREAMP 13200 . 13584) -(TEDITMENUP 13586 . 14352) (COERCETEXTSTREAM 14354 . 18565) (TEDIT.CONCAT 18567 . 21873) (TEDITSTRING -21875 . 22789) (TEDIT-SEE 22791 . 23350) (TEDIT.COPY 23352 . 25497) (TEDIT.DELETE 25499 . 26751) ( -TEDIT.INSERT 26753 . 29711) (TEDIT.TERPRI 29713 . 30827) (TEDIT.KILL 30829 . 31745) (TEDIT.QUIT 31747 - . 33113) (TEDIT.MOVE 33115 . 34003) (TEDIT.STRINGWIDTH 34005 . 34676) (TEDIT.CHARWIDTH 34678 . 36920) -) (36923 38864 (TEXTOBJ 36933 . 37398) (COERCETEXTOBJ 37400 . 38862)) (40264 41320 (TDRIBBLE 40274 . -41318)) (41361 56908 (TEDIT.INSERT.OBJECT 41371 . 46212) (TEDIT.EDIT.OBJECT 46214 . 48555) ( -TEDIT.FIND.OBJECT 48557 . 50065) (TEDIT.FIND.OBJECT.BACKWARD 50067 . 51994) (TEDIT.OBJECT.CHANGED -51996 . 54863) (TEDIT.MAP.OBJECTS 54865 . 56436) (\TEDIT.FIRST.OBJPIECE 56438 . 56671) ( -\TEDIT.NEXT.OBJPIECE 56673 . 56906)) (56931 64374 (\TEDIT.CONCAT.PAGEFRAMES 56941 . 62008) ( -\TEDIT.GET.PAGE.HEADINGS 62010 . 63039) (\TEDIT.CONCAT.INSTALL.HEADINGS 63041 . 64372)) (64375 67804 ( -\TEDIT.MOVE.MSG 64385 . 66466) (\TEDIT.READONLY 66468 . 67802)) (67805 82641 (TEDIT.NCHARS 67815 . -68188) (TEDIT.RPLCHARCODE 68190 . 76205) (TEDIT.NTHCHARCODE 76207 . 78564) (TEDIT.NTHCHAR 78566 . -78824) (\TEDIT.PIECE.NTHCHARCODE 78826 . 82639)) (82687 137139 (\TEDIT1 82697 . 84774) (\TEDIT.INSERT -84776 . 90753) (\TEDIT.MOVE 90755 . 98105) (\TEDIT.COPY 98107 . 102085) (\TEDIT.REPLACE.SELPIECES -102087 . 106067) (\TEDIT.INSERT.SELPIECES 106069 . 108954) (\TEDIT.RESTARTFN 108956 . 111461) ( -\TEDIT.CHARDELETE 111463 . 114290) (\TEDIT.COPYPIECE 114292 . 119140) (\TEDIT.APPLY.OBJFN 119142 . -122339) (\TEDIT.DELETE 122341 . 127269) (\TEDIT.DIFFUSE.PARALOOKS 127271 . 129542) (\TEDIT.WORDDELETE -129544 . 131100) (\TEDIT.WORDDELETE.FORWARD 131102 . 132774) (\TEDIT.FINISHEDIT? 132776 . 137137)) ( -137140 137799 (\TEDIT.THELP 137150 . 137797)) (137833 145723 (\TEDIT.PARAPIECES 137843 . 139817) ( -\TEDIT.PARA.FIRST 139819 . 142686) (\TEDIT.PARA.LAST 142688 . 145721)) (145724 154689 ( -\TEDIT.WORD.FIRST 145734 . 150390) (\TEDIT.WORD.LAST 150392 . 154687))))) + (FILEMAP (NIL (4820 7214 (MAKE-TEDIT-EXPORTS.ALL 4830 . 5376) (UPDATE-TEDIT 5378 . 6307) (EDIT-TEDIT +6309 . 7212)) (8722 36188 (TEDIT 8732 . 11310) (TEXTSTREAM 11312 . 13232) (TEXTSTREAMP 13234 . 13618) +(COERCETEXTSTREAM 13620 . 17831) (TEDIT.CONCAT 17833 . 21139) (TEDITSTRING 21141 . 22055) (TEDIT-SEE +22057 . 22616) (TEDIT.COPY 22618 . 24763) (TEDIT.DELETE 24765 . 26017) (TEDIT.INSERT 26019 . 28977) ( +TEDIT.TERPRI 28979 . 30093) (TEDIT.KILL 30095 . 31011) (TEDIT.QUIT 31013 . 32379) (TEDIT.MOVE 32381 . +33269) (TEDIT.STRINGWIDTH 33271 . 33942) (TEDIT.CHARWIDTH 33944 . 36186)) (36189 38130 (TEXTOBJ 36199 + . 36664) (COERCETEXTOBJ 36666 . 38128)) (39530 41300 (TDRIBBLE 39540 . 41298)) (41341 53449 ( +TEDIT.INSERT.OBJECT 41351 . 46192) (TEDIT.EDIT.OBJECT 46194 . 48535) (TEDIT.OBJECT.CHANGED 48537 . +51404) (TEDIT.MAP.OBJECTS 51406 . 52977) (\TEDIT.FIRST.OBJPIECE 52979 . 53212) (\TEDIT.NEXT.OBJPIECE +53214 . 53447)) (53472 60915 (\TEDIT.CONCAT.PAGEFRAMES 53482 . 58549) (\TEDIT.GET.PAGE.HEADINGS 58551 + . 59580) (\TEDIT.CONCAT.INSTALL.HEADINGS 59582 . 60913)) (60916 64345 (\TEDIT.MOVE.MSG 60926 . 63007) + (\TEDIT.READONLY 63009 . 64343)) (64346 79182 (TEDIT.NCHARS 64356 . 64729) (TEDIT.RPLCHARCODE 64731 + . 72746) (TEDIT.NTHCHARCODE 72748 . 75105) (TEDIT.NTHCHAR 75107 . 75365) (\TEDIT.PIECE.NTHCHARCODE +75367 . 79180)) (79228 133680 (\TEDIT1 79238 . 81315) (\TEDIT.INSERT 81317 . 87294) (\TEDIT.MOVE 87296 + . 94646) (\TEDIT.COPY 94648 . 98626) (\TEDIT.REPLACE.SELPIECES 98628 . 102608) ( +\TEDIT.INSERT.SELPIECES 102610 . 105495) (\TEDIT.RESTARTFN 105497 . 108002) (\TEDIT.CHARDELETE 108004 + . 110831) (\TEDIT.COPYPIECE 110833 . 115681) (\TEDIT.APPLY.OBJFN 115683 . 118880) (\TEDIT.DELETE +118882 . 123810) (\TEDIT.DIFFUSE.PARALOOKS 123812 . 126083) (\TEDIT.WORDDELETE 126085 . 127641) ( +\TEDIT.WORDDELETE.FORWARD 127643 . 129315) (\TEDIT.FINISHEDIT? 129317 . 133678)) (133681 134340 ( +\TEDIT.THELP 133691 . 134338)) (134374 143158 (\TEDIT.PARAPIECES 134384 . 136358) (\TEDIT.PARACHNOS +136360 . 137252) (\TEDIT.PARA.FIRST 137254 . 140121) (\TEDIT.PARA.LAST 140123 . 143156)) (143159 +151198 (\TEDIT.WORD.FIRST 143169 . 146925) (\TEDIT.WORD.LAST 146927 . 151196))))) STOP diff --git a/library/tedit/TEDIT-ABBREV b/library/tedit/TEDIT-ABBREV index b7c652c4e..5ec2cb6e1 100644 --- a/library/tedit/TEDIT-ABBREV +++ b/library/tedit/TEDIT-ABBREV @@ -1,98 +1,99 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "31-Oct-2024 17:53:21" {WMEDLEY}tedit>TEDIT-ABBREV.;9 10946 +(FILECREATED "11-Mar-2025 23:30:40" {WMEDLEY}tedit>TEDIT-ABBREV.;12 9610 :EDIT-BY rmk :CHANGES-TO (FNS \TEDIT.ABBREV.EXPAND) - :PREVIOUS-DATE "17-Mar-2024 18:15:40" {WMEDLEY}tedit>TEDIT-ABBREV.;8) + :PREVIOUS-DATE "31-Oct-2024 17:53:21" {WMEDLEY}tedit>TEDIT-ABBREV.;9) (PRETTYCOMPRINT TEDIT-ABBREVCOMS) -(RPAQQ TEDIT-ABBREVCOMS [(FNS \TEDIT.ABBREV.EXPAND \TEDIT.EXPAND.DATE \TEDIT.TRY.ABBREV) - (GLOBALVARS TEDIT.ABBREVS) - (INITVARS (TEDIT.ABBREVS '(("b" . "357,146") - ("n" . "357,44") - ("m" . "357,45") - ("T" . "357,57") - ("d" . "357,60") - ("D" . "357,61") - ("s" . "0,247") - ("'" . "0,271") - ("`" . "0,251") - ("%"" . "0,252") - ("~" . "0,272") - ("1/4" . "0,274") - ("1/2" . "0,275") - ("3/4" . "0,276") - ("1/3" . "357,375") - ("2/3" . "357,376") - ("c" . "0,323") - ("c/o" . "357,100") - ("%%" . "357,100") - ("->" . "0,256") - ("ra" . "0,256") - ("|" . "0,257") - ("da" . "0,257") - ("^" . "0,255") - ("ua" . "0,255") - ("<-" . "0,254") - ("la" . "0,254") - ("_" . "0,254") - ("L" . "0,243") - ("o" . "0,260") - ("Y" . "0,245") - ("+" . "0,261") - ("x" . "0,264") - ("/" . "0,270") - ("=" . "357,121") - ("p" . "0,266") - ("r" . "0,322") - ("t" . "0,324") - ("tm" . "0,324") - ("box" . "42,42") - ("cbox" . "42,61") - ("-" . "357,43") - ("=" . "357,42") - (" " . "357,41") - ("DATE" . \TEDIT.EXPAND.DATE) - (">>DATE<<" . \TEDIT.EXPAND.DATE]) +(RPAQQ TEDIT-ABBREVCOMS + [(FNS \TEDIT.ABBREV.EXPAND \TEDIT.EXPAND.DATE \TEDIT.TRY.ABBREV) + (GLOBALVARS TEDIT.ABBREVS) + (INITVARS (TEDIT.ABBREVS '(("b" . "357,146") + ("n" . "357,44") + ("m" . "357,45") + ("T" . "357,57") + ("d" . "357,60") + ("D" . "357,61") + ("s" . "0,247") + ("'" . "0,271") + ("`" . "0,251") + ("%"" . "0,252") + ("~" . "0,272") + ("1/4" . "0,274") + ("1/2" . "0,275") + ("3/4" . "0,276") + ("1/3" . "357,375") + ("2/3" . "357,376") + ("c" . "0,323") + ("c/o" . "357,100") + ("%%" . "357,100") + ("->" . "0,256") + ("ra" . "0,256") + ("|" . "0,257") + ("da" . "0,257") + ("^" . "0,255") + ("ua" . "0,255") + ("<-" . "0,254") + ("la" . "0,254") + ("_" . "0,254") + ("L" . "0,243") + ("o" . "0,260") + ("Y" . "0,245") + ("+" . "0,261") + ("x" . "0,264") + ("/" . "0,270") + ("=" . "357,121") + ("p" . "0,266") + ("r" . "0,322") + ("t" . "0,324") + ("tm" . "0,324") + ("box" . "42,42") + ("cbox" . "42,61") + ("-" . "357,43") + ("=" . "357,42") + (" " . "357,41") + ("DATE" . \TEDIT.EXPAND.DATE) + (">>DATE<<" . \TEDIT.EXPAND.DATE]) (DEFINEQ (\TEDIT.ABBREV.EXPAND - [LAMBDA (TSTREAM) (* ; "Edited 31-Oct-2024 17:50 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 11-Mar-2025 23:30 by rmk") + (* ; "Edited 31-Oct-2024 17:50 by rmk") (* ; "Edited 17-Mar-2024 12:06 by rmk") (* ; "Edited 17-May-2023 13:31 by rmk") (* ; "Edited 8-Sep-2022 23:53 by rmk") (* ; "Edited 1-Aug-2022 12:04 by rmk") (* ; "Edited 30-May-91 19:27 by jds") (* ; "Expand an abbvreviation") - (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM)) + (PROG ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) SEL CH# CH OLDLOOKS EXPANSION) - (SETQ SEL (fetch (TEXTOBJ SEL) of TEXTOBJ)) + (SETQ SEL (TEXTSEL TEXTOBJ)) (SETQ CH# (SUB1 (TEDIT.GETPOINT TSTREAM SEL))) - [COND - ((ZEROP (GETSEL SEL DCH)) (* ; - "Point Selection, so use the character to the left") - (CL:WHEN (ZEROP CH#) (* ; + (if (ZEROP (GETSEL SEL DCH)) + then (* ; + "Point Selection, use the character to the left") + (CL:WHEN (ZEROP CH#) (* ;  "If we're off the front of the document, don't bother trying.") - (RETURN)) - (\TEDIT.TEXTSETFILEPTR TSTREAM (SUB1 CH#) - CH#) - [SETQ CH (MKSTRING (CHARACTER (BIN TSTREAM] - (TEDIT.SETSEL TSTREAM CH# 1 'RIGHT)) - (T (* ; - "We have a selection that isn't just a caret. Use it.") - (SETQ CH (TEDIT.SEL.AS.STRING TSTREAM] + (RETURN)) + (SETQ CH (TEDIT.NTHCHAR TSTREAM (SUB1 CH#))) + (TEDIT.SETSEL TSTREAM CH# 1 'RIGHT) + else (* ; "Selection isn't just a point") + (SETQ CH (TEDIT.SEL.AS.STRING TSTREAM))) (SETQ EXPANSION (\TEDIT.TRY.ABBREV CH TSTREAM)) (* ; "Find the abbreviation's expansion --first try it as-is, then try the upper-case version to be safe.") - (CL:WHEN EXPANSION (* ; + (if EXPANSION + then (* ;  "It exists, so insert it where the abbrev used to be") - (SETQ OLDLOOKS (TEDIT.GET.LOOKS TEXTOBJ)) - (TEDIT.DELETE TEXTOBJ SEL) (* ; + (SETQ OLDLOOKS (TEDIT.GET.LOOKS TEXTOBJ)) + (TEDIT.DELETE TEXTOBJ SEL) (* ;  "First, delete the thing being expanded.") - (TEDIT.INSERT TSTREAM EXPANSION SEL OLDLOOKS))]) + (TEDIT.INSERT TSTREAM EXPANSION SEL OLDLOOKS) + else (TEDIT.PROMPTPRINT TSTREAM "No abbreviation to expand" T]) (\TEDIT.EXPAND.DATE [LAMBDA (STREAM CH) (* ; "Edited 23-Feb-88 10:41 by jds") @@ -156,53 +157,54 @@ (GLOBALVARS TEDIT.ABBREVS) ) -(RPAQ? TEDIT.ABBREVS '(("b" . "357,146") - ("n" . "357,44") - ("m" . "357,45") - ("T" . "357,57") - ("d" . "357,60") - ("D" . "357,61") - ("s" . "0,247") - ("'" . "0,271") - ("`" . "0,251") - ("%"" . "0,252") - ("~" . "0,272") - ("1/4" . "0,274") - ("1/2" . "0,275") - ("3/4" . "0,276") - ("1/3" . "357,375") - ("2/3" . "357,376") - ("c" . "0,323") - ("c/o" . "357,100") - ("%%" . "357,100") - ("->" . "0,256") - ("ra" . "0,256") - ("|" . "0,257") - ("da" . "0,257") - ("^" . "0,255") - ("ua" . "0,255") - ("<-" . "0,254") - ("la" . "0,254") - ("_" . "0,254") - ("L" . "0,243") - ("o" . "0,260") - ("Y" . "0,245") - ("+" . "0,261") - ("x" . "0,264") - ("/" . "0,270") - ("=" . "357,121") - ("p" . "0,266") - ("r" . "0,322") - ("t" . "0,324") - ("tm" . "0,324") - ("box" . "42,42") - ("cbox" . "42,61") - ("-" . "357,43") - ("=" . "357,42") - (" " . "357,41") - ("DATE" . \TEDIT.EXPAND.DATE) - (">>DATE<<" . \TEDIT.EXPAND.DATE))) +(RPAQ? TEDIT.ABBREVS + '(("b" . "357,146") + ("n" . "357,44") + ("m" . "357,45") + ("T" . "357,57") + ("d" . "357,60") + ("D" . "357,61") + ("s" . "0,247") + ("'" . "0,271") + ("`" . "0,251") + ("%"" . "0,252") + ("~" . "0,272") + ("1/4" . "0,274") + ("1/2" . "0,275") + ("3/4" . "0,276") + ("1/3" . "357,375") + ("2/3" . "357,376") + ("c" . "0,323") + ("c/o" . "357,100") + ("%%" . "357,100") + ("->" . "0,256") + ("ra" . "0,256") + ("|" . "0,257") + ("da" . "0,257") + ("^" . "0,255") + ("ua" . "0,255") + ("<-" . "0,254") + ("la" . "0,254") + ("_" . "0,254") + ("L" . "0,243") + ("o" . "0,260") + ("Y" . "0,245") + ("+" . "0,261") + ("x" . "0,264") + ("/" . "0,270") + ("=" . "357,121") + ("p" . "0,266") + ("r" . "0,322") + ("t" . "0,324") + ("tm" . "0,324") + ("box" . "42,42") + ("cbox" . "42,61") + ("-" . "357,43") + ("=" . "357,42") + (" " . "357,41") + ("DATE" . \TEDIT.EXPAND.DATE) + (">>DATE<<" . \TEDIT.EXPAND.DATE))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3704 8979 (\TEDIT.ABBREV.EXPAND 3714 . 6194) (\TEDIT.EXPAND.DATE 6196 . 6829) ( -\TEDIT.TRY.ABBREV 6831 . 8977))))) + (FILEMAP (NIL (2913 8266 (\TEDIT.ABBREV.EXPAND 2923 . 5481) (\TEDIT.EXPAND.DATE 5483 . 6116) ( +\TEDIT.TRY.ABBREV 6118 . 8264))))) STOP diff --git a/library/tedit/TEDIT-ABBREV.LCOM b/library/tedit/TEDIT-ABBREV.LCOM index 48001bb52f82985fde7de9621e91b918b5d18675..9eab710f8761045946ee87c2398fda8f56b3d11f 100644 GIT binary patch delta 474 zcmX>h{YQF2xQL;lu5V(Iu91O}se+NQm9c@9iNVBd3w=W)O$9C`6j?(nQ&THrQzeC@ zqSWO4+=9%U)D(r(ih`nIRjbMQjG{3LnRyCIZlOLt3ds8O^z@VzQW8smim@4JVyL9a zrQzo3KNkcqJU~E)J>BW88z4qjT9`+3=Jj+FuI8w8|wNemw+5@qF`ulWom3? zWT>RTHL+HMk!x}RqsZh}j6sa^C)+aV)m!_qGH=y);A8-T=>6UfTp&hl$|ipgu+Sb4 zPq4^-2VYMg9+2DyN3g`Eb6!~=HmiF9bxS*VW#0s=+6`o-gA_qjZi1+Mlp)}d4-(Df z29X&83>t=}rV2psc!t>N1qAu~2809zdHRJY7#dqD#JEMd2Kfg7*+vj0dcm$C!LFci zvw#Ztg?Ko7I0h+Lnol-ku4OVZpS+b>OF_ZV#8N@YFJB=s2^a}wnTaKt`FRQ@`JiY> N%u7+)e4qIxCjcKBb%X!_ delta 433 zcmew(eL{LdxQK# zj(UnhW}bqQTd0qZ0F=j9>m>kcfS8wCT%DmOUfs+9UqW60{aDf=HDO+Maz(RXGJi#LS9eh1~ctCRd zH#mZ2Hl6j#`mov53#eVw!7KZw7dKeeK>;iaCUyhG(?OzOjT;t2^j*miV9+o$HBpFh zi*oe|@()ljG%;5IddxFKFW5CC*wshD(AZeP*E={Q$kWeV!O+M;!P&zx$k92(H3-Nv oP>6vj4sneDsty4KO+ZMHf~Cb|FXmb%6Qju|nYA_xv%KU40FR((v;Y7A diff --git a/library/tedit/TEDIT-BUTTONS b/library/tedit/TEDIT-BUTTONS index 91ffd5e90..8eccb65e1 100644 --- a/library/tedit/TEDIT-BUTTONS +++ b/library/tedit/TEDIT-BUTTONS @@ -1,13 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "16-Feb-2025 15:02:06" {WMEDLEY}tedit>TEDIT-BUTTONS.;218 125051 +(FILECREATED "14-Mar-2025 15:29:51" {WMEDLEY}tedit>TEDIT-BUTTONS.;219 124275 :EDIT-BY rmk - :CHANGES-TO (FNS MB.FIELD.CREATE MB.SPEC.REMAINDER MB.NWAY.SIZEFN MB.NWAY.CREATE) - (VARS TEDIT-BUTTONSCOMS) + :CHANGES-TO (VARS TEDIT-BUTTONSCOMS) - :PREVIOUS-DATE "16-Feb-2025 11:10:40" {WMEDLEY}tedit>TEDIT-BUTTONS.;214) + :PREVIOUS-DATE "16-Feb-2025 15:02:06" {MEDLEY}tedit>TEDIT-BUTTONS.;52) (PRETTYCOMPRINT TEDIT-BUTTONSCOMS) @@ -20,7 +19,7 @@ (COMS (* ;  "Generic functions for the various types of buttons.") (RECORDS MBARG) - (FNS MB.ADD MB.DELETE MB.GET MB.GET.MBARG TEDITMENU.STREAM TEDIT.BACKTOMAIN)) + (FNS MB.ADD MB.DELETE MB.GET MB.GET.MBARG TEDIT.BACKTOMAIN)) [COMS (* ; "Simple Menu Button support") (FNS MB.BUTTONEVENTINFN MB.DISPLAYFN MB.SETIMAGE MB.SIZEFN MB.WHENOPERATEDONFN MB.COPYFN MB.GETFN MB.PUTFN MB.SHOWSELFN MB.CREATE MB.CHANGENAME MB.INIT @@ -289,17 +288,6 @@ ARGENDPC _ ENDPC ARGIDPC _ IDPC]) -(TEDITMENU.STREAM - [LAMBDA (TSTREAM) (* ; "Edited 29-Sep-2024 15:29 by rmk") - (* ; "Edited 28-Aug-2024 15:48 by rmk") - (* ; "Edited 10-Apr-2023 09:53 by rmk") - (* jds "13-Aug-84 14:10") - - (* ;; "returns the textstream of the teditmenu attached to this stream if any") - - (for W in (ATTACHEDWINDOWS (\TEDIT.MAINW TSTREAM)) when (TEDITMENUP W "TEdit Menu") - do (RETURN (TEXTSTREAM W]) - (TEDIT.BACKTOMAIN [LAMBDA (MENUSTREAM) (* ; "Edited 20-Oct-2024 10:02 by rmk") (* ; "Edited 25-Aug-2024 09:17 by rmk") @@ -1970,26 +1958,25 @@ (MB.FIELD.INIT) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3338 19860 (MB.ADD 3348 . 9777) (MB.DELETE 9779 . 10153) (MB.GET 10155 . 16925) ( -MB.GET.MBARG 16927 . 18596) (TEDITMENU.STREAM 18598 . 19265) (TEDIT.BACKTOMAIN 19267 . 19858)) (19904 -39766 (MB.BUTTONEVENTINFN 19914 . 21408) (MB.DISPLAYFN 21410 . 23469) (MB.SETIMAGE 23471 . 24639) ( -MB.SIZEFN 24641 . 26189) (MB.WHENOPERATEDONFN 26191 . 28140) (MB.COPYFN 28142 . 28600) (MB.GETFN 28602 - . 29563) (MB.PUTFN 29565 . 30665) (MB.SHOWSELFN 30667 . 32176) (MB.CREATE 32178 . 36201) ( -MB.CHANGENAME 36203 . 36685) (MB.INIT 36687 . 38148) (MB.TRACK.UNTIL 38150 . 38845) (MB.DON'T 38847 . -39143) (MB.SPEC.REMAINDER 39145 . 39764)) (39928 49918 (MB.3STATE.CREATE 39938 . 40802) ( -MB.3STATE.DISPLAYFN 40804 . 41790) (MB.3STATE.SHOWSELFN 41792 . 44103) (MB.3STATE.INIT 44105 . 45516) -(MB.3STATE.SETSTATEFN 45518 . 46176) (MB.3STATE.BUTTONEVENTINFN 46178 . 49916)) (50073 80741 ( -MB.NWAY.CREATE 50083 . 56125) (MB.NWAY.DISPLAYFN 56127 . 56990) (MB.NWAY.WHENOPERATEDONFN 56992 . -59182) (MB.NWAY.SIZEFN 59184 . 63120) (MB.NWAY.SELECT 63122 . 66692) (MB.NWAY.BUTTONEVENTINFN 66694 . -69906) (MB.NWAY.NEWMENUBUTTON 69908 . 70620) (MB.NWAY.COPYFN 70622 . 71589) (MB.NWAY.INIT 71591 . -73082) (MB.NWAY.ARRANGEBUTTONS 73084 . 75055) (MB.NWAY.ADDITEM 75057 . 78919) (MB.NWAY.FINDSUBOBJ -78921 . 79435) (MB.NWAY.SETSTATEFN 79437 . 80739)) (80820 92707 (MB.TOGGLE.CREATE 80830 . 81825) ( -MB.TOGGLE.DISPLAYFN 81827 . 83310) (MB.TOGGLE.INIT 83312 . 85111) (MB.SET.TOGGLE 85113 . 86314) ( -MB.TOGGLE.SETSTATEFN 86316 . 87156) (MB.TOGGLE.BUTTONEVENTINFN 87158 . 91362) ( -MB.TOGGLE.WHENOPERATEDONFN 91364 . 92705)) (92788 124972 (MB.FIELD.CREATE 92798 . 98249) ( -MB.FIELD.DISPLAYFN 98251 . 99042) (MB.FIELD.IMAGEBOXFN 99044 . 100526) (MB.FIELD.PREFIXCREATE 100528 - . 104464) (MB.FIELD.SUFFIXCREATE 104466 . 106126) (MB.FIELD.INIT 106128 . 107895) ( -MB.FIELD.WHENOPERATEDONFN 107897 . 109168) (MB.FIELD.GETSTATEFN 109170 . 113104) (MB.FIELD.SETSTATEFN -113106 . 117801) (MB.FIELD.BUTTONEVENTINFN 117803 . 120108) (MB.FIELD.SIZEFN 120110 . 120350) ( -MB.FIELD.INSURETYPE 120352 . 124970))))) + (FILEMAP (NIL (3231 19084 (MB.ADD 3241 . 9670) (MB.DELETE 9672 . 10046) (MB.GET 10048 . 16818) ( +MB.GET.MBARG 16820 . 18489) (TEDIT.BACKTOMAIN 18491 . 19082)) (19128 38990 (MB.BUTTONEVENTINFN 19138 + . 20632) (MB.DISPLAYFN 20634 . 22693) (MB.SETIMAGE 22695 . 23863) (MB.SIZEFN 23865 . 25413) ( +MB.WHENOPERATEDONFN 25415 . 27364) (MB.COPYFN 27366 . 27824) (MB.GETFN 27826 . 28787) (MB.PUTFN 28789 + . 29889) (MB.SHOWSELFN 29891 . 31400) (MB.CREATE 31402 . 35425) (MB.CHANGENAME 35427 . 35909) ( +MB.INIT 35911 . 37372) (MB.TRACK.UNTIL 37374 . 38069) (MB.DON'T 38071 . 38367) (MB.SPEC.REMAINDER +38369 . 38988)) (39152 49142 (MB.3STATE.CREATE 39162 . 40026) (MB.3STATE.DISPLAYFN 40028 . 41014) ( +MB.3STATE.SHOWSELFN 41016 . 43327) (MB.3STATE.INIT 43329 . 44740) (MB.3STATE.SETSTATEFN 44742 . 45400) + (MB.3STATE.BUTTONEVENTINFN 45402 . 49140)) (49297 79965 (MB.NWAY.CREATE 49307 . 55349) ( +MB.NWAY.DISPLAYFN 55351 . 56214) (MB.NWAY.WHENOPERATEDONFN 56216 . 58406) (MB.NWAY.SIZEFN 58408 . +62344) (MB.NWAY.SELECT 62346 . 65916) (MB.NWAY.BUTTONEVENTINFN 65918 . 69130) (MB.NWAY.NEWMENUBUTTON +69132 . 69844) (MB.NWAY.COPYFN 69846 . 70813) (MB.NWAY.INIT 70815 . 72306) (MB.NWAY.ARRANGEBUTTONS +72308 . 74279) (MB.NWAY.ADDITEM 74281 . 78143) (MB.NWAY.FINDSUBOBJ 78145 . 78659) (MB.NWAY.SETSTATEFN +78661 . 79963)) (80044 91931 (MB.TOGGLE.CREATE 80054 . 81049) (MB.TOGGLE.DISPLAYFN 81051 . 82534) ( +MB.TOGGLE.INIT 82536 . 84335) (MB.SET.TOGGLE 84337 . 85538) (MB.TOGGLE.SETSTATEFN 85540 . 86380) ( +MB.TOGGLE.BUTTONEVENTINFN 86382 . 90586) (MB.TOGGLE.WHENOPERATEDONFN 90588 . 91929)) (92012 124196 ( +MB.FIELD.CREATE 92022 . 97473) (MB.FIELD.DISPLAYFN 97475 . 98266) (MB.FIELD.IMAGEBOXFN 98268 . 99750) +(MB.FIELD.PREFIXCREATE 99752 . 103688) (MB.FIELD.SUFFIXCREATE 103690 . 105350) (MB.FIELD.INIT 105352 + . 107119) (MB.FIELD.WHENOPERATEDONFN 107121 . 108392) (MB.FIELD.GETSTATEFN 108394 . 112328) ( +MB.FIELD.SETSTATEFN 112330 . 117025) (MB.FIELD.BUTTONEVENTINFN 117027 . 119332) (MB.FIELD.SIZEFN +119334 . 119574) (MB.FIELD.INSURETYPE 119576 . 124194))))) STOP diff --git a/library/tedit/TEDIT-BUTTONS.LCOM b/library/tedit/TEDIT-BUTTONS.LCOM index edd1a6e0fa0657154113d42d542b0b23cd25e735..fae2ce5f0c80b8385dbd8ed21875ed81b75fea4c 100644 GIT binary patch delta 281 zcmdlrg=yj>rU?e-EHaWFM4@(--big`6 z8bRf8@7<_U07=I4CMNnG!B~dFVf^W&Kj)dejWxq$w6WCwRg;FS-@LnvQe~gjy~uRS#g;?}0>2 z#|YljsKjcZ*g^Dyi*rVGYN{di4L7i8m<+DAvNPxcC`}`bKuXR;^coY4$SxY67scJl zA8{`?@@ddeBgPB*K&*es^OoOp1Oic&i6 z+^LsyGVLG#1ZAfJjJ6*$Utedit>TEDIT-CHAT.;16 12363 +(FILECREATED "11-Mar-2025 15:41:08" {WMEDLEY}tedit>TEDIT-CHAT.;17 12449 :EDIT-BY rmk :CHANGES-TO (FNS TEDITCHAT.CHARFN) - :PREVIOUS-DATE " 2-May-2024 18:09:26" {WMEDLEY}tedit>TEDIT-CHAT.;15) + :PREVIOUS-DATE "24-Jun-2024 00:05:09" {WMEDLEY}tedit>TEDIT-CHAT.;16) (PRETTYCOMPRINT TEDIT-CHATCOMS) @@ -70,7 +70,8 @@ (replace (CHAT.STATE HELD) of STATE with NIL]) (TEDITCHAT.CHARFN - [LAMBDA (CH CHAT.STATE) (* ; "Edited 24-Jun-2024 00:04 by rmk") + [LAMBDA (CH CHAT.STATE) (* ; "Edited 11-Mar-2025 15:40 by rmk") + (* ; "Edited 24-Jun-2024 00:04 by rmk") (* ; "Edited 2-May-2024 18:09 by rmk") (* ; "Edited 22-Dec-2023 23:57 by rmk") (* ; "Edited 18-Mar-2023 20:08 by rmk") @@ -79,7 +80,7 @@ (TEXTOBJ (TEXTOBJ TSTREAM))) (\CARET.DOWN (FGETTOBJ TEXTOBJ DS)) (SELCHARQ CH - (BS (\TEDIT.CHARDELETE TSTREAM (FGETTOBJ TEXTOBJ SEL))) + (BS (\TEDIT.CHARDELETE TSTREAM)) (LF NIL) (BOUT TSTREAM CH]) ) @@ -213,6 +214,6 @@ CHATDECLS) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (886 4544 (TEDITSTREAM.INIT 896 . 1823) (TEDITCHAT.MENUFN 1825 . 3661) (TEDITCHAT.CHARFN - 3663 . 4542)) (4591 11475 (TEDIT.DISPLAYTEXT 4601 . 11473))))) + (FILEMAP (NIL (886 4630 (TEDITSTREAM.INIT 896 . 1823) (TEDITCHAT.MENUFN 1825 . 3661) (TEDITCHAT.CHARFN + 3663 . 4628)) (4677 11561 (TEDIT.DISPLAYTEXT 4687 . 11559))))) STOP diff --git a/library/tedit/TEDIT-CHAT.LCOM b/library/tedit/TEDIT-CHAT.LCOM index 795bc5b740ffc8ddc7967f340212f059b640c134..8d82ab38d6b52ee9c43c079c7fe7e105e0f82814 100644 GIT binary patch delta 237 zcmZ3eHBW0oxQL;lu5V(Iu91O}se+-Ym5HI1fyKmZb4hbe1ui8+1B9fJft8Vwm8s#x z-3CF(;(B^|N(w27C8;UcHJB@Da%s4E`nWm=xjKfpx+o}NvvRU6qdL2}f}xR#iRI*M zMkf&?6J4*;JdnFg6buZk3{0&IEGHji)L=B*{EAVSh0${IKUP)c>H9r68Gt|_hwH<{ c3;_=ZE-;Tl!_-8<$v-qi!Ng#*C)*7^0D`YLb^rhX delta 240 zcmbQIwNPt9xQLO7u2*TEu91O}iGqQFm4T_1f#t+(b4fEz1ui8cV}zuUv6X?bm9g=} z-3CF(;(B^|N(w27C8;UcHCQNVa%s4E`nWm=xjKfpx+o}NvvRU6qdL2pf}xSInepUo zMkf&kBVFIbN{G7*Er5=)GBTTdkWqutbn`1lVHQT4$^TeY)n@JY@H{ES#Q+2XIb0tm cW(asVKzIxqrsfJx{-GfXCdQlH*lzFv0B^WC;s5{u diff --git a/library/tedit/TEDIT-COMMAND b/library/tedit/TEDIT-COMMAND index d039fe7a1..e77cc984a 100644 --- a/library/tedit/TEDIT-COMMAND +++ b/library/tedit/TEDIT-COMMAND @@ -1,58 +1,18 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Feb-2025 12:25:49" {WMEDLEY}tedit>TEDIT-COMMAND.;135 49397 +(FILECREATED "16-Mar-2025 14:20:07" {WMEDLEY}tedit>TEDIT-COMMAND.;160 18311 :EDIT-BY rmk :CHANGES-TO (FNS \TEDIT.COMMAND.LOOP) - :PREVIOUS-DATE "28-Nov-2024 10:03:03" {WMEDLEY}tedit>TEDIT-COMMAND.;133) + :PREVIOUS-DATE "15-Mar-2025 23:21:12" {WMEDLEY}tedit>TEDIT-COMMAND.;158) (PRETTYCOMPRINT TEDIT-COMMANDCOMS) (RPAQQ TEDIT-COMMANDCOMS - [[DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\SCRATCHLEN 64)) - (CONSTANTS (MSPACE 153) - (NSPACE 152) - (THINSPACE 159) - (FIGSPACE 154)) - (EXPORT (CONSTANTS (NONE.TTC 0) - (CHARDELETE.TTC 1) - (WORDDELETE.TTC 2) - (DELETE.TTC 3) - (FUNCTIONCALL.TTC 4) - (REDO.TTC 5) - (UNDO.TTC 6) - (CMD.TTC 7) - (NEXT.TTC 8) - (EXPAND.TTC 9) - (CHARDELETE.FORWARD.TTC 10) - (WORDDELETE.FORWARD.TTC 11) - (PUNCT.TTC 20) - (TEXT.TTC 21) - (WHITESPACE.TTC 22)) - (MACROS \TEDIT.MOUSESTATE \TEDIT.CHECK) - (RECORDS TEDITTERMCODE) - - (* ;; "Bits in the CHARTABLE that control line breaking, and what happens when a line is broken on this character (RMK: THESE DON'T SEEM TO BE USED)") - - (CONSTANTS (NOTBEFORE.LB 1) - (* ; - "Must not break before this character (e.g. Japanese right-paren)") - (NOTAFTER.LB 2) - (* ; - "Must not break after this character (e.g. Japanese open-quote)") - (BEFORE.LB 4) - (* ; "OK to break before this character, provided it's OK to break after the prior char (true of most non-white-space)") - (AFTER.LB 8) - (* ; - "OK to break after this char, if it's OK to break before the next one (true of most white space)") - (DISAPPEAR-IF-NOT-SPLIT.LB 16) - (* ; "This character shouldn't be rendered if it isn't the last char on the line (non-breaking hyphen has this)") - (NEWCHAR-IF-SPLIT.LB 32) - (* ; "Look this char up in *TEDIT-SPLITCHAR-HASH* if this IS the last character on a line, and render it as the char we found.") - ] + ((DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (MACROS \TEDIT.MOUSESTATE \TEDIT.CHECK))) (FNS \TEDIT.INTERRUPT.SETUP \TEDIT.MARKACTIVE \TEDIT.MARKINACTIVE \TEDIT.COMMAND.LOOP \TEDIT.COMMAND.RESET.SETUP) [INITVARS (TEDIT.INTERRUPTS '((2 BREAK) @@ -60,106 +20,11 @@ (7 HELP) (20 CONTROL-T] (VARS (|| NIL)) - (GLOBALVARS || TEDIT.INTERRUPTS) - (COMS (* ; "Read-table Utilities") - (FNS \TEDIT.READTABLE \TEDIT.WORDBOUND.READTABLE TEDIT.GETSYNTAX TEDIT.SETSYNTAX - TEDIT.GETFUNCTION TEDIT.SETFUNCTION TEDIT.WORDGET TEDIT.WORDSET - TEDIT.ATOMBOUND.READTABLE) - [DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (TEDIT.READTABLE (\TEDIT.READTABLE)) - (TEDIT.WORDBOUND.READTABLE ( - \TEDIT.WORDBOUND.READTABLE - ] - (GLOBALVARS TEDIT.READTABLE TEDIT.WORDBOUND.READTABLE)) - [COMS (* ; "Wheelscroll") - (FILES (SYSLOAD FROM LISPUSERS) - WHEELSCROLL) - (FNS \TEDIT.WHEELSCROLL) - (GLOBALVARS WHEELSCROLLCHARCODES) - (VARS (WHEELSCROLLCHARCODES (\TEDIT.WHEELSCROLL] - (COMS (* ; "Clipboard") - (FNS \TEDIT.CLIPBOARD \TEDIT.COPYTOCLIPBOARD \TEDIT.EXTRACTTOCLIPBOARD \TEDIT.WRITE.SEL - ) - [DECLARE%: EVAL@LOAD EVAL@COMPILE DONTCOPY (CONSTANTS (CLIPBOARDCODES - (CHARCODE (meta,C meta,X meta,c - meta,X] - (P (\TEDIT.CLIPBOARD]) + (* ; "Why?") + (GLOBALVARS || TEDIT.INTERRUPTS))) (DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ \SCRATCHLEN 64) - - -(CONSTANTS (\SCRATCHLEN 64)) -) - -(DECLARE%: EVAL@COMPILE - -(RPAQQ MSPACE 153) - -(RPAQQ NSPACE 152) - -(RPAQQ THINSPACE 159) - -(RPAQQ FIGSPACE 154) - - -(CONSTANTS (MSPACE 153) - (NSPACE 152) - (THINSPACE 159) - (FIGSPACE 154)) -) - (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE -(RPAQQ NONE.TTC 0) - -(RPAQQ CHARDELETE.TTC 1) - -(RPAQQ WORDDELETE.TTC 2) - -(RPAQQ DELETE.TTC 3) - -(RPAQQ FUNCTIONCALL.TTC 4) - -(RPAQQ REDO.TTC 5) - -(RPAQQ UNDO.TTC 6) - -(RPAQQ CMD.TTC 7) - -(RPAQQ NEXT.TTC 8) - -(RPAQQ EXPAND.TTC 9) - -(RPAQQ CHARDELETE.FORWARD.TTC 10) - -(RPAQQ WORDDELETE.FORWARD.TTC 11) - -(RPAQQ PUNCT.TTC 20) - -(RPAQQ TEXT.TTC 21) - -(RPAQQ WHITESPACE.TTC 22) - - -(CONSTANTS (NONE.TTC 0) - (CHARDELETE.TTC 1) - (WORDDELETE.TTC 2) - (DELETE.TTC 3) - (FUNCTIONCALL.TTC 4) - (REDO.TTC 5) - (UNDO.TTC 6) - (CMD.TTC 7) - (NEXT.TTC 8) - (EXPAND.TTC 9) - (CHARDELETE.FORWARD.TTC 10) - (WORDDELETE.FORWARD.TTC 11) - (PUNCT.TTC 20) - (TEXT.TTC 21) - (WHITESPACE.TTC 22)) -) -(DECLARE%: EVAL@COMPILE - (PUTPROPS \TEDIT.MOUSESTATE MACRO (BUTTON (* ;; "Test to see if only the specified mouse button is down. DOES NOT call GETMOUSESTATE, so the mouse-button info is the same as the last time it was called.") @@ -183,33 +48,6 @@ (T (KWOTE I] (T (CONS COMMENTFLG ARGS]) ) -(DECLARE%: EVAL@COMPILE - -(ACCESSFNS TEDITTERMCODE ((TTCLASS (LOGAND DATUM 224)) - (TTDECODE (LOGAND DATUM 31)))) -) -(DECLARE%: EVAL@COMPILE - -(RPAQQ NOTBEFORE.LB 1) - -(RPAQQ NOTAFTER.LB 2) - -(RPAQQ BEFORE.LB 4) - -(RPAQQ AFTER.LB 8) - -(RPAQQ DISAPPEAR-IF-NOT-SPLIT.LB 16) - -(RPAQQ NEWCHAR-IF-SPLIT.LB 32) - - -(CONSTANTS (NOTBEFORE.LB 1) - (NOTAFTER.LB 2) - (BEFORE.LB 4) - (AFTER.LB 8) - (DISAPPEAR-IF-NOT-SPLIT.LB 16) - (NEWCHAR-IF-SPLIT.LB 32)) -) (* "END EXPORTED DEFINITIONS") @@ -255,7 +93,8 @@ TEXTOBJ]) (\TEDIT.COMMAND.LOOP - [LAMBDA (TSTREAM) (* ; "Edited 17-Feb-2025 12:05 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 16-Mar-2025 14:19 by rmk") + (* ; "Edited 17-Feb-2025 12:05 by rmk") (* ; "Edited 28-Nov-2024 10:01 by rmk") (* ; "Edited 21-Nov-2024 11:51 by rmk") (* ; "Edited 13-Sep-2024 22:34 by rmk") @@ -279,8 +118,10 @@ (* ;; "Main command loop for the TEDIT editor. Includes keyboard polling and command dispatch") + (DECLARE (SPECVARS TEXTSTREAM)) (LET [(TEXTOBJ (TEXTOBJ! (GETTSTR TSTREAM TEXTOBJ] + (DECLARE (SPECVARS TEXTOBJ)) (for P inpanes TEXTOBJ do (WINDOWPROP P 'PROCESS (THIS.PROCESS))) (* ; "Add the process to our panes") (until (TTY.PROCESSP) do (* ; @@ -307,78 +148,39 @@ (* ;; "") - (* ;; "Handle user type-in") + (* ;; "Handle user type-in. CHARCODE is special so functions can see it.") - [bind CH TCH FN first (CL:WHEN (SETQ FN (FGETTOBJ TEXTOBJ LOOPFN)) - (ERSETQ (APPLY* FN TSTREAM))) while (\SYSBUFP) - do (SETQ CH (\GETKEY)) + [bind CHARCODE TCH FN declare (SPECVARS CHARCODE) + first (CL:WHEN (SETQ FN (FGETTOBJ TEXTOBJ LOOPFN)) + (ERSETQ (APPLY* FN TSTREAM))) while (\SYSBUFP) + do (SETQ CHARCODE (\GETKEY)) (CL:WHEN (SETQ FN (FGETTOBJ TEXTOBJ CHARFN)) (* ; - "Give the OEM user control for each character typed.") - (SETQ TCH (APPLY* FN TSTREAM CH)) + "The user can control each character typed.") + (SETQ TCH (APPLY* FN TSTREAM CHARCODE)) - (* ;; - "And let him return one of NIL for 'ignore this char' , T for 'leave it be' or a new charcode.") + (* ;; "Ignore input if TCH=NIL, continue if T, otherwise substitute.") (CL:UNLESS (EQ TCH T) - (SETQ CH TCH))) - (SELECTC (AND CH (\SYNCODE (fetch READSA of (FGETTOBJ TEXTOBJ TXTRTBL)) - CH)) - (CHARDELETE.TTC - (\TEDIT.CHARDELETE TSTREAM)) - (CHARDELETE.FORWARD.TTC - (\TEDIT.CHARDELETE TSTREAM T)) - (WORDDELETE.TTC - (\TEDIT.WORDDELETE TSTREAM)) - (WORDDELETE.FORWARD.TTC - (\TEDIT.WORDDELETE.FORWARD TSTREAM)) - (DELETE.TTC (\TEDIT.DELETE TEXTOBJ (TEXTSEL TEXTOBJ))) - (UNDO.TTC (* ; - "Take off the BPD, the undoing and put it back on.") - (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) - (TEDIT.UNDO TSTREAM)) - (REDO.TTC (* ; - "He hit the REDO key, so go REDO something") - (TEDIT.REDO TSTREAM) - (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ)) - (FUNCTIONCALL.TTC (* ; - "This is a special character -- it calls a function") - (CL:WHEN [SETQ FN (CAR (fetch MACROFN - of (GETHASH CH (fetch READMACRODEFS - of (FGETTOBJ TEXTOBJ - TXTRTBL] - (* ; - "There IS a command function to be called.") - (APPLY* FN TSTREAM TEXTOBJ (TEXTSEL TEXTOBJ)) - (* ; "do it") - (* ; - "After a user function (that is not wheelscroll) no more blue-pending-delete") - - (* ;; "We shouldn't have to test for special characters here, there should be a more general way of marking them") - - (CL:UNLESS (OR (MEMB CH WHEELSCROLLCHARCODES) - (MEMB CH CLIPBOARDCODES)) - (* ; - "The FNs handled the selection. should preserve the highlighting") - (\TEDIT.SHOWSEL NIL NIL TEXTOBJ) - (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) - (\TEDIT.SHOWSEL NIL T TEXTOBJ)))) - (NEXT.TTC (* ; - "Move to the next blank to fill in, delimited by >>...<<") - (TEDIT.NEXT TSTREAM)) - (EXPAND.TTC (* ; "EXPAND AN ABBREVIATION") - (\TEDIT.ABBREV.EXPAND TSTREAM)) - (SELECTC (AND CH (fetch TERMCLASS of (\SYNCODE (OR (FGETTOBJ TEXTOBJ - TXTTERMSA) - \PRIMTERMSA) - CH))) - (CHARDELETE.TC (\TEDIT.CHARDELETE TSTREAM)) - (WORDDELETE.TC (\TEDIT.WORDDELETE TSTREAM)) - (LINEDELETE.TC (\TEDIT.DELETE TEXTOBJ)) - (CL:WHEN CH (* ; - "Any other key: insert the character.") - (\TEDIT.INSERT CH (TEXTSEL TEXTOBJ) - TSTREAM NIL T))]) + (SETQ CHARCODE TCH))) + (CL:WHEN CHARCODE + (if [AND (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of (FGETTOBJ TEXTOBJ TXTRTBL)) + CHARCODE)) + (SETQ FN (CAR (fetch MACROFN + of (GETHASH CHARCODE (fetch READMACRODEFS + of (FGETTOBJ TEXTOBJ + TXTRTBL] + then (if (AND (LISTP FN) + (NOT (FNTYP FN))) + then + (* ;; + "A form but not a LAMBDA. TSTREAM, TEXTOBJ, and CHARCODE are specvars") + + (EVAL FN) + else (APPLY* FN TSTREAM TEXTOBJ (TEXTSEL TEXTOBJ))) + else (\TEDIT.INSERT CHARCODE (TEXTSEL TEXTOBJ) + TSTREAM NIL T)))]) (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL))) (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL)))]) @@ -479,445 +281,17 @@ (20 CONTROL-T))) (RPAQQ || NIL) -(DECLARE%: DOEVAL@COMPILE DONTCOPY - -(GLOBALVARS || TEDIT.INTERRUPTS) -) - - - -(* ; "Read-table Utilities") - -(DEFINEQ - -(\TEDIT.READTABLE - [LAMBDA NIL (* ; "Edited 24-Dec-2023 09:54 by rmk") - (* ; "Edited 20-Apr-2018 07:59 by rmk:") - (* jds "12-Sep-86 13:48") - - (* ;; "Create a TEdit read-table, to control which characters have what functions and call which commands.") - - (LET [(RTBL (create READTABLEP - READMACRODEFS _ (HASHARRAY 50] - - (* ;; "CHARDELETE.FORWARD replaces WORDDELETE on ^W") - - (for CH in (CHARCODE (BS ^A ^W DEL %#A %#B %#C ESC)) as CL - in (CONSTANT (LIST CHARDELETE.TTC CHARDELETE.TTC CHARDELETE.FORWARD.TTC DELETE.TTC - UNDO.TTC NEXT.TTC CMD.TTC REDO.TTC)) - do (* ; - "Set up the default syntax classes for command characters") - (\SETSYNCODE (fetch READSA of RTBL) - CH CL)) - (for CH in (CHARCODE (^X)) as FN in '(\TEDIT.ABBREV.EXPAND) - do (* ; - "Set up the default function-calling characters (^X to expand abbrevs for now)") - (TEDIT.SETFUNCTION CH FN RTBL)) - (TEDIT.SETFUNCTION (CHARCODE ^O) - (FUNCTION GET.OBJ.FROM.USER) - RTBL) (* ; "And for image object capture") - RTBL]) - -(\TEDIT.WORDBOUND.READTABLE - [LAMBDA NIL (* ; "Edited 22-May-92 15:10 by jds") - - (* ;; "Create a readtable which will let TEdit find word boundaries. A word boundary is any point where the SYNCODE of the adjacent characters is different") - - (PROG [(RTBL (create READTABLEP - READMACRODEFS _ (HARRAY 50] - (for CH from 0 to 255 do (\SETSYNCODE (fetch READSA of RTBL) - CH PUNCT.TTC)) - - (* ;; "By default, every character except those noted below is a punctuation character") - - (for CH from (CHARCODE A) to (CHARCODE Z) do (\SETSYNCODE (fetch READSA of RTBL) - CH TEXT.TTC)) - (* ; "Upper case alpha") - (for CH from (CHARCODE a) to (CHARCODE z) do (\SETSYNCODE (fetch READSA of RTBL) - CH TEXT.TTC)) - (* ; "Lower case alpha") - (for CH from (CHARCODE 0) to (CHARCODE 9) do (\SETSYNCODE (fetch READSA of RTBL) - CH TEXT.TTC)) - (* ; "And digits are text characters") - - (* ;; "European chars and accents are text characters:") - - (for CH from (CHARCODE "361,41") to (CHARCODE "361,376") - do (\SETSYNCODE (fetch READSA of RTBL) - CH TEXT.TTC)) - (for CH from (CHARCODE "0,301") to (CHARCODE "0,317") - do (\SETSYNCODE (fetch READSA of RTBL) - CH TEXT.TTC)) - (for CH from (CHARCODE "0,341") to (CHARCODE "0,376") - do (\SETSYNCODE (fetch READSA of RTBL) - CH TEXT.TTC)) - (for CH in (CHARCODE (CR SPACE TAB ^L)) do (\SETSYNCODE (fetch READSA of RTBL) - CH WHITESPACE.TTC)) - (* ; "And these are white space") - (for CH in (LIST MSPACE NSPACE THINSPACE FIGSPACE) - do (\SETSYNCODE (fetch READSA of RTBL) - CH TEXT.TTC)) - (RETURN RTBL]) - -(TEDIT.GETSYNTAX - [LAMBDA (CH TABLE) (* ; "Edited 24-Dec-2023 09:47 by rmk") - (* ; "Edited 31-Mar-87 10:01 by jds") - (* ; - "Find TEdit's interpretation of a given character") - (SELECTC (\SYNCODE [fetch READSA of (COND - ((type? TEXTOBJ TABLE) - (* ; - "If given a TEXTOBJ in place of a read table, coerce it to the read table for that edit session") - (OR (fetch (TEXTOBJ TXTRTBL) of TABLE) - TEDIT.READTABLE)) - ((type? STREAM TABLE) - (* ; - "If given a TEXTOBJ in place of a read table, coerce it to the read table for that edit session") - (OR (fetch (TEXTOBJ TXTRTBL) of (fetch (TEXTSTREAM - TEXTOBJ) - of TABLE)) - TEDIT.READTABLE)) - (T (OR TABLE TEDIT.READTABLE] - (COND - ((LITATOM CH) (* ; - "Symbols are converted to numeric charcodes") - (APPLY* 'CHARCODE CH)) - ((STRINGP CH) (* ; "As are string char-names") - (APPLY* 'CHARCODE CH)) - (T CH))) - (WORDDELETE.TTC - 'WORDDELETE) - (WORDDELETE.FORWARD.TTC - 'WORDDELETE.FORWARD) - (CHARDELETE.TTC - 'CHARDELETE) - (CHARDELETE.FORWARD.TTC - 'CHARDELETE.FORWARD) - (DELETE.TTC 'DELETE) - (UNDO.TTC 'UNDO) - (REDO.TTC 'REDO) - (FUNCTIONCALL.TTC - 'FN) - (CMD.TTC 'CMD) - (NEXT.TTC 'NEXT) - (EXPAND.TTC 'EXPAND) - NIL]) - -(TEDIT.SETSYNTAX - [LAMBDA (CHAR CLASS TABLE) (* ; "Edited 24-Dec-2023 09:17 by rmk") - (* ; "Edited 31-Mar-87 10:00 by jds") - (* ; - "SETS TEDIT-STYLE SYNTAX BITS IN A TERMTABLE") - (PROG1 (TEDIT.GETSYNTAX (SETQ CHAR (COND - ((LITATOM CHAR) - (APPLY* 'CHARCODE CHAR)) - ((STRINGP CHAR) - (APPLY* 'CHARCODE CHAR)) - (T CHAR))) - TABLE) - (\SETSYNCODE [fetch READSA of (COND - ((type? TEXTOBJ TABLE) - (* ; - "If given a TEXTOBJ in place of a read table, coerce it to the read table for that edit session") - (OR (fetch (TEXTOBJ TXTRTBL) of TABLE) - TEDIT.READTABLE)) - ((type? STREAM TABLE) - (* ; - "If given a TEXTOBJ in place of a read table, coerce it to the read table for that edit session") - (OR (fetch (TEXTOBJ TXTRTBL) of (fetch (TEXTSTREAM TEXTOBJ) - of TABLE)) - TEDIT.READTABLE)) - (T (OR TABLE TEDIT.READTABLE] - CHAR - (SELECTQ CLASS - (CHARDELETE CHARDELETE.TTC) - (CHARDELETE.FORWARD - CHARDELETE.FORWARD.TTC) - (WORDDELETE WORDDELETE.TTC) - (WORDDELETE.FORWARD - WORDDELETE.FORWARD.TTC) - ((DELETE LINEDELETE) - DELETE.TTC) - (UNDO UNDO.TTC) - (REDO REDO.TTC) - (CMD CMD.TTC) - (FN FUNCTIONCALL.TTC) - (NEXT NEXT.TTC) - (EXPAND EXPAND.TTC) - NONE.TTC)))]) - -(TEDIT.GETFUNCTION - [LAMBDA (CHARCODE TABLE) (* jds "19-Sep-85 17:06") - (* Gets the FN that is called when CH - is hit inside TEDIT.) - [SETQ TABLE (COND - ((type? TEXTOBJ TABLE) - - (* If given a TEXTOBJ in place of a read table, coerce it to the read table for - that edit session) - - (fetch (TEXTOBJ TXTRTBL) of TABLE)) - ((type? STREAM TABLE) - - (* If given a TEXTOBJ in place of a read table, coerce it to the read table for - that edit session) - - (fetch (TEXTOBJ TXTRTBL) of (fetch (TEXTSTREAM TEXTOBJ) of TABLE))) - (T (OR TABLE TEDIT.READTABLE] - (SETQ CHARCODE (COND - ((LITATOM CHARCODE) - (APPLY* 'CHARCODE CHARCODE)) - (T CHARCODE))) - (AND TABLE (type? READTABLEP TABLE) - (IEQP FUNCTIONCALL.TTC (\SYNCODE (fetch READSA of TABLE) - CHARCODE)) - (fetch READMACRODEFS of TABLE) - (CAR (FETCH MACROFN OF (GETHASH CHARCODE (fetch READMACRODEFS of TABLE]) - -(TEDIT.SETFUNCTION - [LAMBDA (CHARCODE FN RTBL) (* ; "Edited 31-Mar-87 10:58 by jds") - (* ; - "Set TEDITs (read) table so that FN is called whenever CHARCODE is typed.") - (* ; - "If FN is NIL, make the character be normal again.") - [SETQ RTBL (COND - ((type? TEXTOBJ RTBL) (* ; - "If given a TEXTOBJ in place of a read table, coerce it to the read table for that edit session") - (fetch (TEXTOBJ TXTRTBL) of RTBL)) - ((type? STREAM RTBL) (* ; - "If given a TEXTOBJ in place of a read table, coerce it to the read table for that edit session") - (fetch (TEXTOBJ TXTRTBL) of (fetch (TEXTSTREAM TEXTOBJ) of RTBL))) - (T (OR RTBL TEDIT.READTABLE] - (\SETSYNCODE (fetch READSA of RTBL) - (SETQ CHARCODE (COND - ((LITATOM CHARCODE) - (APPLY* 'CHARCODE CHARCODE)) - ((STRINGP CHARCODE) - (APPLY* 'CHARCODE CHARCODE)) - (T CHARCODE))) - (COND - (FN (* ; - "He gave us a function to call. Set up the syntax so it IS called.") - FUNCTIONCALL.TTC) - (T (* ; - "He gave us a function of NIL, meaning 'turn it off' . Cause this character to become normal.") - NONE.TTC))) (* ; - "Mark the character as invoking a function") - (OR (fetch READMACRODEFS of RTBL) - (replace READMACRODEFS of RTBL with (HARRAY 50))) (* ; - "Make sure there's a hash table to store the function in.") - (PUTHASH CHARCODE (CREATE READMACRODEF - MACROTYPE _ 'TEDIT - MACROFN _ (LIST FN)) - (fetch READMACRODEFS of RTBL]) - -(TEDIT.WORDGET - [LAMBDA (CH TABLE) (* jds "27-MAY-83 13:24") - (\SYNCODE (fetch READSA of (OR TABLE TEDIT.WORDBOUND.READTABLE)) - (COND - ((SMALLP CH)) - (T (CHCON1 CH]) - -(TEDIT.WORDSET - [LAMBDA (CHARCODE CLASS TABLE) (* jds " 1-JUN-83 12:23") - (* SETS TEDIT-STYLE SYNTAX BITS IN A - TERMTABLE) - (\SETSYNCODE (fetch READSA of (OR TABLE TEDIT.WORDBOUND.READTABLE)) - (COND - ((SMALLP CHARCODE)) - (T (CHCON1 CHARCODE))) - (COND - ((FIXP CLASS)) - (T (SELECTQ CLASS - (PUNCTUATION PUNCT.TTC) - (WHITESPACE WHITESPACE.TTC) - (TEXT TEXT.TTC) - TEXT.TTC]) - -(TEDIT.ATOMBOUND.READTABLE - [LAMBDA (READTABLE) (* ; "Edited 25-Dec-2023 13:10 by rmk") - (* ; "Edited 5-Dec-2023 23:47 by rmk") - - (* ;; "A wordbound table that approximates the unquoted OTHER characters of Lisp atoms as defined by READTABLE or the current readtable. This is specified as the BOUNDTABLE for Lisp source code edits. Not perfect, but not bad.") - - (* ;; "Could cache this for common readtables (interlisp, commonlisp)") - - (LET ((TABLE (\TEDIT.WORDBOUND.READTABLE))) (* ; - "\TEDIT.WORDBOUND.READTABLE creates a new one each time.") - (for CODE IN (GETSYNTAX 'OTHER (OR READTABLE *READTABLE*)) do (TEDIT.WORDSET CODE - 'TEXT TABLE)) - (for CODE IN (GETSYNTAX 'BREAK (OR READTABLE *READTABLE*)) do (TEDIT.WORDSET CODE - 'PUNCTUATION TABLE)) - (TEDIT.WORDSET (CHARCODE %:) - 'TEXT TABLE) - TABLE]) -) -(DECLARE%: DONTEVAL@LOAD DOCOPY - -(RPAQ TEDIT.READTABLE (\TEDIT.READTABLE)) - -(RPAQ TEDIT.WORDBOUND.READTABLE (\TEDIT.WORDBOUND.READTABLE)) -) -(DECLARE%: DOEVAL@COMPILE DONTCOPY -(GLOBALVARS TEDIT.READTABLE TEDIT.WORDBOUND.READTABLE) -) - - - -(* ; "Wheelscroll") - - -(FILESLOAD (SYSLOAD FROM LISPUSERS) - WHEELSCROLL) -(DEFINEQ - -(\TEDIT.WHEELSCROLL - [LAMBDA NIL (* ; "Edited 2-Oct-2023 23:23 by rmk") - (* ;; "TEDIT disables interrupts, so it has to deal with wheelscroll behaviors when the caret is in the Tedit window. Each of the individual actions is conditioned on WHEELSCROLLENABLED (which may or may not have been loaded).") - (* ;; "This localizes the behavior inside Tedit, where we also suppress Tedit from thinking that somehow these characters change the selection highlighting.") +(* ; "Why?") - (for I in WHEELSCROLLINTERRUPTS collect (TEDIT.SETFUNCTION (CAR I) - `[LAMBDA NIL - (AND WHEELSCROLLENABLED ,(CADR I] - TEDIT.READTABLE) - (CAR I]) -) (DECLARE%: DOEVAL@COMPILE DONTCOPY -(GLOBALVARS WHEELSCROLLCHARCODES) -) - -(RPAQ WHEELSCROLLCHARCODES (\TEDIT.WHEELSCROLL)) - - - -(* ; "Clipboard") - -(DEFINEQ - -(\TEDIT.CLIPBOARD - [LAMBDA NIL (* ; "Edited 21-Apr-2024 09:57 by rmk") - (* ; "Edited 2-Oct-2023 23:23 by rmk") - - (* ;; "TEDIT disables interrupts, so it has to deal with special interrupt behaviors when the caret is in the Tedit window. This localizes the behavior of WHEELSCROLL and CLIPBOARD inside Tedit.") - - (* ;; "Clipboard paste") - - (TEDIT.SETFUNCTION (CHARCODE "Meta,v") - (FUNCTION PASTEFROMCLIPBOARD) - TEDIT.READTABLE) - (TEDIT.SETFUNCTION (CHARCODE "Meta,V") - (FUNCTION PASTEFROMCLIPBOARD) - TEDIT.READTABLE) - - (* ;; "Clipboard copy") - - (TEDIT.SETFUNCTION (CHARCODE "Meta,c") - (FUNCTION \TEDIT.COPYTOCLIPBOARD) - TEDIT.READTABLE) - (TEDIT.SETFUNCTION (CHARCODE "Meta,C") - (FUNCTION \TEDIT.COPYTOCLIPBOARD) - TEDIT.READTABLE) - - (* ;; "Clipboard extract") - - (TEDIT.SETFUNCTION (CHARCODE "Meta,X") - (FUNCTION \TEDIT.EXTRACTTOCLIPBOARD) - TEDIT.READTABLE) - (TEDIT.SETFUNCTION (CHARCODE "Meta,x") - (FUNCTION \TEDIT.EXTRACTTOCLIPBOARD) - TEDIT.READTABLE) - - (* ;; "Each of the individual actions is conditioned on WHEELSCROLLENABLED (which may or may not have been loaded).") - - (for I in WHEELSCROLLINTERRUPTS collect (TEDIT.SETFUNCTION (CAR I) - `[LAMBDA NIL - (AND WHEELSCROLLENABLED ,(CADR I] - TEDIT.READTABLE) - (CAR I]) - -(\TEDIT.COPYTOCLIPBOARD - [LAMBDA (TSTREAM TEXTOBJ SEL EXTRACT) (* ; "Edited 21-Apr-2024 11:51 by rmk") - (* ; "Edited 2-Apr-2024 17:01 by rmk") - (* ; "Edited 18-Apr-2018 00:02 by rmk:") - - (* ;; "If CLIPBOARD is loaded, this copies the characters in the current selection to the clipboard (SEL argument is ignored). .") - - (CL:WHEN (FGETD (FUNCTION PUTCLIPBOARD)) - (SETQ TSTREAM (TEXTSTREAM (OR TSTREAM (TTY.PROCESS)) - T)) - (CL:WHEN TSTREAM - (PUTCLIPBOARD TSTREAM (FUNCTION \TEDIT.WRITE.SEL)) - (CL:WHEN EXTRACT (TEDIT.DELETE TSTREAM))))]) - -(\TEDIT.EXTRACTTOCLIPBOARD - [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 21-Apr-2024 09:20 by rmk") - (\TEDIT.COPYTOCLIPBOARD TSTREAM TEXTOBJ SEL T]) - -(\TEDIT.WRITE.SEL - [LAMBDA (TSTREAM STREAM) (* ; "Edited 21-Apr-2024 11:55 by rmk") - - (* ;; "Writes the selected characters in TSTREAM to STREAM. ") - - (* ;; "If there are no image objects, this is equivalent to (PRIN3 (TEDIT.SEL.AS.STRING ...)), but that would trip over image objects. Image objects could be skipped, or as here, represented as the OBJECTBYTE or described in some way.") - - (* ;; "For Medley-to-Medley copy/paste we could also create a local tmp stream that shadows the system clipboard, and apply the PUTFN to that stream. Then copy/paste could be used to move image objects around with a single Medley or perhaps across Medley's (if the GETFN is available).") - - (LET* ((TEXTOBJ (TEXTOBJ TSTREAM)) - (SEL (FGETTOBJ TEXTOBJ SEL))) - (CL:WHEN (IGREATERP (GETSEL SEL DCH) - 0) - - (* ;; "This could be run by setting the fileptr and doing BIN's. This way we don't manipulate TSTREAM's file position FWIW.") - - (for I CODE PRE (OBJECTBYTE _ (GETTEXTPROP TEXTOBJ 'OBJECTBYTE)) - (NOBJECTS _ 0) from (GETSEL SEL CH#) to (SUB1 (GETSEL SEL CHLIM)) - while (SETQ CODE (TEDIT.NTHCHARCODE TSTREAM I)) - do (if (CHARCODEP CODE) - then (PRINTCCODE CODE STREAM) - elseif (IMAGEOBJP CODE) - then (add NOBJECTS 1) - (if OBJECTBYTE - then (PRINTCCODE OBJECTBYTE STREAM) - else (PRIN3 "{" STREAM) - (PRIN4 (IMAGEOBJPROP CODE 'GETFN) - STREAM) - (CL:WHEN (SETQ PRE (APPLY* (OR (IMAGEOBJPROP CODE 'PREPRINTFN) - (FUNCTION NILL)) - PRE CODE)) - (PRIN3 " : " STREAM) - (PRIN4 PRE STREAM)) - (PRIN3 "}" STREAM)) - else (ERROR "UNRECOGNIZED TEDIT CHARACTER" CODE)) - finally (CL:WHEN (IGREATERP NOBJECTS 0) - (TEDIT.PROMPTPRINT TSTREAM (CONCAT "Note: Selection contains " NOBJECTS - " image object" - (CL:IF (EQ NOBJECTS 1) - "" - "s")) - T))))]) -) -(DECLARE%: EVAL@LOAD EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQ CLIPBOARDCODES (CHARCODE (meta,C meta,X meta,c meta,X))) - - -[CONSTANTS (CLIPBOARDCODES (CHARCODE (meta,C meta,X meta,c meta,X] -) +(GLOBALVARS || TEDIT.INTERRUPTS) ) - -(\TEDIT.CLIPBOARD) (DECLARE%: DONTCOPY - (FILEMAP (NIL (8312 26689 (\TEDIT.INTERRUPT.SETUP 8322 . 9969) (\TEDIT.MARKACTIVE 9971 . 10300) ( -\TEDIT.MARKINACTIVE 10302 . 10518) (\TEDIT.COMMAND.LOOP 10520 . 20097) (\TEDIT.COMMAND.RESET.SETUP -20099 . 26687)) (26973 42170 (\TEDIT.READTABLE 26983 . 28640) (\TEDIT.WORDBOUND.READTABLE 28642 . -31235) (TEDIT.GETSYNTAX 31237 . 33676) (TEDIT.SETSYNTAX 33678 . 36156) (TEDIT.GETFUNCTION 36158 . -37518) (TEDIT.SETFUNCTION 37520 . 39959) (TEDIT.WORDGET 39961 . 40222) (TEDIT.WORDSET 40224 . 40921) ( -TEDIT.ATOMBOUND.READTABLE 40923 . 42168)) (42498 43407 (\TEDIT.WHEELSCROLL 42508 . 43405)) (43560 -49140 (\TEDIT.CLIPBOARD 43570 . 45325) (\TEDIT.COPYTOCLIPBOARD 45327 . 46107) ( -\TEDIT.EXTRACTTOCLIPBOARD 46109 . 46304) (\TEDIT.WRITE.SEL 46306 . 49138))))) + (FILEMAP (NIL (2595 18021 (\TEDIT.INTERRUPT.SETUP 2605 . 4252) (\TEDIT.MARKACTIVE 4254 . 4583) ( +\TEDIT.MARKINACTIVE 4585 . 4801) (\TEDIT.COMMAND.LOOP 4803 . 11429) (\TEDIT.COMMAND.RESET.SETUP 11431 + . 18019))))) STOP diff --git a/library/tedit/TEDIT-COMMAND.LCOM b/library/tedit/TEDIT-COMMAND.LCOM index 435beb7f4fdd53df35d5912cab06ee39524e389e..1f59c464761d69911f2a5dbb04913f86e3ddc944 100644 GIT binary patch delta 814 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.;604 161000 +(FILECREATED "14-Mar-2025 15:29:22" {WMEDLEY}tedit>TEDIT-FILE.;605 161312 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.PUT) + :CHANGES-TO (FNS TEDIT.PUT TEDIT.GET) - :PREVIOUS-DATE "19-Feb-2025 12:11:42" {WMEDLEY}TEDIT>TEDIT-FILE.;603) + :PREVIOUS-DATE "22-Feb-2025 16:00:43" {MEDLEY}tedit>TEDIT-FILE.;27) (PRETTYCOMPRINT TEDIT-FILECOMS) @@ -117,7 +117,8 @@ (DEFINEQ (TEDIT.GET - [LAMBDA (TSTREAM FILE UNFORMATTED? PROPS) (* ; "Edited 26-Aug-2024 16:15 by rmk") + [LAMBDA (TSTREAM FILE UNFORMATTED? PROPS) (* ; "Edited 14-Mar-2025 11:52 by rmk") + (* ; "Edited 26-Aug-2024 16:15 by rmk") (* ; "Edited 11-Aug-2024 12:13 by rmk") (* ; "Edited 29-Jun-2024 16:30 by rmk") (* ; "Edited 18-May-2024 16:31 by rmk") @@ -151,7 +152,7 @@ [SETQ FILE (\TEDIT.MAKEFILENAME (OR FILE (TEDIT.GETINPUT TEXTOBJ "GET from: " (OR (GETTEXTPROP TEXTOBJ 'LASTGETFILENAME) - (\TEXTSTREAM.FILENAME TEXTOBJ] + (\TEDIT.LIKELY.FILENAME TEXTOBJ] (CL:UNLESS FILE (TEDIT.PROMPTPRINT TEXTOBJ "No input file--aborted" T T) (RETURN)) @@ -390,7 +391,8 @@ (TEDIT.INCLUDE TSTREAM INFILE START END SAFE T]) (TEDIT.PUT - [LAMBDA (TSTREAM FILE FORCENEW UNFORMATTED? FORMAT QUIET) (* ; "Edited 22-Feb-2025 15:56 by rmk") + [LAMBDA (TSTREAM FILE FORCENEW UNFORMATTED? FORMAT QUIET) (* ; "Edited 14-Mar-2025 11:52 by rmk") + (* ; "Edited 22-Feb-2025 15:56 by rmk") (* ; "Edited 23-Dec-2024 23:02 by rmk") (* ; "Edited 11-Aug-2024 12:30 by rmk") (* ; "Edited 29-Jun-2024 10:31 by rmk") @@ -452,10 +454,11 @@ (SETQ FORCENEW 'DETEMPLATE))) [SETQ FILE (\TEDIT.MAKEFILENAME (TEDIT.GETINPUT TEXTOBJ "Put to: " (CL:UNLESS FORCENEW - (\TEXTSTREAM.FILENAME + ( + \TEDIT.LIKELY.FILENAME TEXTOBJ UNFORMATTED? ]) - (T (SETQ FILE (\TEXTSTREAM.FILENAME TEXTOBJ UNFORMATTED?))) + (T (SETQ FILE (\TEDIT.LIKELY.FILENAME TEXTOBJ UNFORMATTED?))) NIL) (CL:UNLESS FILE (* ; "No file to put to.") (TEDIT.PROMPTPRINT TEXTOBJ "No output file--aborted" T T) @@ -2519,28 +2522,28 @@ (RPAQ? *TEDIT-FILE-READTABLE* (COPYREADTABLE \ORIGREADTABLE)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4999 34243 (TEDIT.GET 5009 . 11018) (TEDIT.FORMATTEDFILEP 11020 . 12336) ( -TEDIT.FILEDATE 12338 . 13509) (TEDIT.INCLUDE 13511 . 21540) (TEDIT.RAW.INCLUDE 21542 . 22350) ( -TEDIT.PUT 22352 . 30408) (TEDIT.PUT.STREAM 30410 . 34241)) (34244 54014 (\TEDIT.GET.FOREIGN.FILE 34254 - . 37679) (\TEDIT.GET.UNFORMATTED.FILE 37681 . 41673) (\TEDIT.GET.FORMATTED.FILE 41675 . 44593) ( -\TEDIT.FORMATTEDSTREAMP 44595 . 47613) (\ARBIN 47615 . 48335) (\ATMIN 48337 . 48874) (\DWIN 48876 . -49255) (\STRINGIN 49257 . 49965) (\TEDIT.GET.TRAILER 49967 . 52483) (\TEDIT.CACHEFILE 52485 . 54012)) -(54180 67934 (\TEDIT.GET.PIECES3 54190 . 64696) (\TEDIT.GET.IDATE3 64698 . 66093) ( -\TEDIT.MAKE.STRINGPIECE 66095 . 67932)) (67935 80310 (\TEDIT.GET.UNFORMATTED.FILE.XCCS 67945 . 74061) -(\TEDIT.INTERPRET.XCCS.SHIFTS 74063 . 80308)) (80332 86354 (\TEDIT.GET.UNFORMATTED.FILE.UTF8 80342 . -86352)) (86377 95002 (\TEDIT.GET.CHARLOOKS.LIST 86387 . 87118) (\TEDIT.GET.SINGLE.CHARLOOKS 87120 . -91814) (\TEDIT.GET.CHARLOOKS 91816 . 93146) (\TEDIT.GET.PARALOOKS.INDEX 93148 . 93692) ( -\TEDIT.GET.CHARLOOKS.INDEX 93694 . 95000)) (95003 102660 (\TEDIT.GET.PARALOOKS.LIST 95013 . 95635) ( -\TEDIT.GET.SINGLE.PARALOOKS 95637 . 102658)) (102661 106251 (\TEDIT.GET.OBJECT 102671 . 106249)) ( -106313 138190 (\TEDIT.PUT.PCTB 106323 . 115973) (\TEDIT.PUT.PCTB.PIECEDATA 115975 . 119173) ( -\TEDIT.PUT.TRAILER 119175 . 119942) (\TEDIT.PUT.PCTB.MERGEABLE 119944 . 123378) ( -\TEDIT.PUT.UTF8.SPLITPIECES 123380 . 128082) (\TEDIT.PUT.PCTB.NEXTNEW 128084 . 132351) ( -\TEDIT.INSERT.NEWPIECES 132353 . 135788) (\TEDIT.PUTRESET 135790 . 136032) (\ARBOUT 136034 . 136758) ( -\ATMOUT 136760 . 137365) (\DWOUT 137367 . 137646) (\STRINGOUT 137648 . 138188)) (138191 150266 ( -\TEDIT.PUT.CHARLOOKS.LIST 138201 . 139873) (\TEDIT.PUT.SINGLE.CHARLOOKS 139875 . 145610) ( -\TEDIT.PUT.CHARLOOKS 145612 . 146837) (\TEDIT.PUT.CHARLOOKS1 146839 . 147890) (\TEDIT.PUT.OBJECT -147892 . 150264)) (150267 157906 (\TEDIT.PUT.PARALOOKS.LIST 150277 . 151179) ( -\TEDIT.PUT.SINGLE.PARALOOKS 151181 . 156765) (\TEDIT.PUT.PARALOOKS 156767 . 157904)) (158001 160770 ( -TEDITFROMLISPSOURCE 158011 . 160019) (SHELLSCRIPTP 160021 . 160250) (TEDITFROMSHELLSCRIPT 160252 . -160768))))) + (FILEMAP (NIL (5007 34555 (TEDIT.GET 5017 . 11137) (TEDIT.FORMATTEDFILEP 11139 . 12455) ( +TEDIT.FILEDATE 12457 . 13628) (TEDIT.INCLUDE 13630 . 21659) (TEDIT.RAW.INCLUDE 21661 . 22469) ( +TEDIT.PUT 22471 . 30720) (TEDIT.PUT.STREAM 30722 . 34553)) (34556 54326 (\TEDIT.GET.FOREIGN.FILE 34566 + . 37991) (\TEDIT.GET.UNFORMATTED.FILE 37993 . 41985) (\TEDIT.GET.FORMATTED.FILE 41987 . 44905) ( +\TEDIT.FORMATTEDSTREAMP 44907 . 47925) (\ARBIN 47927 . 48647) (\ATMIN 48649 . 49186) (\DWIN 49188 . +49567) (\STRINGIN 49569 . 50277) (\TEDIT.GET.TRAILER 50279 . 52795) (\TEDIT.CACHEFILE 52797 . 54324)) +(54492 68246 (\TEDIT.GET.PIECES3 54502 . 65008) (\TEDIT.GET.IDATE3 65010 . 66405) ( +\TEDIT.MAKE.STRINGPIECE 66407 . 68244)) (68247 80622 (\TEDIT.GET.UNFORMATTED.FILE.XCCS 68257 . 74373) +(\TEDIT.INTERPRET.XCCS.SHIFTS 74375 . 80620)) (80644 86666 (\TEDIT.GET.UNFORMATTED.FILE.UTF8 80654 . +86664)) (86689 95314 (\TEDIT.GET.CHARLOOKS.LIST 86699 . 87430) (\TEDIT.GET.SINGLE.CHARLOOKS 87432 . +92126) (\TEDIT.GET.CHARLOOKS 92128 . 93458) (\TEDIT.GET.PARALOOKS.INDEX 93460 . 94004) ( +\TEDIT.GET.CHARLOOKS.INDEX 94006 . 95312)) (95315 102972 (\TEDIT.GET.PARALOOKS.LIST 95325 . 95947) ( +\TEDIT.GET.SINGLE.PARALOOKS 95949 . 102970)) (102973 106563 (\TEDIT.GET.OBJECT 102983 . 106561)) ( +106625 138502 (\TEDIT.PUT.PCTB 106635 . 116285) (\TEDIT.PUT.PCTB.PIECEDATA 116287 . 119485) ( +\TEDIT.PUT.TRAILER 119487 . 120254) (\TEDIT.PUT.PCTB.MERGEABLE 120256 . 123690) ( +\TEDIT.PUT.UTF8.SPLITPIECES 123692 . 128394) (\TEDIT.PUT.PCTB.NEXTNEW 128396 . 132663) ( +\TEDIT.INSERT.NEWPIECES 132665 . 136100) (\TEDIT.PUTRESET 136102 . 136344) (\ARBOUT 136346 . 137070) ( +\ATMOUT 137072 . 137677) (\DWOUT 137679 . 137958) (\STRINGOUT 137960 . 138500)) (138503 150578 ( +\TEDIT.PUT.CHARLOOKS.LIST 138513 . 140185) (\TEDIT.PUT.SINGLE.CHARLOOKS 140187 . 145922) ( +\TEDIT.PUT.CHARLOOKS 145924 . 147149) (\TEDIT.PUT.CHARLOOKS1 147151 . 148202) (\TEDIT.PUT.OBJECT +148204 . 150576)) (150579 158218 (\TEDIT.PUT.PARALOOKS.LIST 150589 . 151491) ( +\TEDIT.PUT.SINGLE.PARALOOKS 151493 . 157077) (\TEDIT.PUT.PARALOOKS 157079 . 158216)) (158313 161082 ( +TEDITFROMLISPSOURCE 158323 . 160331) (SHELLSCRIPTP 160333 . 160562) (TEDITFROMSHELLSCRIPT 160564 . +161080))))) STOP diff --git a/library/tedit/TEDIT-FILE.LCOM b/library/tedit/TEDIT-FILE.LCOM index 2cb945a66f30a21e2277303347e019e6e260f78e..e8c08adbae1d2d3871beed4a3674e3be5de0c955 100644 GIT binary patch delta 395 zcmeyfhUv>1rU~I9h9Ia+(LbP6p+>F>FFscq$C2( zRKTL͟-O9NzybC9be&`O{pXAEZ<87V1Lhx@v^__#*a+T>&=6(tr`+F^C3f}xqA zv7yoAbVf}n1+W+N++9O76|4e+T*Ey5LxXi)fYwY_WRy_jswQlrk@@BajGx%JfI*?> z7dU{FIgJUK?$2TEDIT>TEDIT-FIND.;138 38227 +(FILECREATED "15-Mar-2025 00:35:11" {WMEDLEY}tedit>TEDIT-FIND.;151 43417 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.SUBSTITUTE) + :CHANGES-TO (FNS TEDIT.SUBSTITUTE TEDIT.FIND) - :PREVIOUS-DATE "17-Feb-2025 12:25:36" {WMEDLEY}TEDIT>TEDIT-FIND.;136) + :PREVIOUS-DATE "14-Mar-2025 23:16:31" {WMEDLEY}TEDIT>TEDIT-FIND.;148) (PRETTYCOMPRINT TEDIT-FINDCOMS) @@ -14,12 +14,15 @@ (RPAQQ TEDIT-FINDCOMS ( (* ;; "User entries") - (FNS TEDIT.FIND TEDIT.FIND.BACKWARD TEDIT.SUBSTITUTE TEDIT.NEXT) + (FNS TEDIT.FIND TEDIT.FIND.SETSEL TEDIT.FIND.BACKWARD TEDIT.SUBSTITUTE + TEDIT.NEXT) + (FNS TEDIT.FIND.OBJECT TEDIT.FIND.OBJECT.BACKWARD) (* ;; "Implementation") - (FNS \TEDIT.WCFIND \TEDIT.BASICFIND \TEDIT.WCFIND.BACKWARD - \TEDIT.BASICFIND.BACKWARD \TEDIT.PARSE.SEARCHSTRING))) + (FNS \TEDIT.FIND \TEDIT.FIND.BACKWARD \TEDIT.WCFIND \TEDIT.BASICFIND + \TEDIT.WCFIND.BACKWARD \TEDIT.BASICFIND.BACKWARD + \TEDIT.PARSE.SEARCHSTRING))) @@ -28,73 +31,44 @@ (DEFINEQ (TEDIT.FIND - [LAMBDA (TSTREAM TARGET START END WILDCARDS?) (* ; "Edited 10-May-2024 21:55 by rmk") - (* ; "Edited 24-Apr-2024 23:47 by rmk") - (* ; "Edited 19-Jun-2023 22:27 by rmk") - (* ; "Edited 6-May-2018 17:34 by rmk:") - (* ; "Edited 30-May-91 20:56 by jds") + [LAMBDA (TSTREAM TARGET START END WILDCARDS? AGAIN) (* ; "Edited 14-Mar-2025 23:39 by rmk") + (* ; "Edited 11-Mar-2025 12:33 by rmk") - (* ;; "If WILDCARDS? is NIL then TEDIT.FIND returns just the start of a basic string-match.") + (* ;; "This is the documented user interface that does the silly thing with the return value--caller must know whether WILCARD? was true or not.") - (* ;; "Otherwise it returns a list of (MATCHSTART MATCHEND) which is the start and end char positions of the match,") + (LET ((RESULT (\TEDIT.FIND TSTREAM TARGET WILDCARDS? AGAIN START END))) + (CL:WHEN RESULT + (CL:IF WILDCARDS? + RESULT + (CAR RESULT)))]) - (* ;; "RMK: FIND isn't undoable, FIND-AGAIN is armed on meta-g. No point in hiding a previous actual edit and then having to undo a find in order to undo the intended previous event. Or maybe undoing FIND would put you back where you started?") +(TEDIT.FIND.SETSEL + [LAMBDA (TSTREAM TARGET START END WILDCARDS?) (* ; "Edited 11-Mar-2025 15:29 by rmk") - (SETQ TSTREAM (TEXTSTREAM TSTREAM)) - (CL:WHEN TARGET - - (* ;; "* and # are implicitly quoted if not WILDCARDS? This could be handled simply by calling CONS instead of \TEDIT.PARSE.SEARCHSTRING") + (* ;; "Sets the selection to the result of a successful FIND.") - [if (IMAGEOBJP TARGET) - then (TEDIT.FIND.OBJECT TSTREAM TARGET START END) - elseif [NEQ 0 (NCHARS (SETQ TARGET (MKSTRING TARGET] - then (CL:UNLESS END - (SETQ END (FGETTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM) - TEXTLEN))) - (CL:UNLESS START - (SETQ START (TEDIT.GETPOINT TSTREAM))) - (CL:WHEN (ILEQ START END) - (CL:IF WILDCARDS? - (\TEDIT.WCFIND TSTREAM (\TEDIT.PARSE.SEARCHSTRING TARGET) - START END) - (CAR (\TEDIT.BASICFIND TSTREAM TARGET START END))))])]) + (LET ((RESULT (\TEDIT.FIND TSTREAM TARGET WILDCARDS? NIL START END))) + (CL:WHEN RESULT + (TEDIT.SETSEL TSTREAM (CAR RESULT) + (CADR RESULT) + 'RIGHT) + (TEDIT.NORMALIZECARET TSTREAM))]) (TEDIT.FIND.BACKWARD - [LAMBDA (TSTREAM TARGET START END WILDCARDS? AGAIN) (* ; "Edited 19-May-2024 12:07 by rmk") - (* ; "Edited 10-May-2024 22:00 by rmk") - (* ; "Edited 24-Apr-2024 23:43 by rmk") - (* ; "Edited 12-Jul-2023 08:24 by rmk") - (* ; "Edited 20-Jun-2023 12:12 by rmk") - (* ; "Edited 18-Jun-2023 23:43 by rmk") + [LAMBDA (TSTREAM TARGET START END WILDCARDS? AGAIN) (* ; "Edited 11-Mar-2025 15:06 by rmk") (* ; "Edited 30-May-91 19:17 by jds") - (* ;; "The search is confined to the characters between START and END. It runs backwards from END looking for the nearest match, and returns the character positions of that match.") - - (* ;; "If WILDCARDS?, the value is the pair (MATCHSTART MATCHEND) for that match, since the caller doesn't know the length. But if not WILDCARDS?, just the match-start, since the caller knows the match is (NCHARS TARGETSTRING) long. This is quirky, but that's the way it is documented.") + (* ;; "This is a new function that preserves the silly interface of TEDIT.FIND--caller must know whether WILCARD? was true or not.") - (SETQ TSTREAM (TEXTSTREAM TSTREAM)) - (CL:WHEN TARGET - [if (IMAGEOBJP TARGET) - then (TEDIT.FIND.OBJECT.BACKWARD TSTREAM TARGET START END AGAIN) - elseif [NEQ 0 (NCHARS (SETQ TARGET (MKSTRING TARGET] - then (SETQ START (IMAX 1 (OR START 1))) - (SETQ END (IMIN (OR END (SUB1 (TEDIT.GETPOINT TSTREAM))) - (FGETTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM) - TEXTLEN))) - (CL:WHEN AGAIN - - (* ;; - "Assume that we aren't interested in another match at the current position.") - - (ADD END -1)) - (CL:WHEN (ILEQ START END) - (CL:IF WILDCARDS? - (\TEDIT.WCFIND.BACKWARD TSTREAM (\TEDIT.PARSE.SEARCHSTRING TARGET T) - START END) - (CAR (\TEDIT.BASICFIND.BACKWARD TSTREAM TARGET START END))))])]) + (LET ((RESULT (\TEDIT.FIND.BACKWARD TARGET WILDCARDS? AGAIN START END))) + (CL:WHEN RESULT + (CL:IF WILDCARDS? + RESULT + (CAR RESULT)))]) (TEDIT.SUBSTITUTE - [LAMBDA (TSTREAM PATTERN REPLACEMENT CONFIRM?) (* ; "Edited 6-Mar-2025 20:17 by rmk") + [LAMBDA (TSTREAM PATTERN REPLACEMENT CONFIRM?) (* ; "Edited 15-Mar-2025 00:23 by rmk") + (* ; "Edited 6-Mar-2025 20:17 by rmk") (* ; "Edited 8-Dec-2024 15:47 by rmk") (* ; "Edited 26-Nov-2024 23:49 by rmk") (* ; "Edited 15-Aug-2024 09:20 by rmk") @@ -119,8 +93,7 @@ (PROG ((TEXTOBJ (TEXTOBJ TSTREAM)) (NREPLACEMENTS 0) (YESLIST '("Y" "y" "yes" "YES" "T" "Yes")) - SEARCHSTRING ABORTFLG ENDCHAR# STARTCHAR# RANGE CONFIRMFLG SEL EOLSEEN REPLACE-LEN - ACTIONSTRING) + SEARCHSTRING ABORTFLG ENDCHAR# STARTCHAR# CONFIRMFLG SEL REPLACE-LEN ACTIONSTRING) (* ;; "Don't call \TEDIT.GET.TARGET.STRING because it might pick the search-domain (current selection) as the search string. If the search pattern is empty, bail out.") @@ -183,16 +156,15 @@ then (* ;; "In this case the selection moves along, ending up at the last hit.") - (bind (LASTSEL _ (\TEDIT.COPYSEL SEL)) - while (SETQ RANGE (TEDIT.FIND TEXTOBJ SEARCHSTRING STARTCHAR# ENDCHAR# - T)) + (bind HIT (LASTSEL _ (\TEDIT.COPYSEL SEL)) + while (SETQ HIT (\TEDIT.FIND TEXTOBJ SEARCHSTRING T NIL STARTCHAR# + ENDCHAR#)) do (* ;  "Show each substitution site and ask for permission") - (\TEDIT.UPDATE.SEL SEL (CAR RANGE) - NIL + (\TEDIT.UPDATE.SEL SEL (CAR HIT) + (CADR HIT) 'RIGHT - 'PENDINGDEL - (ADD1 (CADR RANGE))) + 'PENDINGDEL) (\TEDIT.FIXSEL SEL TEXTOBJ) (\TEDIT.SHOWSEL SEL T TEXTOBJ) (TEDIT.NORMALIZECARET TEXTOBJ SEL) @@ -209,28 +181,24 @@ (add NREPLACEMENTS 1) (SETQ STARTCHAR# (GETSEL SEL CHLIM)) (* ; "Next start, compensate for end") - [add ENDCHAR# (IDIFFERENCE REPLACE-LEN - (ADD1 (IDIFFERENCE (CADR RANGE) - (CAR RANGE]) + (add ENDCHAR# (IDIFFERENCE REPLACE-LEN (CADR HIT)))) (PROGN (* ;;  "Turn off rejected selection, search for next starting one charcter later. ENDCHAR# is still OK.") (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) - (SETQ STARTCHAR# (ADD1 (CAR RANGE] + (SETQ STARTCHAR# (ADD1 (CAR HIT] finally (\TEDIT.COPYSEL LASTSEL SEL)) else (* ;; "No confirmation required. Do the substitutions without showing intermediate work, collect all of the replacement events") - (bind FIRSTHIT HITLAST HITLEN HITDIFF (TOTALDIFF _ 0) - EVENTS while (SETQ RANGE (TEDIT.FIND TEXTOBJ SEARCHSTRING STARTCHAR# - ENDCHAR# T)) + (bind FIRSTHIT HIT HITLAST HITDIFF (TOTALDIFF _ 0) + EVENTS while (SETQ HIT (\TEDIT.FIND TEXTOBJ SEARCHSTRING T NIL + STARTCHAR# ENDCHAR#)) do (CL:UNLESS FIRSTHIT (* ; "For final line updating.") - (SETQ FIRSTHIT (CAR RANGE))) - [SETQ HITLEN (ADD1 (IDIFFERENCE (CADR RANGE) - (CAR RANGE] - (\TEDIT.UPDATE.SEL SEL (CAR RANGE) - HITLEN + (SETQ FIRSTHIT (CAR HIT))) + (\TEDIT.UPDATE.SEL SEL (CAR HIT) + (CADR HIT) 'RIGHT) (\TEDIT.FIXSEL SEL TEXTOBJ) (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.COPY REPLACEMENT @@ -242,26 +210,17 @@ (add NREPLACEMENTS 1) (SETQ STARTCHAR# (GETSEL SEL CHLIM)) (SETQ HITLAST STARTCHAR#) - (SETQ HITDIFF (IDIFFERENCE REPLACE-LEN HITLEN)) + (SETQ HITDIFF (IDIFFERENCE REPLACE-LEN (CADR HIT))) (add ENDCHAR# HITDIFF) (add TOTALDIFF HITDIFF) finally (CL:UNLESS (EQ NREPLACEMENTS 0) - (* ;; "At least one replacement, update the lines that have changed. We have to calculate how many of the original characters have %"changed%" by adding the TOTALDIFF to the final position of the last character of the last hit. Might be better if UPDATELINES took a lastchangechar.") - - (if (IGREATERP TOTALDIFF 0) - then (\TEDIT.UPDATE.LINES TEXTOBJ 'INSERTION FIRSTHIT - (IDIFFERENCE (IPLUS (FGETSEL SEL CHLIM) - TOTALDIFF) - FIRSTHIT)) - elseif (ILESSP TOTALDIFF 0) - then (\TEDIT.UPDATE.LINES TEXTOBJ 'DELETION FIRSTHIT - (IDIFFERENCE (IDIFFERENCE (FGETSEL SEL CHLIM) - TOTALDIFF) - FIRSTHIT)) - else (\TEDIT.UPDATE.LINES TEXTOBJ 'CHANGED FIRSTHIT - (IDIFFERENCE (FGETSEL SEL CHLIM) - FIRSTHIT))) + (* ;; "At least one replacement, update the lines that have changed. We have to calculate how many of the original characters have %"changed%" by adding the TOTALDIFF to the final position of the last character of the last hit. ") + + (\TEDIT.UPDATE.LINES TEXTOBJ 'INSERTION FIRSTHIT + (IDIFFERENCE (IPLUS (FGETSEL SEL CHLIM) + TOTALDIFF) + FIRSTHIT)) (* ;; "Not clear what the final selection should be, if there are multiple changes. The original selection? A selection that goes from the beginning of the first subsitution to the end of the last (as here)? Or just the selection of the last substitution?") @@ -288,7 +247,10 @@ (RETURN NREPLACEMENTS))))]) (TEDIT.NEXT - [LAMBDA (TSTREAM) (* ; "Edited 15-Feb-2025 18:08 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 14-Mar-2025 23:14 by rmk") + (* ; "Edited 11-Mar-2025 15:35 by rmk") + (* ; "Edited 9-Mar-2025 11:31 by rmk") + (* ; "Edited 15-Feb-2025 18:08 by rmk") (* ; "Edited 21-Oct-2024 00:40 by rmk") (* ; "Edited 7-Jul-2024 11:47 by rmk") (* ; "Edited 18-May-2024 16:23 by rmk") @@ -298,59 +260,109 @@ (* ; "Edited 14-Dec-2023 21:20 by rmk") (* ; "Edited 20-Jun-2023 00:05 by rmk") (* ; "Edited 3-May-2023 23:47 by rmk") - (* ; "Edited 18-Apr-2023 23:46 by rmk") + (* ; "Edited 18-Apr-2023 23:46 by rmk ") (* ; "Edited 30-May-91 20:57 by jds") - (LET ((TEXTOBJ (TEXTOBJ TSTREAM)) - TARGET SEL OPTION FIELDSEL) - (SETQ SEL (TEXTSEL TEXTOBJ)) - (SETQ TARGET (TEDIT.FIND TEXTOBJ ">>*<<" NIL NIL T))(* ; - "find the first >>delimited<< field") - (SETQ FIELDSEL (TEDIT.FIND TEXTOBJ "{*}" NIL NIL T))(* ; - "find the first menu-type insertion field, usually delimited with {}") - [SETQ OPTION (COND - [(AND TARGET FIELDSEL) (* ; "take the first one") - (COND - ((IGREATERP (CAR TARGET) - (GETSEL FIELDSEL CH#)) (* ; "use the {} selection") - 'FIELD) - (T 'TARGET] - (TARGET 'TARGET) - (FIELDSEL 'FIELD) - (T 'NEITHER] - (SELECTQ OPTION - (TARGET (* ; "Found another fill-in") - (replace (TEXTOBJ BLUEPENDINGDELETE) of TEXTOBJ with T) - (* ; - "Original comment: %"never pending a deletion%", but it is!") - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) (* ; - "Set up SELECTION to be the found text") - (\TEDIT.UPDATE.SEL SEL (CAR TARGET) - (IDIFFERENCE (ADD1 (CADR TARGET)) - (CAR TARGET)) - 'RIGHT - 'PENDINGDEL) - (\TEDIT.FIXSEL SEL TEXTOBJ) (* ; "Always selected normally") - (\TEDIT.SHOWSEL SEL T TEXTOBJ) - (TEDIT.NORMALIZECARET TEXTOBJ) (* ; "And get it into the window") - ) - (FIELD (* ; - "Update the selection for this textobj from the scratch sel returned from MBUTTON.FIND.NEXT.FIELD") - (FSETTOBJ TEXTOBJ BLUEPENDINGDELETE T) - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) (* ; - "Set SELECTION to be the found text") - (\TEDIT.UPDATE.SEL SEL (GETSEL FIELDSEL CH#) - (GETSEL FIELDSEL DCH) - 'LEFT - 'PENDINGDEL) (* ; "And get it into the window") - (\TEDIT.FIXSEL SEL TEXTOBJ) - (\TEDIT.SHOWSEL SEL T TEXTOBJ) - (TEDIT.NORMALIZECARET TEXTOBJ)) - (NEITHER (TEDIT.PROMPTPRINT TEXTOBJ "No more blanks to fill in." T) - (SETQ SEL NIL)) - (\TEDIT.THELP "No legal value found in SELECTQ in TEDIT.NEXT")) - (CL:WHEN SEL (* ; - "There really IS a selection made here, so set up the charlooks for it properly.") - (FSETTOBJ TEXTOBJ CARETLOOKS (\TEDIT.GET.INSERT.CHARLOOKS TEXTOBJ SEL)))]) + + (* ;; "Finds/selects the next >>*<< or {*} or menu field after the current selection") + + (LET* ((TEXTOBJ (TEXTOBJ TSTREAM)) + (SEL (TEXTSEL TEXTOBJ)) + CH CHNO DCH) + + (* ;; "One pass, search in parallel") + + (if [for old CHNO HIT from (FGETSEL SEL CHLIM) while (SETQ CH (TEDIT.NTHCHARCODE TEXTOBJ + CHNO)) + do (SELCHARQ CH + (> (CL:WHEN (SETQ HIT (\TEDIT.FIND TEXTOBJ ">>*<<" T NIL CHNO)) + (SETQ CHNO (CAR HIT)) + (SETQ DCH (CADR HIT)) + (RETURN T))) + ({ (CL:WHEN (SETQ HIT (\TEDIT.FIND TEXTOBJ "{*}" T NIL CHNO)) + (SETQ CHNO (CAR HIT)) (* ; "Shouldn't include the { and }") + (SETQ DCH (IDIFFERENCE (CADR HIT) + 2)) + (CL:UNLESS (EQ 0 DCH) (* ; + "Right of {, if empty. to put it inside") + (add CHNO 1)) + (RETURN T))) + (CL:WHEN (AND (IMAGEOBJP CH) + (IMAGEOBJPROP CH 'FIELDPREFIX)) + (* ; "Menu fields") + (add CHNO 1) + (RETURN (for ENDCHNO FCH from CHNO while (SETQ FCH (TEDIT.NTHCHARCODE + TEXTOBJ ENDCHNO)) + when (AND (IMAGEOBJP FCH) + (IMAGEOBJPROP FCH 'FIELDSUFFIX)) + do (SETQ DCH (IDIFFERENCE ENDCHNO CHNO)) + (CL:WHEN (EQ 0 DCH) + (* ; "RIGHT of prefix, if empty") + (add CHNO -1)) + (RETURN T))))] + then + (* ;; "CHNO is the beginning of the located blank, DCH is its length") + + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (\TEDIT.UPDATE.SEL SEL CHNO DCH 'RIGHT 'PENDINGDEL) + (FSETTOBJ TEXTOBJ BLUEPENDINGDELETE T) + (\TEDIT.FIXSEL SEL TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ) + (FSETTOBJ TEXTOBJ CARETLOOKS (\TEDIT.GET.INSERT.CHARLOOKS TEXTOBJ SEL)) + (TEDIT.NORMALIZECARET TEXTOBJ) + else (TEDIT.PROMPTPRINT TEXTOBJ "No more blanks to fill in" T]) +) +(DEFINEQ + +(TEDIT.FIND.OBJECT + [LAMBDA (TSTREAM OBJ START END) (* ; "Edited 20-Oct-2024 12:07 by rmk") + (* ; "Edited 10-May-2024 21:58 by rmk") + (* ; "Edited 16-Mar-2024 10:03 by rmk") + (* ; "Edited 6-Nov-2022 11:12 by rmk") + (* ; "Edited 3-May-93 12:52 by jds") + + (* ;; "Return the character number of OBJ in TSTREAM, if it occurs between START and END. We know that an object occupies its own singleton piece, so we don't need to worry about starting or ending in the middle of a piece. We also don't need to test PTYPE, just look at PCONTENTS.") + + (SETQ TSTREAM (TEXTSTREAM TSTREAM)) + (CL:WHEN (IMAGEOBJP OBJ) + [LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ))) + (CL:UNLESS END + (SETQ END (FGETTOBJ TEXTOBJ TEXTLEN))) + (CL:UNLESS START + (SETQ START (TEDIT.GETPOINT TSTREAM))) + (CL:WHEN (AND (ILEQ START END) + (SETQ START (\TEDIT.CHTOPC START TEXTOBJ))) + (SETQ END (\TEDIT.CHTOPC END TEXTOBJ)) + (for PC inpieces START when (EQ OBJ (PCONTENTS PC)) + do (RETURN (\TEDIT.PCTOCH PC TEXTOBJ)) repeatuntil (EQ PC END)))])]) + +(TEDIT.FIND.OBJECT.BACKWARD + [LAMBDA (TSTREAM OBJ START END AGAIN) (* ; "Edited 10-May-2024 22:06 by rmk") + (* ; "Edited 16-Mar-2024 10:03 by rmk") + (* ; "Edited 6-Nov-2022 11:12 by rmk") + (* ; "Edited 3-May-93 12:52 by jds") + + (* ;; "Return the character number of OBJ in TSTREAM, if it occurs between START and END and is the occurrence closest to END. START defaults to 1, END defaults to current caret position (or one before, if AGAIN).") + + (* ;; "If we were sure that a given object can appear only once in a document, we could just run the TEDIT.FIND.OBJECT with different defaults for START and END, but...") + + (* ;; "We know that an object occupies its own singleton piece, so we don't need to worry about starting or ending in the middle of a piece. We also don't need to test PTYPE, just look at PCONTENTS.") + + (SETQ TSTREAM (TEXTSTREAM TSTREAM)) + (CL:WHEN (IMAGEOBJP OBJ) + [LET [(TEXTOBJ (TEXTOBJ! (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM] + (SETQ START (IMAX 1 (OR START 1))) + (SETQ END (IMIN (OR END (SUB1 (TEDIT.GETPOINT TSTREAM))) + (FGETTOBJ TEXTOBJ TEXTLEN))) + (CL:WHEN AGAIN + + (* ;; "Assume that we aren't interested in another match at the current position.") + + (ADD END -1)) + (CL:WHEN (ILEQ START END) + (SETQ START (\TEDIT.CHTOPC START TEXTOBJ)) + (SETQ END (\TEDIT.CHTOPC END TEXTOBJ)) + (for PC backpieces END when (EQ OBJ (PCONTENTS PC)) + do (RETURN (\TEDIT.PCTOCH PC TEXTOBJ)) repeatuntil (EQ PC START)))])]) ) @@ -359,6 +371,95 @@ (DEFINEQ +(\TEDIT.FIND + [LAMBDA (TSTREAM TARGET WILDCARDS? AGAIN START END) (* ; "Edited 14-Mar-2025 18:42 by rmk") + (* ; "Edited 11-Mar-2025 15:04 by rmk") + (* ; "Edited 10-May-2024 21:55 by rmk") + (* ; "Edited 24-Apr-2024 23:47 by rmk") + (* ; "Edited 19-Jun-2023 22:27 by rmk") + (* ; "Edited 6-May-2018 17:34 by rmk:") + (* ; "Edited 30-May-91 20:56 by jds") + + (* ;; "This returns the hit's (CH# DCL) or NIL.") + + (* ;; "If WILDCARDS? is NIL then TEDIT.FIND returns just the start of a basic string-match.") + + (* ;; "Otherwise it returns a list of (MATCHSTART MATCHEND) which is the start and end char positions of the match,") + + (* ;; "RMK: FIND isn't undoable, FIND-AGAIN is armed on meta-g. No point in hiding a previous actual edit and then having to undo a find in order to undo the intended previous event. Or maybe undoing FIND would put you back where you started?") + + (SETQ TSTREAM (TEXTSTREAM TSTREAM)) + (CL:WHEN TARGET + + (* ;; "* and # are implicitly quoted if not WILDCARDS? This could be handled simply by calling CONS instead of \TEDIT.PARSE.SEARCHSTRING") + + (CL:UNLESS END + (SETQ END (TEXTLEN (GETTSTR TSTREAM TEXTOBJ)))) + (CL:UNLESS START + (SETQ START (TEDIT.GETPOINT TSTREAM))) + (CL:WHEN AGAIN (* ; + "We aren't interested in the same hit") + (add START 1)) + (CL:WHEN (ILEQ START END) + [LET (RESULT) + (if (IMAGEOBJP TARGET) + then (CL:WHEN (SETQ RESULT (TEDIT.FIND.OBJECT TSTREAM TARGET START END)) + (LIST RESULT 1)) + elseif [NEQ 0 (NCHARS (SETQ TARGET (MKSTRING TARGET] + then (CL:WHEN (SETQ RESULT (CL:IF WILDCARDS? + (\TEDIT.WCFIND TSTREAM (\TEDIT.PARSE.SEARCHSTRING + TARGET NIL) + START END) + (\TEDIT.BASICFIND TSTREAM TARGET START END))) + + (* ;; "Switch from CHLAST to DCH") + + [LIST (CAR RESULT) + (ADD1 (IDIFFERENCE (CADR RESULT) + (CAR RESULT])]))]) + +(\TEDIT.FIND.BACKWARD + [LAMBDA (TSTREAM TARGET WILDCARDS? AGAIN START END) (* ; "Edited 11-Mar-2025 15:07 by rmk") + + (* ;; "This returns the hit's (CH# DCL) or NIL.") + + (* ;; "The search is confined to the characters between START and END. It runs backwards from END looking for the nearest match, and returns the character positions of that match.") + + (* ;; "If WILDCARDS?, the value is the pair (MATCHSTART MATCHEND) for that match, since the caller doesn't know the length. But if not WILDCARDS?, just the match-start, since the caller knows the match is (NCHARS TARGETSTRING) long. This is quirky, but that's the way it is documented.") + + (SETQ TSTREAM (TEXTSTREAM TSTREAM)) + (CL:WHEN TARGET + [LET (RESULT) + (if (IMAGEOBJP TARGET) + then (CL:WHEN (SETQ RESULT (TEDIT.FIND.OBJECT.BACKWARD TSTREAM TARGET START END + AGAIN)) + (LIST RESULT 1)) + elseif [NEQ 0 (NCHARS (SETQ TARGET (MKSTRING TARGET] + then (SETQ START (IMAX 1 (OR START 1))) + (SETQ END (IMIN (OR END (SUB1 (TEDIT.GETPOINT TSTREAM))) + (FGETTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM) + TEXTLEN))) + (CL:WHEN AGAIN + + (* ;; + "Assume that we aren't interested in another match at the current position.") + + (ADD END -1)) + (CL:WHEN (ILEQ START END) + (CL:WHEN (SETQ RESULT (CL:IF WILDCARDS? + (\TEDIT.WCFIND.BACKWARD TSTREAM ( + \TEDIT.PARSE.SEARCHSTRING + TARGET T) + START END) + (\TEDIT.BASICFIND.BACKWARD TSTREAM TARGET START + END))) + + (* ;; "Switch from CHLAST to DCH") + + [LIST (CAR RESULT) + (ADD1 (IDIFFERENCE (CADR RESULT) + (CAR RESULT]))])]) + (\TEDIT.WCFIND [LAMBDA (TSTREAM TARGETLIST START END) (* ; "Edited 26-Jun-2024 08:04 by rmk") (* ; "Edited 23-Jun-2024 12:00 by rmk") @@ -582,8 +683,10 @@ (DREVERSE $$VAL))]) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (784 23475 (TEDIT.FIND 794 . 2793) (TEDIT.FIND.BACKWARD 2795 . 5117) (TEDIT.SUBSTITUTE -5119 . 18822) (TEDIT.NEXT 18824 . 23473)) (23508 38204 (\TEDIT.WCFIND 23518 . 27037) (\TEDIT.BASICFIND - 27039 . 29398) (\TEDIT.WCFIND.BACKWARD 29400 . 32864) (\TEDIT.BASICFIND.BACKWARD 32866 . 35123) ( -\TEDIT.PARSE.SEARCHSTRING 35125 . 38202))))) + (FILEMAP (NIL (978 19777 (TEDIT.FIND 988 . 1572) (TEDIT.FIND.SETSEL 1574 . 2039) (TEDIT.FIND.BACKWARD +2041 . 2620) (TEDIT.SUBSTITUTE 2622 . 15180) (TEDIT.NEXT 15182 . 19775)) (19778 23207 ( +TEDIT.FIND.OBJECT 19788 . 21288) (TEDIT.FIND.OBJECT.BACKWARD 21290 . 23205)) (23240 43394 (\TEDIT.FIND + 23250 . 26186) (\TEDIT.FIND.BACKWARD 26188 . 28706) (\TEDIT.WCFIND 28708 . 32227) (\TEDIT.BASICFIND +32229 . 34588) (\TEDIT.WCFIND.BACKWARD 34590 . 38054) (\TEDIT.BASICFIND.BACKWARD 38056 . 40313) ( +\TEDIT.PARSE.SEARCHSTRING 40315 . 43392))))) STOP diff --git a/library/tedit/TEDIT-FIND.LCOM b/library/tedit/TEDIT-FIND.LCOM index 9bf6dd8063272b0a6ec99c6de0de9afc3eb5b7d8..3966583a70021e9f35859d6a19e6a1e99e21b086 100644 GIT binary patch literal 9154 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 delta 3627 zcmai1OKcn06&;F}Vl%cPQ6I~+tz6KGE3uZq`41Jt(TE&sMkeP`7w=^28y(G8=xo<6oEeRqCgV@>B^fX1+=g>>7t8n3RGGZZ5Qf&Z$6@2 z7v0Rf_wN7Bz30C9eCDs`ep2lRWxROp&2b?u$RMOAd2KQ+-D`}ve~I)ZL~RUWNkJRW zFE02T;-nx?is^g5Pdn}B6B83js9*cmV*S|yQgSRdnzsr@wruE*k%Q#3>?XneQ{<)R zL=8ku5ZoIP{`443mdeJf7MZV%=TH)oyt?NOFEDo$_m7d$eo+~Vp=!&S$Xj*}CUaVB z)ctOBvbn->T<6pwd~yq%USGe$mOq`+r?ZFYVUO<7I@oJvd*f{Ow^Ln|@_6WR$3jLrsyMr5K$mJ`^!^_6et>a z%rk~lB9`rdlmg5WEA{5V8oU&!lfZ)z0`l7%q?i-0jhb*}F29COqhq~Q2qPgb% z4vy>Ei}AxX?nf+|52$a(k z7{0m}zL*C0=L5$(c#Xy%(*(f07%hq6&B=viaj)BJTF z?UO>qV0JR#32KlfHX14B3p1!kg|cqX81Cl>-dPG26wztOgCKz8#X~nDlyt{2$~N6d zP_ZT_Q)Q!KIC)YoR#Nm-4s^dV2GK7DI=M*oj90(6>9_9PIC6gDWOc&*s55aqwJ~b4 zQ}cC7!|%m$&(p{Cl>6t-!}}9Q(jjb zs14Rvwm+(OMt@dk%`M6F;P9JLczkG*KJf@7k4G zvW3o#Y}HP;isW>2^HVZRPH)zRTWh=Dwh#vIkl~e`^**m?2$1;W7#V)DdTNCX?>yXp zy7k_^J!}Q8g^|WlL6X4Mvm7_cXpDvhkuV^eRy!F8rt28pi zUW~A+G`80V{A2f@2TwLVqE{EojK@N3&ZxW(H>ENumYfnos{NfQJ3;qh{W^z$l3OJ+Xd0qXdMCFQcM6KJR>q&d7;^Wg8Vx)DU?~q{Pq> z6h(CZ6-zV~In=-Ba+Z`Xf+B^%_?8t>cuGI@N7gcaBH4746)9i}{E~%G6V=RwFp1Pv zcQ@K#m>Kvf3hv9@FGe*b?OyIa*#wQw0Bgo{ zKve}m7ZBNVpvns5jDkU@1*qtrWmk+c+bNn#$AZBo38p!N;8Ue^t&va{2bHJ8<(_eK83c zS-{H{zVW-Vx8TtOG7g?3P*NtX>=V>7$O!grd`LKuk{1{6;ELBazUn3&O$mpmQOMC8 zl|TeiVlkEgr!qUjF4N0+p+RaobljqAZ_159WE!D0;$2yK=Q@3$O+2Y3q@BJ>@eWM=WccJB(YJ8FBTC)K@%~}zQ z&Iv2xAruqxz@s(myJ%C@!;(wTrS5al%)o9$>*4I4J3C?T`oYrGPgX;aE${rkoPQ7PzY zhB1gkZTEY;uzCG}e-?r&gKbzCbhC`NC$+sV1QaV6c?Yjpa$A21cp2R5HXiYS6*OK1 z<#uUaPW$c2;}tXLKpwAqetq)@E}rQ!juB{jS~PUrtA7GhZOHO2u# zMuQ~w+>OQ8uib#V*KWME2;aQ@)~z}$-}2p^qf0LjHVP*3BV%`>%+1?xE`lrd_YUH} z7=mQ-d#Udu6^ZB0rOuvBZahf5aPXyRJ$t^Ymvg>~%KUW2v7CAQv+{qQs8aWZQ$t;2 MFq*e3E;)7QKhzOlwEzGB diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 86eb5d068..80657dc65 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,171 +1,125 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Feb-2025 09:12:22" {WMEDLEY}tedit>TEDIT-FNKEYS.;121 48129 +(FILECREATED "16-Mar-2025 21:44:56" {WMEDLEY}tedit>TEDIT-FNKEYS.;204 83759 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.ONECHAR.FORWARD \TEDIT.ONECHAR.BACKWARD) + :CHANGES-TO (FNS \TEDIT.KEY.FIND) + (VARS TEDIT.KEYACTIONS) - :PREVIOUS-DATE "16-Feb-2025 20:44:51" {WMEDLEY}tedit>TEDIT-FNKEYS.;120) + :PREVIOUS-DATE "16-Mar-2025 21:32:28" {WMEDLEY}tedit>TEDIT-FNKEYS.;203) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) (RPAQQ TEDIT-FNKEYSCOMS - [(COMS - (* ;; "Functions that actually implement the commands for the function keys:") - - (FNS \TEDIT.BOLD.SEL.OFF \TEDIT.BOLD.SEL.ON \TEDIT.CENTER.SEL \TEDIT.CENTER.SEL.REV - \TEDIT.DEFAULTS.CARET \TEDIT.DEFAULTSSEL \TEDIT.SETDEFAULT.FROM.SEL - \TEDIT.KEY.FIND \TEDIT.KEY.FIND.SEARCHSTRING \TEDIT.GET.TARGET.STRING - \TEDIT.KEY.FIND.BACKWARD \TEDIT.FINDAGAIN.BACKWARD \TEDIT.FINDAGAIN - \TEDIT.ITALIC.SEL.OFF \TEDIT.ITALIC.SEL.ON \TEDIT.LARGERSEL \TEDIT.LCASE.SEL - \TEDIT.SHOWCARETLOOKS \TEDIT.SMALLERSEL \TEDIT.SUBSCRIPTSEL \TEDIT.SUPERSCRIPTSEL - \TEDIT.UCASE.SEL \TEDIT.UNDERLINE.SEL.OFF \TEDIT.UNDERLINE.SEL.ON - \TEDIT.STRIKEOUT.SEL.ON \TEDIT.STRIKEOUT.SEL.OFF \TEDIT.SELECT.ALL - \TEDIT.KEY.SUBSTITUTE \TEDIT.MANPAGE \TEDIT.CALL.ED)) + ((COMS + (* ;; "Functions that implement the key actions:") + + (FNS \TEDIT.KEY.CHARLOOKS \TEDIT.KEY.QUAD \TEDIT.DEFAULTSSEL \TEDIT.SETDEFAULT.FROM.SEL + \TEDIT.KEY.SIZE \TEDIT.SUBSCRIPTSEL \TEDIT.SUPERSCRIPTSEL \TEDIT.KEY.TRANSFORM + \TEDIT.KEY.OPENLINE \TEDIT.KEY.FAMILYN) + (FNS CAP-CASECODE) + (* ; "For intiial caps") + (FNS \TEDIT.SHOWCARETLOOKS \TEDIT.DESCRIBEFONT)) + (* ; "Moving around") (FNS \TEDIT.ONECHAR.BACKWARD \TEDIT.ONECHAR.FORWARD \TEDIT.ONELINE.UP \TEDIT.ONELINE.DOWN - \TEDIT.ONELINE.MOVE) - (COMS - (* ;; "Auxiliary functions used in the above main functions:") - - (FNS \TEDIT.BOLD.CARET.OFF \TEDIT.BOLD.CARET.ON \TEDIT.ITALIC.CARET.OFF - \TEDIT.ITALIC.CARET.ON \TEDIT.LARGER.CARET \TEDIT.SMALLER.CARET - \TEDIT.SUBSCRIPT.CARET \TEDIT.SUPERSCRIPT.CARET \TEDIT.UNDERLINE.CARET.OFF - \TEDIT.UNDERLINE.CARET.ON \TEDIT.STRIKEOUT.CARET.OFF \TEDIT.STRIKEOUT.CARET.ON)) - (COMS (* ; - "little selection utilities etc., for building hacks") - (FNS \TK.DESCRIBEFONT)) - [VARS (TEDIT.FNKEY.VERBOSE T) - (\TEDIT.KEYS '(("Function,^D" UNDO) - ("Function,$" UNDO) - ("Function,^C" FN \TEDIT.KEY.FIND) - ("Function,#" FN \TEDIT.KEY.FIND) - ("Function,Bs" REDO) - ("Function,(" REDO) - ("Function,^R" NEXT) - ("Function,62" NEXT) - ("Esc" EXPAND) - ("Function,^T" EXPAND) - ("Function,A" FN \TEDIT.CENTER.SEL) - ("Function,a" FN \TEDIT.CENTER.SEL.REV) - ("Function,B" FN \TEDIT.BOLD.SEL.ON) - ("Function,b" FN \TEDIT.BOLD.SEL.OFF) - ("Function,C" FN \TEDIT.ITALIC.SEL.ON) - ("Function,c" FN \TEDIT.ITALIC.SEL.OFF) - ("Function,D" FN \TEDIT.UCASE.SEL) - ("Function,d" FN \TEDIT.LCASE.SEL) - ("Function,E" FN \TEDIT.STRIKEOUT.SEL.ON) - ("Function,e" FN \TEDIT.STRIKEOUT.SEL.OFF) - ("Function,F" FN \TEDIT.UNDERLINE.SEL.ON) - ("Function,f" FN \TEDIT.UNDERLINE.SEL.OFF) - ("Function,G" FN \TEDIT.SUBSCRIPTSEL) - ("Function,g" FN \TEDIT.SUPERSCRIPTSEL) - ("Function,H" FN \TEDIT.SMALLERSEL) - ("Function,h" FN \TEDIT.LARGERSEL) - ("Function,K" FN \TEDIT.SUPERSCRIPTSEL) - ("Function,k" FN \TEDIT.SUBSCRIPTSEL) - ("Function,L" FN \TEDIT.SUBSCRIPTSEL) - ("Function,l" FN \TEDIT.SUPERSCRIPTSEL) - ("Function,M" FN \TEDIT.DEFAULTSSEL) - ("Function,m" FN \TEDIT.SETDEFAULT.FROM.SEL) - ("Function,^A" FN \TEDIT.SHOWCARETLOOKS) - ("Meta,a" FN \TEDIT.SELECT.ALL) - ("Meta,A" FN \TEDIT.SELECT.ALL) - ("Meta,d" FN \TEDIT.MANPAGE) - ("Meta,D" FN \TEDIT.MANPAGE) - ("Meta,F" FN \TEDIT.KEY.FIND.BACKWARD) - ("Meta,f" FN \TEDIT.KEY.FIND) - ("Meta,g" FN \TEDIT.FINDAGAIN) - ("Meta,G" FN \TEDIT.FINDAGAIN.BACKWARD) - ("Meta,N" NEXT) - ("Meta,n" NEXT) - ("Meta,o" FN \TEDIT.CALL.ED) - ("Meta,O" FN \TEDIT.CALL.ED) - ("Meta,p" FN \TEDIT.PRINT.MENU) - ("Meta,P" FN \TEDIT.PRINT.MENU) - ("Meta,r" REDO) - ("Meta,R" REDO) - ("Meta,s" FN \TEDIT.KEY.SUBSTITUTE) - ("Meta,S" FN \TEDIT.KEY.SUBSTITUTE) - ("Meta,U" FN \TEDIT.UNDO.UNDO) - ("Meta,u" UNDO) - ("Meta,z" UNDO) - ("Meta,Z" \TEDIT.UNDO.UNDO) - ("Meta,<" FN \TEDIT.ONECHAR.BACKWARD) - ("Meta,," FN \TEDIT.ONECHAR.BACKWARD) - ("Meta,>" FN \TEDIT.ONECHAR.FORWARD) - ("Meta,." FN \TEDIT.ONECHAR.FORWARD) - ("Meta,^" FN \TEDIT.ONELINE.UP) - ("Meta,LF" FN \TEDIT.ONELINE.DOWN] - (P (MAPC \TEDIT.KEYS (FUNCTION (LAMBDA (ENTRY) - (SELECTQ (CADR ENTRY) - (FN (TEDIT.SETFUNCTION (CAR ENTRY) - (CADDR ENTRY))) - (TEDIT.SETSYNTAX (CAR ENTRY) - (CADR ENTRY]) - - - -(* ;; "Functions that actually implement the commands for the function keys:") + \TEDIT.ONELINE.MOVE \TEDIT.ONEWORD.BACKWARD \TEDIT.ONEWORD.FORWARD \TEDIT.LINE.BEGIN + \TEDIT.LINE.END \TEDIT.DOCUMENT.BEGIN \TEDIT.DOCUMENT.END) + (FNS \TEDIT.LINEDELETE.FORWARD \TEDIT.LINEDELETE.BACKWARD) + (FNS \TEDIT.NEST) + (INITVARS (TEDIT.NESTWIDTH 36)) + (* ; "Find") + (FNS \TEDIT.KEY.FIND \TEDIT.KEY.FIND.SEARCHSTRING \TEDIT.GET.TARGET.STRING) + (* ; "Miscellaneous") + (FNS \TEDIT.KEY.SUBSTITUTE \TEDIT.MANPAGE \TEDIT.CALL.ED \TEDIT.SELECT.ALL) + (* ; "Clipboard") + (FNS \TEDIT.CLIPBOARD \TEDIT.COPYTOCLIPBOARD \TEDIT.EXTRACTTOCLIPBOARD \TEDIT.WRITE.SEL) + (VARS (TEDIT.FNKEY.VERBOSE T)) + (COMS (* ; "Read-table Utilities") + (GLOBALVARS TEDIT.READTABLE TEDIT.WORDBOUND.READTABLE) + (ALISTS (CHARACTERNAMES EMQUAD ENQUAD THINSPACE FIGURESPACE)) + (FNS \TEDIT.READTABLE \TEDIT.WORDBOUND.READTABLE TEDIT.GETSYNTAX TEDIT.SETSYNTAX + TEDIT.GETFUNCTION TEDIT.SETFUNCTION TEDIT.WORDGET TEDIT.WORDSET + TEDIT.ATOMBOUND.READTABLE)) + (* ; "Keybindings") + (DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (CONSTANTS \TEDIT.TTCCODES) + (MACROS \TEDIT.TTC))) + (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS) + (VARS TEDIT.KEYACTIONS TEDIT.KEYBINDINGS TEDIT.DORADO.KEYBINDINGS) + (* ; "Installation") + [DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (TEDIT.READTABLE (\TEDIT.READTABLE)) + (TEDIT.WORDBOUND.READTABLE (\TEDIT.WORDBOUND.READTABLE] + + (* ;; "On-screen formatting buttons (TEDIT.BUTTONS.BUILD) creates the default button menu") + + (VARS TEDIT.BUTTONS.SPEC) + (FNS TEDIT.BUTTONS.BUILD TEDIT.BUTTONBITMAP.FILL) + (VARS TEDIT.BUTTONBITMAP))) + + + +(* ;; "Functions that implement the key actions:") (DEFINEQ -(\TEDIT.BOLD.SEL.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL CHARCODE) (* ; "Edited 6-Nov-87 11:00 by jds") +(\TEDIT.KEY.CHARLOOKS + [LAMBDA (TSTREAM PROP NEWVALUE) (* ; "Edited 15-Mar-2025 15:40 by rmk") + (* ; "Edited 13-Mar-2025 23:58 by rmk") - (* ;; "Turn boldness off for the selected characters, and for future type-in.") + (* ;; "Generic key action function for changing individual character looks. ") - (\TEDIT.BOLD.CARET.OFF TEXTSTREAM TEXTOBJ SEL) - (TEDIT.LOOKS TEXTSTREAM '(WEIGHT MEDIUM) - SEL]) - -(\TEDIT.BOLD.SEL.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 6-Nov-87 11:00 by jds") + (* ;; "Example actions:") - (* ;; "Turn boldness on for selected characters and for future type-in.") + (* ;; " (BOLD-ON (\TEDIT.CHANGE.CHARLOOKS 'BOLD 'ON) ") - (\TEDIT.BOLD.CARET.ON TEXTSTREAM TEXTOBJ SEL) - (TEDIT.LOOKS TEXTSTREAM '(WEIGHT BOLD) - SEL]) + (* ;; " (BOLD-OFF (\TEDIT.CHANGE.CHARLOOKS 'BOLD 'OFF") + (* ; "Bound in COMMAND.LOOP") + (CL:WHEN (EQ NEWVALUE 'TOGGLE) + (SETQ NEWVALUE (CL:IF (EQ 'ON) + (LISTGET (TEDIT.GET.LOOKS TSTREAM) + PROP) + 'OFF + 'ON))) + (\TEDIT.CHANGE.CHARLOOKS TSTREAM (LIST PROP NEWVALUE)) + (\TEDIT.SHOWCARETLOOKS TSTREAM]) -(\TEDIT.CENTER.SEL - [LAMBDA (TEXTSTREAM TEXTOBJ SEL REVERSE) (* ; "Edited 11-Dec-2023 11:02 by rmk") +(\TEDIT.KEY.QUAD + [LAMBDA (TSTREAM REVERSE) (* ; "Edited 16-Mar-2025 00:03 by rmk") + (* ; "Edited 14-Mar-2025 16:37 by rmk") + (* ; "Edited 11-Dec-2023 11:02 by rmk") (* ; "Edited 28-Jul-2023 16:14 by rmk") (* ; "Edited 11-Apr-2023 13:22 by rmk") (* ; "Edited 10-Apr-2023 10:08 by rmk") (* ; "Edited 30-May-91 21:05 by jds") - (* ;; "Changes the QUAD of the selected paragraphs in TEXTSTREAM, when the CENTER key is typed. Rotates through the sequences (LEFT/RIGHT/CENTER) from the QUAD of the first paragraph to find the NEWQUAD that it will apply to all the paragraphs in SEL. If REVERSE, cycles the quads in the opposite direction.") + (* ;; "Changes the QUAD of the selected paragraphs in TSTREAM, when the CENTER key is typed. Rotates through the sequences (LEFT JUSTIFIED CENTERED RIGHT) from the QUAD of the first paragraph to find the NEWQUAD that it will apply to all the paragraphs in SEL. If REVERSE, cycles the quads in the opposite direction.") - (CL:UNLESS (TEDITMENUP TEXTOBJ) - (LET [(NEWQUAD (LIST 'QUAD (OR [CADR (MEMB (LISTGET (TEDIT.GET.PARALOOKS TEXTSTREAM SEL) + (CL:UNLESS (GETTOBJ (GETTSTR TSTREAM TEXTOBJ) + MENUFLG) + (LET [(NEWQUAD (LIST 'QUAD (OR [CADR (MEMB (LISTGET (TEDIT.GET.PARALOOKS TSTREAM) 'QUAD) (CL:IF REVERSE - '(LEFT CENTERED JUSTIFIED LEFT) + '(RIGHT CENTERED JUSTIFIED LEFT) '(LEFT JUSTIFIED CENTERED RIGHT))] 'LEFT] - (TEDIT.PARALOOKS TEXTSTREAM NEWQUAD SEL) - (CL:WHEN TEDIT.FNKEY.VERBOSE (TEDIT.PROMPTPRINT TEXTSTREAM NEWQUAD T))))]) - -(\TEDIT.CENTER.SEL.REV - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 11-Dec-2023 11:02 by rmk") - (* ; "Edited 30-May-91 21:05 by jds") - (\TEDIT.CENTER.SEL TEXTSTREAM TEXTOBJ SEL T]) - -(\TEDIT.DEFAULTS.CARET - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 26-Feb-2024 08:45 by rmk") - (* ; "Edited 11-Nov-2023 16:00 by rmk") - (* jds "21-Sep-85 11:24") - (TEDIT.CARETLOOKS TEXTSTREAM (create CHARLOOKS using (GETTOBJ TEXTOBJ DEFAULTCHARLOOKS))) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL]) + (TEDIT.PARALOOKS TSTREAM NEWQUAD) + (TEDIT.PROMPTPRINT TSTREAM (SELECTQ (CADR NEWQUAD) + (LEFT "Aligned left") + (RIGHT "Aligned right") + (CENTERED "Centered") + (JUSTIFIED "Justified") + "") + T)))]) (\TEDIT.DEFAULTSSEL - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 11-Nov-2023 15:55 by rmk") + [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 16:18 by rmk") + (* ; "Edited 11-Nov-2023 15:55 by rmk") (* ; "Edited 20-Oct-87 11:12 by jds") (* ; "acts on the selection") (TEDIT.LOOKS TEXTSTREAM (create CHARLOOKS using (GETTOBJ TEXTOBJ DEFAULTCHARLOOKS)) - SEL]) + SEL) + (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL]) (\TEDIT.SETDEFAULT.FROM.SEL [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 12-Nov-2023 16:40 by rmk") @@ -176,211 +130,15 @@ (SETTOBJ TEXTOBJ DEFAULTCHARLOOKS (\TEDIT.PARSE.CHARLOOKS.LIST (TEDIT.GET.LOOKS TEXTSTREAM SEL) NIL TEXTOBJ]) -(\TEDIT.KEY.FIND - [LAMBDA (TSTREAM TEXTOBJ SEL AGAIN BACKWARD SEARCHSTRING) (* ; "Edited 26-Nov-2024 23:47 by rmk") - (* ; "Edited 23-Nov-2024 16:25 by rmk") - (* ; "Edited 7-Jul-2024 11:47 by rmk") - (* ; "Edited 29-Jun-2024 16:20 by rmk") - (* ; "Edited 22-Jun-2024 10:00 by rmk") - (* ; "Edited 18-May-2024 16:29 by rmk") - (* ; "Edited 15-Mar-2024 13:36 by rmk") - (* ; "Edited 24-Apr-2024 23:39 by rmk") - (* ; "Edited 9-Mar-2024 11:36 by rmk") - (* ; "Edited 14-Dec-2023 21:14 by rmk") - (* ; "Edited 12-Jul-2023 08:26 by rmk") - (* ; "Edited 20-Jun-2023 13:06 by rmk") - (* ; "Edited 6-May-2018 17:14 by rmk:") - (* ; "Edited 30-May-91 21:05 by jds") +(\TEDIT.KEY.SIZE + [LAMBDA (TSTREAM SMALLER) (* ; "Edited 16-Mar-2025 13:19 by rmk") + (* jds "21-Sep-85 08:58") - (* ;; "Case sensitive search, with * and # wildcards. Just calls the normal tedit.find starting at the right of the current selection. SEL is passed from the FN key in the readtable, presumably always (fetch SEL of TEXTOBJ).") + (* ;; "Changes the font size, 2 points smaller if SMALLER, otherwise larger.") - (* ;; "AGAIN suppresses confirmation of a previous target.") - - (SETQ TSTREAM (TEXTSTREAM TSTREAM)) - (CL:UNLESS TEXTOBJ - (SETQ TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM))) - (RESETLST - [RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ "Find") - '(PROGN (\TEDIT.MARKINACTIVE OLDVALUE] - (LET ((TEXTOBJ (TEXTOBJ TSTREAM)) - CH) - (CL:UNLESS SEARCHSTRING - (SETQ SEARCHSTRING (\TEDIT.KEY.FIND.SEARCHSTRING TEXTOBJ AGAIN BACKWARD))) - (CL:WHEN (AND SEARCHSTRING (IGEQ (NCHARS SEARCHSTRING) - 1)) - (CL:UNLESS SEL - (SETQ SEL (FGETTOBJ TEXTOBJ SEL))) - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) - (SETQ CH (if BACKWARD - then (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "Searching backward for %"" - SEARCHSTRING "%"") - T) - (TEDIT.FIND.BACKWARD TSTREAM (MKSTRING SEARCHSTRING) - NIL NIL T) - else (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "Searching for %"" SEARCHSTRING - "%"") - T) - (TEDIT.FIND TSTREAM (MKSTRING SEARCHSTRING) - NIL NIL T))) - (if CH - then (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "%"" SEARCHSTRING "%" found") - T) (* ; "We found the target text.") - (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) - (* ; - "Set up SELECTION to be the found text") - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) - (\TEDIT.UPDATE.SEL SEL (CAR CH) - (ADD1 (IDIFFERENCE (CADR CH) - (CAR CH))) - (CL:IF BACKWARD - 'LEFT - 'RIGHT) - (CL:IF (FGETTOBJ TEXTOBJ TXTREADONLY) - 'PENDINGDEL - 'NORMAL)) - (\TEDIT.FIXSEL SEL TEXTOBJ) - (\TEDIT.SHOWSEL SEL T TEXTOBJ) - [SETSEL SEL SELKIND (CL:IF (IGREATERP (CADR CH) - (CAR CH) - 'WORD - 'CHAR] - (FSETTOBJ TEXTOBJ CARETLOOKS (\TEDIT.GET.INSERT.CHARLOOKS TEXTOBJ SEL)) - (TEDIT.NORMALIZECARET TEXTOBJ) - else (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "%"" SEARCHSTRING "%" not found") - T)) - (\TEDIT.SHOWSEL SEL T TEXTOBJ))))]) - -(\TEDIT.KEY.FIND.SEARCHSTRING - [LAMBDA (TEXTOBJ AGAIN BACKWARD) (* ; "Edited 22-Jun-2024 10:17 by rmk") - - (* ;; "TEDIT.LAST.FIND.STRING used to be stored as a window property. But then it would only pertain to a particular pane. Better store it on the textobj.") - - (LET (SEARCHSTRING) - (CL:WHEN AGAIN - (SETQ SEARCHSTRING (GETTEXTPROP TEXTOBJ 'TEDIT.LAST.FIND.STRING))) - (CL:UNLESS SEARCHSTRING - (SETQ SEARCHSTRING (\TEDIT.GET.TARGET.STRING TEXTOBJ 'TEDIT.LAST.FIND.STRING)) - (SETQ SEARCHSTRING (TEDIT.GETINPUT TEXTOBJ (CL:IF BACKWARD - "Backward search string: " - "Search string: ") - SEARCHSTRING)) - (CL:WHEN SEARCHSTRING (* ; - "Save for next search, even if not found") - (PUTTEXTPROP TEXTOBJ 'TEDIT.LAST.FIND.STRING SEARCHSTRING))) - SEARCHSTRING]) - -(\TEDIT.GET.TARGET.STRING - [LAMBDA (TEXTOBJ PROP) (* ; "Edited 14-Jul-2024 00:09 by rmk") - (* ; "Edited 23-Jun-2024 23:06 by rmk") - (* ; "Edited 22-Jun-2024 12:03 by rmk") - (* ; "Edited 29-Feb-2024 17:08 by rmk") - - (* ;; "This is called from \TEDIT.KEY.FIND, TEDIT.DEFAULT.MENUFN. It tries to determine the best tentative target string for a search. PROP is presumably TEDIT.LAST.FIND.STRING.") - - (* ;; "Current heuristic: If a previous string, use it if it contains wild cards, otherwise the current non-point selection. Note that meta-G goes directly to the last search.") - - (* ;; "TEDIT.SUBSTITUTE doesn't call this because the current selection is the search domain") - - (LET [(PREV (STRINGP (GETTEXTPROP TEXTOBJ PROP] - (if [AND PREV (find I from 1 to (NCHARS PREV) - suchthat (AND (MEMB (NTHCHARCODE PREV I) - (CHARCODE (%# ESCAPE *))) - (NEQ (CHARCODE %') - (NTHCHARCODE PREV (SUB1 I] - then PREV - elseif (IGEQ (FGETSEL (FGETTOBJ TEXTOBJ SEL) - DCH) - 1) - then - (* ;; "TEDIT.SEL.AS.STRING breaks on image objects, should be fixed there.") - - (CAR (NLSETQ (TEDIT.SEL.AS.STRING TEXTOBJ))) - else PREV]) - -(\TEDIT.KEY.FIND.BACKWARD - [LAMBDA (TEXTSTREAM TEXTOBJ SEL AGAIN) (* ; "Edited 20-Jun-2023 13:57 by rmk") - (* ; "Edited 18-Jun-2023 17:59 by rmk") - (\TEDIT.KEY.FIND TEXTSTREAM TEXTOBJ SEL AGAIN T]) - -(\TEDIT.FINDAGAIN.BACKWARD - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Jun-2023 13:57 by rmk") - (* ; "Edited 18-Jun-2023 18:03 by rmk") - (* ; "Edited 6-May-2018 17:12 by rmk:") - (\TEDIT.KEY.FIND TEXTSTREAM TEXTOBJ SEL T T]) - -(\TEDIT.FINDAGAIN - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Jun-2023 13:57 by rmk") - (* ; "Edited 6-May-2018 17:12 by rmk:") - (\TEDIT.KEY.FIND TEXTSTREAM TEXTOBJ SEL T]) - -(\TEDIT.ITALIC.SEL.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL CHARCODE) (* ; "Edited 20-Oct-87 10:43 by jds") - (\TEDIT.ITALIC.CARET.OFF TEXTSTREAM TEXTOBJ SEL) - (TEDIT.LOOKS TEXTSTREAM '(SLOPE REGULAR) - SEL]) - -(\TEDIT.ITALIC.SEL.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Oct-87 10:43 by jds") - (TEDIT.LOOKS TEXTSTREAM '(SLOPE ITALIC) - SEL]) - -(\TEDIT.LARGERSEL - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* jds "21-Sep-85 08:58") - (COND - ((SHIFTDOWNP 'META) - (\TEDIT.LARGER.CARET TEXTSTREAM TEXTOBJ SEL)) - (T (TEDIT.LOOKS TEXTSTREAM (LIST 'SIZEINCREMENT 2) - SEL]) - -(\TEDIT.LCASE.SEL - [LAMBDA (STREAM TEXTOBJ SEL) (* ; "Edited 7-Jul-2024 09:05 by rmk") - (* ; "Edited 15-Mar-2024 13:57 by rmk") - (* ; "Edited 3-Mar-2024 12:28 by rmk") - (* ; "Edited 28-May-2023 00:34 by rmk") - (* ; "Edited 24-May-2023 22:46 by rmk") - - (* ;; "uppercasifies the selection. This changes the :Replace THACTION to :LowerCase for REDO. That could be stored in another field, in which case undo wouldn't need to know. Or maybe the transformation function should be stored.") - - (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.CHARTRANSFORM (\TEDIT.SELPIECES.COPY ( - \TEDIT.SELPIECES - SEL NIL TEXTOBJ - )) - (FUNCTION L-CASECODE) - NIL TEXTOBJ) - TEXTOBJ SEL) - (SETTH (\TEDIT.LASTEVENT TEXTOBJ) - THACTION :LowerCase]) - -(\TEDIT.SHOWCARETLOOKS - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:07 by rmk") - (* ; "Edited 30-May-91 21:09 by jds") - (LET ((LOOKS (FGETTOBJ TEXTOBJ CARETLOOKS))) - (TEDIT.PROMPTPRINT TEXTSTREAM (CONCAT (\TK.DESCRIBEFONT (fetch (CHARLOOKS CLFONT) - of LOOKS)) - (COND - ((AND (fetch (CHARLOOKS CLOFFSET) of LOOKS) - (NEQ (fetch (CHARLOOKS CLOFFSET) of LOOKS) - 0)) - (CONCAT " offset " (fetch (CHARLOOKS CLOFFSET) - of LOOKS))) - (T "")) - (COND - ((fetch (CHARLOOKS CLOLINE) of LOOKS) - " overlined") - (T "")) - (COND - ((fetch (CHARLOOKS CLULINE) of LOOKS) - " underlined") - (T ""))) - T]) - -(\TEDIT.SMALLERSEL - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* jds "21-Sep-85 08:58") - (COND - ((SHIFTDOWNP 'META) - (\TEDIT.SMALLER.CARET TEXTSTREAM TEXTOBJ SEL)) - (T (TEDIT.LOOKS TEXTSTREAM (LIST 'SIZEINCREMENT -2) - SEL]) + (TEDIT.LOOKS TSTREAM (LIST 'SIZEINCREMENT (CL:IF SMALLER -2) + 2)) + (\TEDIT.SHOWCARETLOOKS TSTREAM]) (\TEDIT.SUBSCRIPTSEL [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Oct-87 11:12 by jds") @@ -392,90 +150,121 @@ (TEDIT.LOOKS TEXTSTREAM (LIST 'OFFSETINCREMENT 2) SEL]) -(\TEDIT.UCASE.SEL - [LAMBDA (STREAM TEXTOBJ SEL) (* ; "Edited 7-Jul-2024 09:04 by rmk") +(\TEDIT.KEY.TRANSFORM + [LAMBDA (TSTREAM CHARFN) (* ; "Edited 16-Mar-2025 18:49 by rmk") + (* ; "Edited 7-Jul-2024 09:04 by rmk") (* ; "Edited 15-Mar-2024 13:57 by rmk") (* ; "Edited 3-Mar-2024 12:56 by rmk") - (* ; "Edited 28-May-2023 00:33 by rmk") - (* ; "Edited 24-May-2023 22:45 by rmk") - - (* ;; "uppercasifies the selection. This changes the :Replace THACTION to :UpperCase for REDO. That could be stored in another field, in which case undo wouldn't need to know.") - - (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.CHARTRANSFORM (\TEDIT.SELPIECES.COPY ( - \TEDIT.SELPIECES - SEL NIL TEXTOBJ - )) - (FUNCTION U-CASECODE) - NIL TEXTOBJ) - TEXTOBJ SEL) - (SETTH (\TEDIT.LASTEVENT TEXTOBJ) - THACTION :UpperCase]) - -(\TEDIT.UNDERLINE.SEL.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Oct-87 11:26 by jds") - (TEDIT.LOOKS TEXTSTREAM '(UNDERLINE OFF) - SEL]) + (* ; "Edited 28-May-2023 00:33 by rmk") + + (* ;; "Applies CHARFN to transform each character in the selection.") + + (* ;; "This changes the :Replace THACTION to :Transform and adds CHARFN to the event, so that REDO can perform the action again. ") + + (LET* ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) + (SEL (TEXTSEL TEXTOBJ))) + (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.CHARTRANSFORM (\TEDIT.SELPIECES.COPY + (\TEDIT.SELPIECES SEL NIL + TEXTOBJ)) + CHARFN NIL TEXTOBJ) + TEXTOBJ SEL) + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ) + (CL:UNLESS (FGETTOBJ TEXTOBJ TXTHISTORYINACTIVE) + (SETTH (\TEDIT.LASTEVENT TEXTOBJ) + THACTION :Transform) + (SETTH (\TEDIT.LASTEVENT TEXTOBJ) + THOLDINFO CHARFN))]) + +(\TEDIT.KEY.OPENLINE + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 9-Mar-2025 14:39 by rmk") + (* gbn "30-Jan-85 18:36") + + (* ;; "This is like typing a return, except that it positions the caret one character back") + + [TEDIT.INSERT TSTREAM (CONSTANT (CONSTANT (CHARACTER (CHARCODE EOL] + (\TEDIT.ONECHAR.BACKWARD TSTREAM TEXTOBJ SEL]) + +(\TEDIT.KEY.FAMILYN + [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 16-Mar-2025 13:13 by rmk") + + (* ;; "CHARCODE is Meta,nn for nn from One..., changes the family to the nn-th entry on TEDIT.FONTFAMILIES.") + + (CL:WHEN (CHARCODEP CHARCODE) + (LET [(NEWFAMILY (CAR (NTH TEDIT.FONTFAMILIES (IDIFFERENCE CHARCODE (CHARCODE "Meta,Zero"] + (CL:WHEN NEWFAMILY + (\TEDIT.CHANGE.CHARLOOKS TSTREAM (LIST 'FAMILY NEWFAMILY)) + (\TEDIT.SHOWCARETLOOKS TSTREAM))))]) +) +(DEFINEQ -(\TEDIT.UNDERLINE.SEL.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Oct-87 11:27 by jds") - (TEDIT.LOOKS TEXTSTREAM '(UNDERLINE ON) - SEL]) +(CAP-CASECODE + [LAMBDA (CHAR INDEX) (* ; "Edited 16-Mar-2025 13:23 by rmk") -(\TEDIT.STRIKEOUT.SEL.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Oct-87 11:27 by jds") - (TEDIT.LOOKS TEXTSTREAM '(STRIKEOUT ON) - SEL]) + (* ;; "Uppercases CHAR if INDEX is 1, otherwise lowercases.") -(\TEDIT.STRIKEOUT.SEL.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Oct-87 11:27 by jds") - (TEDIT.LOOKS TEXTSTREAM '(STRIKEOUT OFF) - SEL]) + (CL:IF (EQ INDEX 1) + (U-CASECODE CHAR) + (L-CASECODE CHAR))]) +) -(\TEDIT.SELECT.ALL - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 29-Jun-2024 15:05 by rmk") - (* ; "Edited 6-May-2018 12:41 by rmk:") - (TEDIT.SETSEL TEXTSTREAM 1 (GETTOBJ TEXTOBJ TEXTLEN) - 'LEFT]) -(\TEDIT.KEY.SUBSTITUTE - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 8-May-2023 09:35 by rmk") - (* ;; "Stub for function-key") +(* ; "For intiial caps") - (TEDIT.SUBSTITUTE TEXTSTREAM NIL NIL T]) +(DEFINEQ -(\TEDIT.MANPAGE - [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 18-Jan-2025 21:48 by rmk") - (* ; "Edited 29-Dec-2024 08:40 by rmk") - (* ; "Edited 25-Jun-2024 11:59 by rmk") - (* ; "Edited 26-May-2024 21:53 by rmk") - (* ; "Edited 25-May-2024 14:50 by rmk") +(\TEDIT.SHOWCARETLOOKS + [LAMBDA (TSTREAM) (* ; "Edited 15-Mar-2025 20:40 by rmk") + (* ; "Edited 13-Mar-2025 23:52 by rmk") + (* ; "Edited 5-Mar-2025 14:55 by rmk") + (* ; "Edited 14-Dec-2023 21:07 by rmk") + (* ; "Edited 30-May-91 21:09 by jds") + (LET ((LOOKS (FGETTOBJ (TEXTOBJ TSTREAM) + CARETLOOKS))) + (TEDIT.PROMPTPRINT TSTREAM (CONCAT (\TEDIT.DESCRIBEFONT (GETCLOOKS LOOKS CLFONT)) + (CL:IF (AND (GETCLOOKS LOOKS CLOFFSET) + (NEQ (GETCLOOKS LOOKS CLOFFSET) + 0)) + (CONCAT " offset " (GETCLOOKS LOOKS CLOFFSET)) + "") + (CL:IF (GETCLOOKS LOOKS CLSTRIKE) + " strikeout" + "") + (CL:IF (GETCLOOKS LOOKS CLOLINE) + " overlined" + "") + (CL:IF (GETCLOOKS LOOKS CLULINE) + " underlined" + "")) + T]) - (* ;; "If meta-D is typed in an existing DINFO window, the new stuff comes up but then the window closes. That could be debugged, but probably not worth it. The DINFO window has its own links to things that it thought were worth indexing.") +(\TEDIT.DESCRIBEFONT + [LAMBDA (FONT) (* ; "Edited 15-Mar-2025 16:19 by rmk") + (* ; "Edited 5-Mar-2025 14:53 by rmk") + (* gbn "15-Dec-84 17:54") - (CL:UNLESS (WINDOWPROP (\TEDIT.PRIMARYPANE TSTREAM) - 'DINFOGRAPH) - (TEDIT.PROMPTCLEAR TSTREAM) - [LET ((KEY (TEDIT.SEL.AS.STRING TSTREAM SEL))) - (if (OR (NULL KEY) - (EQ 0 (NCHARS KEY))) - then (TEDIT.PROMPTPRINT TSTREAM "Please select a man-page key" T T) - else (GENERIC.MAN.LOOKUP (TEDIT.SEL.AS.STRING TSTREAM SEL])]) +(* ;;; "returns a string which describes a font (in short. If it's not italic then no mention is made of slope, etc.)") -(\TEDIT.CALL.ED - [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 18-Jan-2025 23:38 by rmk") - (* ; "Edited 29-Dec-2024 08:46 by rmk") - (* ; "Edited 25-May-2024 15:03 by rmk") - (TEDIT.PROMPTCLEAR TSTREAM) - (LET [(SYMBOL (MKATOM (CAR (MKLIST (TEDIT.SEL.AS.SEXPR TSTREAM SEL] - (if (OR (NULL SYMBOL) - (EQ 0 (NCHARS SYMBOL))) - then (TEDIT.PROMPTPRINT TSTREAM "Please select a symbol to edit" T T) - elseif (TYPESOF SYMBOL) - then (ED SYMBOL `(:DONTWAIT :DISPLAY)) - else (TEDIT.PROMPTPRINT TSTREAM (CONCAT SYMBOL " has no definitions to edit") - T T]) + (CONCAT (L-CASE (FONTPROP FONT 'FAMILY) + T) + " " + (FONTPROP FONT 'SIZE) + (CL:IF (EQ (FONTPROP FONT 'WEIGHT) + 'MEDIUM) + "" + [CONCAT " " (L-CASE (FONTPROP FONT 'WEIGHT] + "") + (CL:IF (EQ (FONTPROP FONT 'SLOPE) + 'REGULAR) + "" + [CONCAT " " (L-CASE (FONTPROP FONT 'SLOPE])]) ) + + + +(* ; "Moving around") + (DEFINEQ (\TEDIT.ONECHAR.BACKWARD @@ -623,252 +412,1239 @@ (\TEDIT.FIXSEL SEL TEXTOBJ) (\TEDIT.SHOWSEL SEL T TEXTOBJ) (\TEDIT.SCROLL.CARET TSTREAM))]) + +(\TEDIT.ONEWORD.BACKWARD + [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 5-Mar-2025 17:37 by rmk") + (* gbn "20-Mar-85 00:49") + +(* ;;; "moves the caret one word back Refers to the syntax classes of the characters according to the TEDIT.WORDBOUND.READTABLE") + + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (LET ((HERE (SUB1 (TEDIT.GETPOINT TEXTSTREAM))) + LAST FIRST) + (SETQ FIRST (\TEDIT.WORD.FIRST TEXTSTREAM HERE)) (* ; + "End of word, maybe after whitespace") + (SETQ LAST (IMIN HERE (\TEDIT.WORD.LAST TEXTSTREAM FIRST))) + (* ; "In case we started in white space") + (\TEDIT.UPDATE.SEL SEL FIRST (ADD1 (IDIFFERENCE LAST FIRST)) + 'LEFT) + (\TEDIT.FIXSEL SEL TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ) + (TEDIT.NORMALIZECARET TEXTOBJ]) + +(\TEDIT.ONEWORD.FORWARD + [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 5-Mar-2025 17:33 by rmk") + (* gbn "20-Mar-85 00:48") + +(* ;;; "moves the caret one word forward. Refers to the syntax classes of the characters according to the TEDIT.WORDBOUND.READTABLE") + + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (LET ((HERE (TEDIT.GETPOINT TEXTSTREAM)) + LAST FIRST) + (SETQ LAST (\TEDIT.WORD.LAST TEXTSTREAM HERE)) (* ; + "End of word, maybe after whitespace") + (SETQ FIRST (IMAX HERE (\TEDIT.WORD.FIRST TEXTSTREAM LAST))) + (* ; "In case we started in white space") + (\TEDIT.UPDATE.SEL SEL FIRST (ADD1 (IDIFFERENCE LAST FIRST)) + 'RIGHT) + (\TEDIT.FIXSEL SEL TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ) + (TEDIT.NORMALIZECARET TEXTOBJ]) + +(\TEDIT.LINE.BEGIN + [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 22:55 by rmk") + (* ; "Edited 9-Mar-2025 19:50 by rmk") + (* ; "Edited 5-Mar-2025 00:05 by rmk") + (* gbn "11-Mar-85 15:04") + + (* ;; "Positions the cursor at the beginning of line. If L1 is NIL it is not visibnle in SELPANE. Should we normalize to top?") + + (LET ((L1 (\TEDIT.SEL.L1 SEL (GETTOBJ TEXTOBJ SELPANE) + TEXTOBJ))) + (CL:WHEN L1 + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (\TEDIT.UPDATE.SEL SEL (FGETLD L1 LCHAR1) + 0 + 'LEFT) + (\TEDIT.FIXSEL SEL TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ))]) + +(\TEDIT.LINE.END + [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 22:54 by rmk") + (* ; "Edited 9-Mar-2025 19:49 by rmk") + (* ; "Edited 5-Mar-2025 14:07 by rmk") + (* gbn " 7-Jun-85 15:47") + + (* ;; "Positions the cursor at the end of its current line. If LN is NIL it is not visible in SELPANE. Not sure about normalizing, maybe to bottom?") + + (LET ((LN (\TEDIT.SEL.LN SEL NIL TEXTOBJ))) + (CL:WHEN LN + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + + (* ;; "Put the caret in front of the terminating EOL so it stays on LN.") + + (\TEDIT.UPDATE.SEL SEL (FGETLD LN LCHARLAST) + 0 + (CL:IF (FGETLD LN FORCED-END) + 'LEFT + 'RIGHT)) + (\TEDIT.FIXSEL SEL TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ))]) + +(\TEDIT.DOCUMENT.BEGIN + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 23:08 by rmk") + (* gbn "13-Dec-84 11:24") + + (* ;; "Positions at the beginning of a document") + + (TEDIT.SETSEL TSTREAM 1 0 'LEFT) + (TEDIT.NORMALIZECARET TEXTOBJ]) + +(\TEDIT.DOCUMENT.END + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 23:09 by rmk") + (* gbn " 7-Jun-85 16:32") + + (* ;; "Positions at the end of a document") + + (TEDIT.SETSEL TSTREAM (ADD1 (TEXTLEN TEXTOBJ)) + 0 + 'LEFT) + (TEDIT.NORMALIZECARET TSTREAM]) ) +(DEFINEQ +(\TEDIT.LINEDELETE.FORWARD + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 23:02 by rmk") + (* ; "Edited 9-Mar-2025 22:11 by rmk") + (* ; "Edited 4-Mar-2025 17:22 by rmk") + (* gbn "13-Dec-84 11:56") + (* ;; "Deletes from the caret to the end of this line (including an ending EOL?)") -(* ;; "Auxiliary functions used in the above main functions:") + (LET ((LINE (\TEDIT.SEL.LN SEL NIL TEXTOBJ)) + HERE) + (CL:WHEN LINE + (SETQ HERE (TEDIT.GETPOINT TSTREAM)) + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (\TEDIT.UPDATE.SEL SEL HERE (IDIFFERENCE (FGETLD LINE LCHARLIM) + HERE)) + (TEDIT.DELETE TEXTOBJ SEL))]) + +(\TEDIT.LINEDELETE.BACKWARD + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 23:02 by rmk") + (* ; "Edited 9-Mar-2025 22:11 by rmk") + (* ; "Edited 4-Mar-2025 17:22 by rmk") + (* gbn "13-Dec-84 11:56") + (* ;; + "Deletes from the beginning of the caret's line to the caret. Line must be visible in the selpane.") + + (LET ((LINE (\TEDIT.SEL.L1 SEL NIL TEXTOBJ)) + HERE) + (CL:WHEN LINE + (SETQ HERE (TEDIT.GETPOINT TSTREAM)) + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (\TEDIT.UPDATE.SEL SEL HERE (IDIFFERENCE (FGETLD LINE LCHAR1) + HERE)) + (TEDIT.DELETE TEXTOBJ SEL))]) +) (DEFINEQ -(\TEDIT.BOLD.CARET.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:08 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(WEIGHT MEDIUM) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.BOLD.CARET.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:09 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(WEIGHT BOLD) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.ITALIC.CARET.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:09 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(SLOPE REGULAR) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.ITALIC.CARET.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:15 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(SLOPE ITALIC) - (GETTOBJ TEXTOBJ CARETLOOKS TEXTOBJ) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.LARGER.CARET - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:15 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(SIZEINCREMENT 2) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.SMALLER.CARET - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:15 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(SIZEINCREMENT -2) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.SUBSCRIPT.CARET - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:16 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(OFFSETINCREMENT -2) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.SUPERSCRIPT.CARET - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:16 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(OFFSETINCREMENT 2) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.UNDERLINE.CARET.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:17 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(UNDERLINE OFF) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.UNDERLINE.CARET.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:17 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(UNDERLINE ON) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.STRIKEOUT.CARET.OFF - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 14-Dec-2023 21:18 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST '(STRIKEOUT OFF) - (GETTOBJ TEXTOBJ CARETLOOKS) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) - -(\TEDIT.STRIKEOUT.CARET.ON - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 10-Aug-2024 16:31 by rmk") - (* ; "Edited 12-Jun-90 18:32 by mitani") - (LET ((LOOKS (\TEDIT.CHANGE.CHARLOOKS.NEW '(STRIKEOUT ON) - (fetch (TEXTOBJ CARETLOOKS) of TEXTOBJ) - TEXTOBJ))) - (CL:WHEN LOOKS - (TEDIT.CARETLOOKS TEXTSTREAM LOOKS) - (\TEDIT.SHOWCARETLOOKS TEXTSTREAM TEXTOBJ SEL))]) +(\TEDIT.NEST + [LAMBDA (TSTREAM OUTFLAG) (* ; "Edited 16-Mar-2025 13:06 by rmk") + (* ; "Edited 7-Mar-2025 22:18 by rmk") + + (* ;; "This moves the left margin of each selected paragraph in TEDITKEY.NESTWIDTH points. It has to go paragraph by paragraph because the paragraphs may have different margins to begin with.") + + (LET* ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) + (SEL (TEXTSEL TEXTOBJ))) + (for CHNO LOOKS (DELTA _ (OR (GETTEXTPROP TSTREAM 'NESTWIDTH) + TEDIT.NESTWIDTH)) + (TARGETSEL _ (\TEDIT.COPYSEL SEL)) in (\TEDIT.PARACHNOS SEL NIL TEXTOBJ) + first (CL:WHEN OUTFLAG + (SETQ DELTA (IMINUS DELTA))) + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (FSETSEL SEL SET NIL) do (SETQ LOOKS (TEDIT.GET.PARALOOKS TSTREAM CHNO)) + (LISTPUT LOOKS 'LEFTMARGIN (IPLUS (LISTGET LOOKS + 'LEFTMARGIN) + DELTA)) + (LISTPUT LOOKS '1STLEFTMARGIN (IPLUS (LISTGET + LOOKS + '1STLEFTMARGIN) + DELTA)) + (LISTPUT LOOKS 'RIGHTMARGIN + (IMAX 0 (IDIFFERENCE (LISTGET LOOKS 'RIGHTMARGIN) + DELTA))) + (\TEDIT.UPDATE.SEL TARGETSEL CHNO 1) + (\TEDIT.CHANGE.PARALOOKS TSTREAM LOOKS TARGETSEL) + finally (FSETSEL SEL SET T) + (\TEDIT.FIXSEL SEL TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ) + (TEDIT.PROMPTCLEAR TSTREAM]) ) +(RPAQ? TEDIT.NESTWIDTH 36) -(* ; "little selection utilities etc., for building hacks") + +(* ; "Find") (DEFINEQ -(\TK.DESCRIBEFONT - [LAMBDA (FONT) (* gbn "15-Dec-84 17:54") +(\TEDIT.KEY.FIND + [LAMBDA (TSTREAM AGAIN BACKWARD SEARCHSTRING) (* ; "Edited 16-Mar-2025 21:42 by rmk") + (* ; "Edited 11-Mar-2025 15:09 by rmk") + (* ; "Edited 26-Nov-2024 23:47 by rmk") + (* ; "Edited 23-Nov-2024 16:25 by rmk") + (* ; "Edited 7-Jul-2024 11:47 by rmk") + (* ; "Edited 29-Jun-2024 16:20 by rmk") + (* ; "Edited 22-Jun-2024 10:00 by rmk") + (* ; "Edited 18-May-2024 16:29 by rmk") + (* ; "Edited 15-Mar-2024 13:36 by rmk") + (* ; "Edited 24-Apr-2024 23:39 by rmk") + (* ; "Edited 9-Mar-2024 11:36 by rmk") + (* ; "Edited 14-Dec-2023 21:14 by rmk") + (* ; "Edited 12-Jul-2023 08:26 by rmk") + (* ; "Edited 20-Jun-2023 13:06 by rmk") + (* ; "Edited 6-May-2018 17:14 by rmk:") + (* ; "Edited 30-May-91 21:05 by jds") + + (* ;; "Case sensitive search, with * and # wildcards. Just calls the normal tedit.find starting at the right of the current selection. SEL is passed from the FN key in the readtable, presumably always (fetch SEL of TEXTOBJ).") - (* * returns a string which describes a font - (in short. If it's not italic then no mention is made of slope, etc.)) + (* ;; "AGAIN suppresses confirmation of a previous target.") - (CONCAT (L-CASE (FONTPROP FONT 'FAMILY)) - " " - (FONTPROP FONT 'SIZE) - (COND - [(NEQ (FONTPROP FONT 'WEIGHT) - 'MEDIUM) - (CONCAT " " (L-CASE (FONTPROP FONT 'WEIGHT] - (T "")) - (COND - [(NEQ (FONTPROP FONT 'SLOPE) - 'REGULAR) - (CONCAT " " (L-CASE (FONTPROP FONT 'SLOPE] - (T ""]) + (SETQ TSTREAM (TEXTSTREAM TSTREAM)) + (RESETLST + (LET ((TEXTOBJ (TEXTOBJ TSTREAM)) + (SEL (TEXTSEL TEXTOBJ)) + CH) + [RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ "Find") + '(PROGN (\TEDIT.MARKINACTIVE OLDVALUE] + (CL:UNLESS SEARCHSTRING + (SETQ SEARCHSTRING (\TEDIT.KEY.FIND.SEARCHSTRING TEXTOBJ AGAIN BACKWARD))) + (CL:WHEN (AND SEARCHSTRING (IGEQ (NCHARS SEARCHSTRING) + 1)) + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (SETQ CH (if BACKWARD + then (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "Searching backward for %"" + SEARCHSTRING "%"") + T) + (\TEDIT.FIND.BACKWARD TSTREAM (MKSTRING SEARCHSTRING) + T) + else (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "Searching for %"" SEARCHSTRING + "%"") + T) + (\TEDIT.FIND TSTREAM (MKSTRING SEARCHSTRING) + T))) + (if CH + then (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "%"" SEARCHSTRING "%" found") + T) (* ; "We found the target text.") + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) + (* ; + "Set up SELECTION to be the found text") + (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (\TEDIT.UPDATE.SEL SEL (CAR CH) + (CADR CH) + (CL:IF BACKWARD + 'LEFT + 'RIGHT) + (CL:IF (FGETTOBJ TEXTOBJ TXTREADONLY) + 'PENDINGDEL + 'NORMAL)) + (SETSEL SEL SELKIND (CL:IF (IGREATERP (CADR CH) + 1) + 'WORD + 'CHAR)) + (\TEDIT.FIXSEL SEL TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ) + (FSETTOBJ TEXTOBJ CARETLOOKS (\TEDIT.GET.INSERT.CHARLOOKS TEXTOBJ SEL)) + (TEDIT.NORMALIZECARET TEXTOBJ) + else (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT "%"" SEARCHSTRING "%" not found") + T)) + (\TEDIT.SHOWSEL SEL T TEXTOBJ))))]) + +(\TEDIT.KEY.FIND.SEARCHSTRING + [LAMBDA (TEXTOBJ AGAIN BACKWARD) (* ; "Edited 22-Jun-2024 10:17 by rmk") + + (* ;; "TEDIT.LAST.FIND.STRING used to be stored as a window property. But then it would only pertain to a particular pane. Better store it on the textobj.") + + (LET (SEARCHSTRING) + (CL:WHEN AGAIN + (SETQ SEARCHSTRING (GETTEXTPROP TEXTOBJ 'TEDIT.LAST.FIND.STRING))) + (CL:UNLESS SEARCHSTRING + (SETQ SEARCHSTRING (\TEDIT.GET.TARGET.STRING TEXTOBJ 'TEDIT.LAST.FIND.STRING)) + (SETQ SEARCHSTRING (TEDIT.GETINPUT TEXTOBJ (CL:IF BACKWARD + "Backward search string: " + "Search string: ") + SEARCHSTRING)) + (CL:WHEN SEARCHSTRING (* ; + "Save for next search, even if not found") + (PUTTEXTPROP TEXTOBJ 'TEDIT.LAST.FIND.STRING SEARCHSTRING))) + SEARCHSTRING]) + +(\TEDIT.GET.TARGET.STRING + [LAMBDA (TEXTOBJ PROP) (* ; "Edited 14-Jul-2024 00:09 by rmk") + (* ; "Edited 23-Jun-2024 23:06 by rmk") + (* ; "Edited 22-Jun-2024 12:03 by rmk") + (* ; "Edited 29-Feb-2024 17:08 by rmk") + + (* ;; "This is called from \TEDIT.KEY.FIND, TEDIT.DEFAULT.MENUFN. It tries to determine the best tentative target string for a search. PROP is presumably TEDIT.LAST.FIND.STRING.") + + (* ;; "Current heuristic: If a previous string, use it if it contains wild cards, otherwise the current non-point selection. Note that meta-G goes directly to the last search.") + + (* ;; "TEDIT.SUBSTITUTE doesn't call this because the current selection is the search domain") + + (LET [(PREV (STRINGP (GETTEXTPROP TEXTOBJ PROP] + (if [AND PREV (find I from 1 to (NCHARS PREV) + suchthat (AND (MEMB (NTHCHARCODE PREV I) + (CHARCODE (%# ESCAPE *))) + (NEQ (CHARCODE %') + (NTHCHARCODE PREV (SUB1 I] + then PREV + elseif (IGEQ (FGETSEL (FGETTOBJ TEXTOBJ SEL) + DCH) + 1) + then + (* ;; "TEDIT.SEL.AS.STRING breaks on image objects, should be fixed there.") + + (CAR (NLSETQ (TEDIT.SEL.AS.STRING TEXTOBJ))) + else PREV]) +) + + + +(* ; "Miscellaneous") + +(DEFINEQ + +(\TEDIT.KEY.SUBSTITUTE + [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 8-May-2023 09:35 by rmk") + + (* ;; "Stub for function-key") + + (TEDIT.SUBSTITUTE TEXTSTREAM NIL NIL T]) + +(\TEDIT.MANPAGE + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 18-Jan-2025 21:48 by rmk") + (* ; "Edited 29-Dec-2024 08:40 by rmk") + (* ; "Edited 25-Jun-2024 11:59 by rmk") + (* ; "Edited 26-May-2024 21:53 by rmk") + (* ; "Edited 25-May-2024 14:50 by rmk") + + (* ;; "If meta-D is typed in an existing DINFO window, the new stuff comes up but then the window closes. That could be debugged, but probably not worth it. The DINFO window has its own links to things that it thought were worth indexing.") + + (CL:UNLESS (WINDOWPROP (\TEDIT.PRIMARYPANE TSTREAM) + 'DINFOGRAPH) + (TEDIT.PROMPTCLEAR TSTREAM) + [LET ((KEY (TEDIT.SEL.AS.STRING TSTREAM SEL))) + (if (OR (NULL KEY) + (EQ 0 (NCHARS KEY))) + then (TEDIT.PROMPTPRINT TSTREAM "Please select a man-page key" T T) + else (GENERIC.MAN.LOOKUP (TEDIT.SEL.AS.STRING TSTREAM SEL])]) + +(\TEDIT.CALL.ED + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 18-Jan-2025 23:38 by rmk") + (* ; "Edited 29-Dec-2024 08:46 by rmk") + (* ; "Edited 25-May-2024 15:03 by rmk") + (TEDIT.PROMPTCLEAR TSTREAM) + (LET [(SYMBOL (MKATOM (CAR (MKLIST (TEDIT.SEL.AS.SEXPR TSTREAM SEL] + (if (OR (NULL SYMBOL) + (EQ 0 (NCHARS SYMBOL))) + then (TEDIT.PROMPTPRINT TSTREAM "Please select a symbol to edit" T T) + elseif (TYPESOF SYMBOL) + then (ED SYMBOL `(:DONTWAIT :DISPLAY)) + else (TEDIT.PROMPTPRINT TSTREAM (CONCAT SYMBOL " has no definitions to edit") + T T]) + +(\TEDIT.SELECT.ALL + [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 29-Jun-2024 15:05 by rmk") + (* ; "Edited 6-May-2018 12:41 by rmk:") + (TEDIT.SETSEL TEXTSTREAM 1 (GETTOBJ TEXTOBJ TEXTLEN) + 'LEFT]) +) + + + +(* ; "Clipboard") + +(DEFINEQ + +(\TEDIT.CLIPBOARD + [LAMBDA NIL (* ; "Edited 21-Apr-2024 09:57 by rmk") + (* ; "Edited 2-Oct-2023 23:23 by rmk") + + (* ;; "TEDIT disables interrupts, so it has to deal with special interrupt behaviors when the caret is in the Tedit window. This localizes the behavior of WHEELSCROLL and CLIPBOARD inside Tedit.") + + (* ;; "Clipboard paste") + + (TEDIT.SETFUNCTION (CHARCODE "Meta,v") + (FUNCTION PASTEFROMCLIPBOARD) + TEDIT.READTABLE) + (TEDIT.SETFUNCTION (CHARCODE "Meta,V") + (FUNCTION PASTEFROMCLIPBOARD) + TEDIT.READTABLE) + + (* ;; "Clipboard copy") + + (TEDIT.SETFUNCTION (CHARCODE "Meta,c") + (FUNCTION \TEDIT.COPYTOCLIPBOARD) + TEDIT.READTABLE) + (TEDIT.SETFUNCTION (CHARCODE "Meta,C") + (FUNCTION \TEDIT.COPYTOCLIPBOARD) + TEDIT.READTABLE) + + (* ;; "Clipboard extract") + + (TEDIT.SETFUNCTION (CHARCODE "Meta,X") + (FUNCTION \TEDIT.EXTRACTTOCLIPBOARD) + TEDIT.READTABLE) + (TEDIT.SETFUNCTION (CHARCODE "Meta,x") + (FUNCTION \TEDIT.EXTRACTTOCLIPBOARD) + TEDIT.READTABLE) + + (* ;; "Each of the individual actions is conditioned on WHEELSCROLLENABLED (which may or may not have been loaded).") + + (for I in WHEELSCROLLINTERRUPTS collect (TEDIT.SETFUNCTION (CAR I) + `[LAMBDA NIL + (AND WHEELSCROLLENABLED ,(CADR I] + TEDIT.READTABLE) + (CAR I]) + +(\TEDIT.COPYTOCLIPBOARD + [LAMBDA (TSTREAM TEXTOBJ SEL EXTRACT) (* ; "Edited 21-Apr-2024 11:51 by rmk") + (* ; "Edited 2-Apr-2024 17:01 by rmk") + (* ; "Edited 18-Apr-2018 00:02 by rmk:") + + (* ;; "If CLIPBOARD is loaded, this copies the characters in the current selection to the clipboard (SEL argument is ignored). .") + + (CL:WHEN (FGETD (FUNCTION PUTCLIPBOARD)) + (SETQ TSTREAM (TEXTSTREAM (OR TSTREAM (TTY.PROCESS)) + T)) + (CL:WHEN TSTREAM + (PUTCLIPBOARD TSTREAM (FUNCTION \TEDIT.WRITE.SEL)) + (CL:WHEN EXTRACT (TEDIT.DELETE TSTREAM))))]) + +(\TEDIT.EXTRACTTOCLIPBOARD + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 21-Apr-2024 09:20 by rmk") + (\TEDIT.COPYTOCLIPBOARD TSTREAM TEXTOBJ SEL T]) + +(\TEDIT.WRITE.SEL + [LAMBDA (TSTREAM STREAM) (* ; "Edited 21-Apr-2024 11:55 by rmk") + + (* ;; "Writes the selected characters in TSTREAM to STREAM. ") + + (* ;; "If there are no image objects, this is equivalent to (PRIN3 (TEDIT.SEL.AS.STRING ...)), but that would trip over image objects. Image objects could be skipped, or as here, represented as the OBJECTBYTE or described in some way.") + + (* ;; "For Medley-to-Medley copy/paste we could also create a local tmp stream that shadows the system clipboard, and apply the PUTFN to that stream. Then copy/paste could be used to move image objects around with a single Medley or perhaps across Medley's (if the GETFN is available).") + + (LET* ((TEXTOBJ (TEXTOBJ TSTREAM)) + (SEL (FGETTOBJ TEXTOBJ SEL))) + (CL:WHEN (IGREATERP (GETSEL SEL DCH) + 0) + + (* ;; "This could be run by setting the fileptr and doing BIN's. This way we don't manipulate TSTREAM's file position FWIW.") + + (for I CODE PRE (OBJECTBYTE _ (GETTEXTPROP TEXTOBJ 'OBJECTBYTE)) + (NOBJECTS _ 0) from (GETSEL SEL CH#) to (SUB1 (GETSEL SEL CHLIM)) + while (SETQ CODE (TEDIT.NTHCHARCODE TSTREAM I)) + do (if (CHARCODEP CODE) + then (PRINTCCODE CODE STREAM) + elseif (IMAGEOBJP CODE) + then (add NOBJECTS 1) + (if OBJECTBYTE + then (PRINTCCODE OBJECTBYTE STREAM) + else (PRIN3 "{" STREAM) + (PRIN4 (IMAGEOBJPROP CODE 'GETFN) + STREAM) + (CL:WHEN (SETQ PRE (APPLY* (OR (IMAGEOBJPROP CODE 'PREPRINTFN) + (FUNCTION NILL)) + PRE CODE)) + (PRIN3 " : " STREAM) + (PRIN4 PRE STREAM)) + (PRIN3 "}" STREAM)) + else (ERROR "UNRECOGNIZED TEDIT CHARACTER" CODE)) + finally (CL:WHEN (IGREATERP NOBJECTS 0) + (TEDIT.PROMPTPRINT TSTREAM (CONCAT "Note: Selection contains " NOBJECTS + " image object" + (CL:IF (EQ NOBJECTS 1) + "" + "s")) + T))))]) ) (RPAQQ TEDIT.FNKEY.VERBOSE T) -(RPAQQ \TEDIT.KEYS - (("Function,^D" UNDO) - ("Function,$" UNDO) - ("Function,^C" FN \TEDIT.KEY.FIND) - ("Function,#" FN \TEDIT.KEY.FIND) - ("Function,Bs" REDO) - ("Function,(" REDO) - ("Function,^R" NEXT) - ("Function,62" NEXT) - ("Esc" EXPAND) - ("Function,^T" EXPAND) - ("Function,A" FN \TEDIT.CENTER.SEL) - ("Function,a" FN \TEDIT.CENTER.SEL.REV) - ("Function,B" FN \TEDIT.BOLD.SEL.ON) - ("Function,b" FN \TEDIT.BOLD.SEL.OFF) - ("Function,C" FN \TEDIT.ITALIC.SEL.ON) - ("Function,c" FN \TEDIT.ITALIC.SEL.OFF) - ("Function,D" FN \TEDIT.UCASE.SEL) - ("Function,d" FN \TEDIT.LCASE.SEL) - ("Function,E" FN \TEDIT.STRIKEOUT.SEL.ON) - ("Function,e" FN \TEDIT.STRIKEOUT.SEL.OFF) - ("Function,F" FN \TEDIT.UNDERLINE.SEL.ON) - ("Function,f" FN \TEDIT.UNDERLINE.SEL.OFF) - ("Function,G" FN \TEDIT.SUBSCRIPTSEL) - ("Function,g" FN \TEDIT.SUPERSCRIPTSEL) - ("Function,H" FN \TEDIT.SMALLERSEL) - ("Function,h" FN \TEDIT.LARGERSEL) - ("Function,K" FN \TEDIT.SUPERSCRIPTSEL) - ("Function,k" FN \TEDIT.SUBSCRIPTSEL) - ("Function,L" FN \TEDIT.SUBSCRIPTSEL) - ("Function,l" FN \TEDIT.SUPERSCRIPTSEL) - ("Function,M" FN \TEDIT.DEFAULTSSEL) - ("Function,m" FN \TEDIT.SETDEFAULT.FROM.SEL) - ("Function,^A" FN \TEDIT.SHOWCARETLOOKS) - ("Meta,a" FN \TEDIT.SELECT.ALL) - ("Meta,A" FN \TEDIT.SELECT.ALL) - ("Meta,d" FN \TEDIT.MANPAGE) - ("Meta,D" FN \TEDIT.MANPAGE) - ("Meta,F" FN \TEDIT.KEY.FIND.BACKWARD) - ("Meta,f" FN \TEDIT.KEY.FIND) - ("Meta,g" FN \TEDIT.FINDAGAIN) - ("Meta,G" FN \TEDIT.FINDAGAIN.BACKWARD) - ("Meta,N" NEXT) - ("Meta,n" NEXT) - ("Meta,o" FN \TEDIT.CALL.ED) - ("Meta,O" FN \TEDIT.CALL.ED) - ("Meta,p" FN \TEDIT.PRINT.MENU) - ("Meta,P" FN \TEDIT.PRINT.MENU) - ("Meta,r" REDO) - ("Meta,R" REDO) - ("Meta,s" FN \TEDIT.KEY.SUBSTITUTE) - ("Meta,S" FN \TEDIT.KEY.SUBSTITUTE) - ("Meta,U" FN \TEDIT.UNDO.UNDO) - ("Meta,u" UNDO) - ("Meta,z" UNDO) - ("Meta,Z" \TEDIT.UNDO.UNDO) - ("Meta,<" FN \TEDIT.ONECHAR.BACKWARD) - ("Meta,," FN \TEDIT.ONECHAR.BACKWARD) - ("Meta,>" FN \TEDIT.ONECHAR.FORWARD) - ("Meta,." FN \TEDIT.ONECHAR.FORWARD) - ("Meta,^" FN \TEDIT.ONELINE.UP) - ("Meta,LF" FN \TEDIT.ONELINE.DOWN))) - -[MAPC \TEDIT.KEYS (FUNCTION (LAMBDA (ENTRY) - (SELECTQ (CADR ENTRY) - (FN (TEDIT.SETFUNCTION (CAR ENTRY) - (CADDR ENTRY))) - (TEDIT.SETSYNTAX (CAR ENTRY) - (CADR ENTRY] + + +(* ; "Read-table Utilities") + +(DECLARE%: DOEVAL@COMPILE DONTCOPY + +(GLOBALVARS TEDIT.READTABLE TEDIT.WORDBOUND.READTABLE) +) + +(ADDTOVAR CHARACTERNAMES (EMQUAD "357,55") + (ENQUAD "357,54") + (THINSPACE "357,57") + (FIGURESPACE "357,56")) +(DEFINEQ + +(\TEDIT.READTABLE + [LAMBDA NIL (* ; "Edited 15-Mar-2025 13:51 by rmk") + (* ; "Edited 11-Mar-2025 22:49 by rmk") + (* ; "Edited 24-Dec-2023 09:54 by rmk") + (* ; "Edited 20-Apr-2018 07:59 by rmk:") + (* jds "12-Sep-86 13:48") + + (* ;; "Create a TEdit read-table, to control which characters have what functions and call which commands.") + + (LET [(RTBL (create READTABLEP + READMACRODEFS _ (HASHARRAY 50] + (TEDIT.INSTALL.KEYBINDINGS NIL RTBL) + RTBL]) + +(\TEDIT.WORDBOUND.READTABLE + [LAMBDA NIL (* ; "Edited 15-Mar-2025 12:00 by rmk") + (* ; "Edited 13-Mar-2025 22:24 by rmk") + (* ; "Edited 22-May-92 15:10 by jds") + + (* ;; "Create a readtable which will let TEdit find word boundaries. A word boundary is any point where the SYNCODE of the adjacent characters is different") + + (LET* ((RTBL (create READTABLEP + READMACRODEFS _ (HARRAY 50))) + (READSA (fetch READSA of RTBL)) + (TEXTTTC (\TEDIT.TTC TEXT))) + + (* ;; "By default, every character except those noted below is a punctuation character") + + (for CH from 0 to 255 do (\SETSYNCODE READSA CH (\TEDIT.TTC PUNCT))) + (for CH from (CHARCODE A) to (CHARCODE Z) do (\SETSYNCODE READSA CH TEXTTTC)) + (* ; "Upper case alpha") + (for CH from (CHARCODE a) to (CHARCODE z) do (\SETSYNCODE READSA CH TEXTTTC)) + (* ; "Lower case alpha") + (for CH from (CHARCODE 0) to (CHARCODE 9) do (\SETSYNCODE READSA CH TEXTTTC)) + (* ; "And digits are text characters") + + (* ;; "European chars and accents are text characters:") + + (for CH from (CHARCODE "361,41") to (CHARCODE "361,376") do (\SETSYNCODE READSA CH TEXTTTC) + ) + (for CH from (CHARCODE "0,301") to (CHARCODE "0,317") do (\SETSYNCODE READSA CH TEXTTTC)) + (for CH from (CHARCODE "0,341") to (CHARCODE "0,376") do (\SETSYNCODE READSA CH TEXTTTC)) + (for CH in (CHARCODE (CR LF EOL SPACE TAB FORM)) do (\SETSYNCODE READSA CH (\TEDIT.TTC + WHITESPACE))) + (* ; + "And these are nonbreaking white space") + (for CH in '(EMQUAD ENQUAD THINSPACE FIGURESPACE) do (\SETSYNCODE READSA (CHARCODE.DECODE + CH) + TEXTTTC)) + RTBL]) + +(TEDIT.GETSYNTAX + [LAMBDA (CH TABLE) (* ; "Edited 12-Mar-2025 12:55 by rmk") + (* ; "Edited 24-Dec-2023 09:47 by rmk") + (* ; "Edited 31-Mar-87 10:01 by jds") + + (* ;; "Find TEdit's interpretation of a given character") + + (SELECTC (\SYNCODE (fetch READSA of (if (NULL TABLE) + then TEDIT.READTABLE + elseif (TEXTSTREAM TABLE T) + then (OR (GETTOBJ (TEXTOBJ TABLE) + TXTRTBL) + TEDIT.READTABLE) + else TABLE)) + (CL:IF (OR (LITATOM CH) + (STRINGP CH)) + (CHARCODE.DECODE CH) + CH)) + (WORDDELETE.TTC + 'WORDDELETE) + (WORDDELETE.FORWARD.TTC + 'WORDDELETE.FORWARD) + (CHARDELETE.TTC + 'CHARDELETE) + (CHARDELETE.FORWARD.TTC + 'CHARDELETE.FORWARD) + (DELETE.TTC 'DELETE) + (UNDO.TTC 'UNDO) + (REDO.TTC 'REDO) + (FUNCTIONCALL.TTC + 'FN) + (CMD.TTC 'CMD) + (NEXT.TTC 'NEXT) + (EXPAND.TTC 'EXPAND) + NIL]) + +(TEDIT.SETSYNTAX + [LAMBDA (CHAR CLASS RDTBL) (* ; "Edited 13-Mar-2025 21:52 by rmk") + (* ; "Edited 24-Dec-2023 09:17 by rmk") + (* ; "Edited 31-Mar-87 10:00 by jds") + (* ; + "SETS TEDIT-STYLE SYNTAX BITS IN A TERMTABLE") + (SETQ CHAR (CL:IF (OR (LITATOM CHAR) + (STRINGP CHAR)) + (CHARCODE.DECODE CHAR) + CHAR)) + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (TEXTOBJ RDTBL) + TXTRTBL) + TEDIT.READTABLE) + else RDTBL)) + (PROG1 (TEDIT.GETSYNTAX CHAR RDTBL) + (\SETSYNCODE (fetch READSA of RDTBL) + CHAR + (OR (CADR (ASSOC CLASS \TEDIT.TTCCODES)) + (\TEDIT.TTC NONE))))]) + +(TEDIT.GETFUNCTION + [LAMBDA (CHARCODE RDTBL) (* ; "Edited 13-Mar-2025 22:56 by rmk") + (* ; "Edited 7-Mar-2025 12:02 by rmk") + (* jds "19-Sep-85 17:06") + + (* ;; "Gets the FN that is called when CH is hit inside TEDIT.") + + (CL:UNLESS (CHARCODEP CHARCODE) + (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (TEXTOBJ RDTBL) + TXTRTBL) + TEDIT.READTABLE) + else RDTBL)) + (CL:WHEN (AND RDTBL (type? READTABLEP RDTBL) + (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of RDTBL) + CHARCODE)) + (fetch READMACRODEFS of RDTBL)) + [CAR (FETCH MACROFN OF (GETHASH CHARCODE (fetch READMACRODEFS of RDTBL])]) + +(TEDIT.SETFUNCTION + [LAMBDA (CHARCODE FN RDTBL) (* ; "Edited 13-Mar-2025 22:51 by rmk") + (* ; "Edited 7-Mar-2025 12:03 by rmk") + (* ; "Edited 31-Mar-87 10:58 by jds") + (* ; + "Set TEDITs (read) table so that FN is called whenever CHARCODE is typed.") + (* ; + "If FN is NIL, make the character be normal again.") + (CL:UNLESS (CHARCODEP CHARCODE) + (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) (* ; + "Mark the character whether or not it invokes a function") + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (TEXTOBJ RDTBL) + TXTRTBL) + TEDIT.READTABLE) + else RDTBL)) (* ; + "Mark the character as invoking a function") + (\SETSYNCODE (fetch READSA of RDTBL) + CHARCODE + (CL:IF FN + (\TEDIT.TTC FUNCTIONCALL) + (\TEDIT.TTC NONE))) + (CL:UNLESS (fetch READMACRODEFS of RDTBL) + (replace READMACRODEFS of RDTBL with (HARRAY 50))) (* ; + "Make sure there's a hash table to store the function in.") + (PUTHASH CHARCODE (CREATE READMACRODEF + MACROTYPE _ 'TEDIT + MACROFN _ (LIST FN)) + (fetch READMACRODEFS of RDTBL]) + +(TEDIT.WORDGET + [LAMBDA (CH TABLE) (* jds "27-MAY-83 13:24") + (\SYNCODE (fetch READSA of (OR TABLE TEDIT.WORDBOUND.READTABLE)) + (COND + ((SMALLP CH)) + (T (CHCON1 CH]) + +(TEDIT.WORDSET + [LAMBDA (CHARCODE CLASS TABLE) (* ; "Edited 13-Mar-2025 21:43 by rmk") + (* jds " 1-JUN-83 12:23") + + (* ;; "Sets Tedit syntax bits in a termtable. ") + + (\SETSYNCODE (fetch READSA of (OR TABLE TEDIT.WORDBOUND.READTABLE)) + (OR (SMALLP CHARCODE) + (CHARCODE.DECODE CHARCODE)) + (OR (FIXP CLASS) + (SELECTQ CLASS + (PUNCT (\TEDIT.TTC PUNCT)) + (WHITESPACE (\TEDIT.TTC WHITESPACE)) + (\TEDIT.TTC TEXT]) + +(TEDIT.ATOMBOUND.READTABLE + [LAMBDA (READTABLE) (* ; "Edited 14-Mar-2025 18:13 by rmk") + (* ; "Edited 25-Dec-2023 13:10 by rmk") + (* ; "Edited 5-Dec-2023 23:47 by rmk") + + (* ;; "A wordbound table that approximates the unquoted OTHER characters of Lisp atoms as defined by READTABLE or the current readtable. This is specified as the BOUNDTABLE for Lisp source code edits. Not perfect, but not bad.") + + (* ;; "Could cache this for common readtables (interlisp, commonlisp)") + + (LET ((TABLE (\TEDIT.WORDBOUND.READTABLE))) (* ; + "\TEDIT.WORDBOUND.READTABLE creates a new one each time.") + (for CODE IN (GETSYNTAX 'OTHER (OR READTABLE *READTABLE*)) do (TEDIT.WORDSET CODE + 'TEXT TABLE)) + (for CODE IN (GETSYNTAX 'BREAK (OR READTABLE *READTABLE*)) do (TEDIT.WORDSET CODE + 'PUNCT TABLE)) + (TEDIT.WORDSET (CHARCODE %:) + 'TEXT TABLE) + TABLE]) +) + + + +(* ; "Keybindings") + +(DECLARE%: EVAL@COMPILE DONTCOPY +(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE + +(RPAQQ \TEDIT.TTCCODES + ((NONE 0) + (CHARDELETE 1) + (WORDDELETE 2) + (DELETE 3) + (FUNCTIONCALL 4) + (REDO 5) + (UNDO 6) + (CMD 7) + (NEXT 8) + (EXPAND 9) + (CHARDELETE.FORWARD 10) + (WORDDELETE.FORWARD 11) + (PUNCT 20) + (TEXT 21) + (WHITESPACE 22))) + + +(CONSTANTS \TEDIT.TTCCODES) +) +(DECLARE%: EVAL@COMPILE + +(PUTPROPS \TEDIT.TTC MACRO [(CLASS) + (CONSTANT (CADR (ASSOC 'CLASS \TEDIT.TTCCODES]) +) + +(* "END EXPORTED DEFINITIONS") + +) +(DEFINEQ + +(TEDIT.INSTALL.KEYBINDINGS + [LAMBDA (KEYBINDINGS RDTBL KEYACTIONS) (* ; "Edited 15-Mar-2025 15:20 by rmk") + (* ; "Edited 13-Mar-2025 23:25 by rmk") + (* ; "Edited 11-Mar-2025 22:03 by rmk") + + (* ;; "Installs KEYBINDINGS in the Tedit RDTBL. A binding is an action-name followed by a list of character-name strings or Tedit built-in action items (like NEXT, UNDO). The implementation of the action is taken from entries in the TEDIT.KEYACTIONS list.") + + (* ;; "This will overwrite previous assignments in RDTBL, possibly add new ones. ") + + (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (TEXTOBJ RDTBL) + TXTRTBL) + TEDIT.READTABLE) + else RDTBL)) + (CL:UNLESS KEYACTIONS (SETQ KEYACTIONS TEDIT.KEYACTIONS)) + [for KB A ACTION in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) + when (AND [SETQ ACTION (find PAIR in TEDIT.KEYACTIONS suchthat + + (* ;; + "An ASSOC that allows synonym keys") + + (EQMEMB (CAR KB) + (CAR PAIR] + (SETQ A (CADR ACTION))) do (for CHAR in (CDR KB) + do (CL:UNLESS (CHARCODEP CHAR) + (SETQ CHAR (CHARCODE.DECODE CHAR))) + (CL:WHEN (EQ (CAR ACTION) + 'CHARDELETE.FORWARD)) + (TEDIT.SETFUNCTION CHAR A RDTBL) + (* ; "Set the method") + (CL:WHEN NIL + (ASSOC (CAR ACTION) + \TEDIT.TTCCODES) + (* ; + "A tag like NEXT, UNDO. Setup the termtable FWIW ") + (TEDIT.SETSYNTAX CHAR (CAR ACTION) + RDTBL))] + RDTBL]) + +(TEDIT.CLEAR.KEYBINDINGS + [LAMBDA (RDTBL KEYBINDINGS) (* ; "Edited 15-Mar-2025 12:02 by rmk") + + (* ;; "Removes the Tedit function bindings to the keys in KEYBINDINGS, or all current bindings if KEYBINDINGS is T") + + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (TEXTOBJ RDTBL) + TXTRTBL) + TEDIT.READTABLE) + else RDTBL)) + (CL:WHEN (fetch READMACRODEFS of RDTBL) + [if (EQ KEYBINDINGS T) + then [MAPHASH (fetch READMACRODEFS of RDTBL) + (FUNCTION (LAMBDA (VAL CHARCODE) + (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of RDTBL) + CHARCODE)) + (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) + (CL:WHEN (ASSOC CHARCODE \TEDIT.TTCCODES) + (* ; + "A tag like NEXT, UNDO. Setup the termtable FWIW ") + (TEDIT.SETSYNTAX CHARCODE CHARCODE RDTBL)))] + KEYBINDINGS + else (for KB in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) + do (for CHARCODE in (CDR KB) do (CL:UNLESS (CHARCODEP CHARCODE) + (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) + (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) + (CL:WHEN (ASSOC (CAR KB) + \TEDIT.TTCCODES) + (* ; + "A tag like NEXT, UNDO. Setup the termtable FWIW ") + (TEDIT.SETSYNTAX CHARCODE (CAR KB) + RDTBL))])]) +) + +(RPAQQ TEDIT.KEYACTIONS + ( + (* ;; "This defines the implementation of the named actions. They are activated by keybinding specifications given to TEDIT.INSTALL.KEYBINDINGS.") + + + (* ;; "") + + + (* ;; "History") + + (UNDO (TEDIT.UNDO TSTREAM)) + (UNDO.UNDO \TEDIT.UNDO.UNDO) + (* ; "CHECK") + (REDO TEDIT.REDO) + + (* ;; "") + + + (* ;; "Find") + + ((FIND.FORWARD FIND) + (\TEDIT.KEY.FIND TSTREAM)) + (FIND.BACKWARD (\TEDIT.KEY.FIND TSTREAM NIL T)) + (FIND.FORWARD-AGAIN (\TEDIT.KEY.FIND TSTREAM T)) + (FIND.BACKWARD-AGAIN (\TEDIT.KEY.FIND TSTREAM T T)) + (SUBSTITUTE \TEDIT.KEY.SUBSTITUTE) + (NEXT TEDIT.NEXT) + + (* ;; "") + + + (* ;; "Character looks") + + (BOLD.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'ON)) + (BOLD.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'OFF)) + (BOLD.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'BOLD 'TOGGLE)) + (ITALIC.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'ON)) + (ITALIC.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'OFF)) + (ITALIC.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'ITALIC 'TOGGLE)) + (UCASE (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION U-CASECODE))) + (LCASE (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION L-CASECODE))) + (INITIALCAP (\TEDIT.KEY.TRANSFORM TSTREAM (FUNCTION CAP-CASECODE))) + (STRIKEOUT.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'ON)) + (STRIKEOUT.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'OFF)) + (STRIKEOUT.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'STRIKEOUT 'TOGGLE)) + (UNDERLINE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'ON)) + (UNDERLINE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'OFF)) + (UNDERLINE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNDERLINE 'TOGGLE)) + (OVERLINE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'ON)) + (OVERLINE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'OFF)) + (OVERLINE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'OVERLINE 'TOGGLE)) + (UNBREAKABLE.ON (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'ON)) + (UNBREAKABLE.OFF (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'OFF)) + (UNBREAKABLE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'TOGGLE)) + (SUBSCRIPT \TEDIT.SUBSCRIPTSEL) + (SUPERSCRIPT \TEDIT.SUPERSCRIPTSEL) + (SMALLER (\TEDIT.KEY.SIZE TSTREAM T)) + (LARGER (\TEDIT.KEY.SIZE TSTREAM)) + (FAMILYN (\TEDIT.KEY.FAMILYN TSTREAM CHARCODE)) + (DEFAULTS \TEDIT.DEFAULTSSEL) + (SHOW.CHARLOOKS \TEDIT.SHOWCARETLOOKS) + + (* ;; "") + + + (* ;; "Paragraph looks") + + (NEST (\TEDIT.NEST TSTREAM)) + (UNNEST (\TEDIT.UNNEST TSTREAM T)) + ((QUAD CENTER) + (\TEDIT.KEY.QUAD TSTREAM)) + (QUAD.REVERSE (\TEDIT.KEY.QUAD TSTREAM T)) + + (* ;; "") + + + (* ;; "Cursor/selection") + + (ONECHAR.BACKWARD \TEDIT.ONECHAR.BACKWARD) + (ONECHAR.FORWARD \TEDIT.ONECHAR.FORWARD) + (LINE.UP \TEDIT.ONELINE.UP) + (LINE.DOWN \TEDIT.ONELINE.DOWN) + (ONEWORD.FORWARD \TEDIT.ONEWORD.FORWARD) + (ONEWORD.BACKWARD \TEDIT.ONEWORD.BACKWARD) + (LINE.BEGIN \TEDIT.LINE.BEGIN) + (LINE.END \TEDIT.LINE.END) + (DOCUMENT.BEGIN \TEDIT.DOCUMENT.BEGIN) + (DOCUMENT.END \TEDIT.DOCUMENT.END) + (ALL \TEDIT.SELECT.ALL) + + (* ;; "") + + + (* ;; "Deletion ") + + ((CHARDELETE CHARDELETE.BACKWORD) + (\TEDIT.CHARDELETE TSTREAM)) + (CHARDELETE.FORWARD (\TEDIT.CHARDELETE TSTREAM T)) + (WORDDELELETE \TEDIT.WORDDELETE) + (WORDDELETE.FORWARD \TEDIT.WORDDELETE.FORWARD) + (LINEDELETE.FORWARD \TEDIT.LINEDELETE.FORWARD) + (LINEDELETE.BACKWARD \TEDIT.LINEDELETE.BACKWARD) + + (* ;; "") + + + (* ;; "Miscellaneous") + + (MANPAGE \TEDIT.MANPAGE) + (OPEN.SEDIT \TEDIT.CALL.ED) + (PRINT.MENU \TEDIT.PRINT.MENU) + (EXPAND \TEDIT.ABBREV.EXPAND) + (GET.OBJECT GET.OBJ.FROM.USER) + (OPENLINE \TEDIT.KEY.OPENLINE) + + (* ;; "") + + + (* ;; "Clipboard") + + (CLIPBOARD-PASTE PASTEFROMCLIPBOARD) + (CLIPBOARD-COPY \TEDIT.COPYTOCLIPBOARD) + (CLIPBOARD-EXTRACT \TEDIT.EXTRACTTOCLIPBOARD) + + (* ;; "") + + + (* ;; "Wheelscroll") + + (WHEELSCROLL-UP (WHEELSCROLL 'VERTICAL T)) + (WHEELSCROLL-DOWN (WHEELSCROLL 'VERTICAL)) + (WHEELSCROLL-LEFT (WHEELSCROLL 'HORIZONTAL)) + (WHEELSCROLL-RIGHT (WHEELSCROLL 'HORIZONTAL T)))) + +(RPAQQ TEDIT.KEYBINDINGS + ( + (* ;; "Establishes key bindings for particular Tedit key actions. Function,xxx roughly correspond to Koto release notes, but mostly correspond to the current keyboard keyactions for e.g. BOLD, ITALIC, etc. perhaps in \DLIONKEYACTIONS") + + + (* ;; "") + + + (* ;; "History") + + (UNDO "Meta,u" "Meta,z" "Function,4" "Function,44") + (UNDO.UNDO "Meta,U" "Meta,Z") + (REDO "Meta,r" "Meta,R" "Function,10" "Function,50") + + (* ;; "") + + + (* ;; "Find") + + (FIND.FORWARD "Meta,f" "Function,3" "Function,43") + (FIND.BACKWARD "Meta,F") + (FIND.FORWARD-AGAIN "Meta,g") + (FIND.BACKWARD-AGAIN "Meta,G") + (SUBSTITUTE "Meta,s" "Meta,S") + (NEXT "Meta,N" "Meta,n" "Function,22") + + (* ;; "") + + + (* ;; "Character looks") + + (BOLD.ON "Function,102") + (BOLD.OFF "Function,142") + (BOLD.TOGGLE) + (ITALIC.ON "Function,103") + (ITALIC.OFF "Function,143") + (ITALIC.TOGGLE) + (UCASE "Function,104") + (LCASE "Function,144") + (STRIKEOUT.ON "Function,105") + (STRIKEOUT.OFF "Function,145") + (STRIKEOUT.TOGGLE) + (UNDERLINE.ON "Function,106") + (UNDERLINE.OFF "Function,146") + (UNDERLINE.TOGGLE) + (OVERLINE.ON) + (OVERLINE.OFF) + (OVERLINE.TOGGLE) + (SUBSCRIPT "Function,114") + (SUPERSCRIPT "Function,113") + (SMALLER "Function,110") + (LARGER "Function,150") + (FAMILYN "Meta,One" "Meta,Two" "Meta,Three" "Meta,Four" "Meta,Five" "Meta,Six") + (DEFAULTS "Function,115" "Function,155") + (SHOW.CHARLOOKS "Function,1") + + (* ;; "") + + + (* ;; "Paragraph looks") + + (QUAD "Function,101") + (NEST "Meta,[") + (UNNEST "Meta,]") + + (* ;; "") + + + (* ;; "Cursor/selection") + + (ONECHAR.BACKWARD "Meta,<" "Meta,,") + (* ; "From arrows") + (ONECHAR.FORWARD "Meta,>" "Meta,.") + (LINE.UP "Meta,^") + (LINE.DOWN "Meta,LF") + (ONEWORD.FORWARD) + (ONEWORD.BACKWARD) + (LINE.BEGIN) + (LINE.END) + (ALL "Meta,a" "Meta,A") + + (* ;; "") + + + (* ;; "Deletion") + + (CHARDELETE "BS" "^A") + (* ; "CHARDELETE/WORDDELETE are TTC") + (CHARDELETE.FORWARD "^W" "^U") + (* ; "keyactions for DEL key ??") + (WORDDELELETE) + (WORDDELETE.FORWARD) + (* ; + "^W isn't available--chardelete forward") + (LINEDELETE.FORWARD) + (LINEDELETE.BACKWARD) + + (* ;; "") + + + (* ;; "Miscellaneous") + + (MANPAGE "Meta,D" "Meta,d") + (OPEN.SEDIT "Meta,O" "Meta,o") + (PRINT.MENU "Meta,P" "Meta,p") + (EXPAND "^X") + (GET.OBJECT "^O") + + (* ;; "") + + + (* ;; "Wheelscroll ") + + (WHEELSCROLL-UP "WHEELSCROLL-UP") + (WHEELSCROLL-DOWN "WHEELSCROLL-DOWN") + (WHEELSCROLL-LEFT "WHEELSCROLL-LEFT") + (WHEELSCROLL-RIGHT "WHEELSCROLL-RIGHT") + + (* ;; "") + + + (* ;; "Clipboard") + + (CLIPBOARD-PASTE "Meta,V" "Meta,v") + (CLIPBOARD-COPY "Meta,C" "Meta,c") + (CLIPBOARD-EXTRACT "Meta,X" "Meta,x"))) + +(RPAQQ TEDIT.DORADO.KEYBINDINGS + ( + (* ;; "Taken from lispusers>TKDORADO, these make the indicatedd Tedit commands available from the Dorado keyboard.") + + (DEFAULTS "Meta,^V") + (BOLD.ON "Meta,^B") + (BOLD.OFF "Meta,^N") + (ITALIC.ON "Meta,^I") + (ITALIC.OFF "Meta,^O") + (OVERLINE.ON "Meta,^D") + (OVERLINE.OFF "Meta,^F") + (STRIKEOUT.ON "Meta,^G") + (STRIKEOUT.OFF "Meta,^H") + (UNDERLINE.ON "Meta,^J") + (UNDERLINE.OFF "Meta,^K") + (SMALLER "Meta,^[") + (LARGER "Meta,^^]") + (SUBSCRIPT "Meta,^^") + (SUPERSCRIPT "Meta,^_") + (QUAD "Meta,^C"))) + + + +(* ; "Installation") + +(DECLARE%: DONTEVAL@LOAD DOCOPY + +(RPAQ TEDIT.READTABLE (\TEDIT.READTABLE)) + +(RPAQ TEDIT.WORDBOUND.READTABLE (\TEDIT.WORDBOUND.READTABLE)) +) + + + +(* ;; "On-screen formatting buttons (TEDIT.BUTTONS.BUILD) creates the default button menu") + + +(RPAQQ TEDIT.BUTTONS.SPEC + ((Bold BOLD.ON BOLD.OFF) + (Italic ITALIC.ON ITALIC.OFF) + (Case CASE UCASE LCASE) + ((Strike- out) + STRIKEOUT.ON STRIKEOUT.OFF) + ((Under- line) + UNDERLINE.ON UNDERLINE.OFF) + ((Super/ Sub) + SUPERSCRIPT SUBSCRIPT) + ((Larger Smaller) + (Justify QUAD) + LARGER SMALLER) + (Defaults DEFAULTS) + (Show SHOW.CHARLOOKS) + (Redo REDO))) +(DEFINEQ + +(TEDIT.BUTTONS.BUILD + [LAMBDA (BUTTONS TITLE NROWS KEYBINDINGS) (* ; "Edited 16-Mar-2025 21:12 by rmk") + (* ; "Edited 15-Mar-2025 15:24 by rmk") + (* ; "Edited 5-Nov-85 15:35 by lmm") + + (* ;; "Each button is of the form (label action1 [action2]), e.g. (BOLD BOLD.ON BOLD.OFF) or (JUSTIFY QUAD)") + + (CL:UNLESS BUTTONS (SETQ BUTTONS TEDIT.BUTTONS.SPEC)) + (CL:UNLESS TITLE + (SETQ TITLE '(Tedit Buttons))) (* ; "List for the Shrink button label") + (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) + + (* ;; "The constructed menu will bksysbuf a character bound to action1 if the shift is not down, otherwise a character bound to action2. action2 is action1 if it is not specified. Buttons with no actions are skipped.") + + (LET (ICONWINDOW ITEMS) + (SETQ ITEMS (for BUTTON CHARS in BUTTONS eachtime (CL:WHEN (AND (CDR BUTTON) + (NULL (CDDR BUTTON))) + [SETQ BUTTON + (APPEND BUTTON (CONS (CADR BUTTON]) + when [SETQ CHARS (for ANAME CHAR in (CDR BUTTON) + when (SETQ CHAR (CADR (ASSOC ANAME KEYBINDINGS))) + collect (CL:IF (CHARCODEP CHAR) + CHAR + (CHARCODE.DECODE CHAR))] + collect (LIST (TEDIT.BUTTONBITMAP.FILL (CAR BUTTON)) + CHARS))) + [SETQ ICONWINDOW (SHRINKW (ADDMENU [create MENU + ITEMS _ ITEMS + TITLE _ (CL:IF (LISTP TITLE) + (SUBSTRING TITLE 2 -2) + TITLE) + MENUROWS _ (OR NROWS 1) + WHENSELECTEDFN _ + (FUNCTION (LAMBDA (X) + (CL:WHEN (EQ '\TEDIT.PROCENTRYFN + (FETCH (PROCESS + PROCTTYENTRYFN + ) + OF (TTY.PROCESS))) + [BKSYSCHARCODE + (CL:IF (SHIFTDOWNP 'SHIFT) + (CADR (CADR X)) + (CAR (CADR X)))])] + NIL + (create POSITION + XCOORD _ (PLUS (DIFFERENCE + (QUOTIENT SCREENWIDTH 2) + (QUOTIENT (TIMES (BITMAPWIDTH + TEDIT.BUTTONBITMAP + ) + (LENGTH ITEMS)) + 2)) + (TIMES 2 WBorder)) + YCOORD _ 0)) + (TEDIT.BUTTONBITMAP.FILL TITLE) + '(0 . 0] + [WINDOWPROP ICONWINDOW 'BUTTONEVENTFN (FUNCTION (LAMBDA (ICONW) + (CL:WHEN (LASTMOUSESTATE (OR LEFT MIDDLE)) + (CURSOR (PROG1 (CURSOR WAITINGCURSOR) + (EXPANDW ICONW))))] + ICONWINDOW]) + +(TEDIT.BUTTONBITMAP.FILL + [LAMBDA (X) (* ; "Edited 16-Mar-2025 21:12 by rmk") + (* ; "Edited 15-Mar-2025 14:55 by rmk") + (* lmm " 5-Nov-85 14:04") + (LET ((BITMAP (BITMAPCOPY TEDIT.BUTTONBITMAP)) + DS QUARTER REGION) + (SETQ DS (DSPCREATE BITMAP)) + (DSPFONT MENUFONT DS) + (if (LISTP X) + then (* ; + "this is supposed to have two labels, one on top of the other") + (SETQ QUARTER (IQUOTIENT (BITMAPHEIGHT BITMAP) + 4)) + (CENTERPRINTINREGION (CADR X) + (SETQ REGION (create REGION + LEFT _ 0 + BOTTOM _ QUARTER + WIDTH _ (BITMAPWIDTH BITMAP) + HEIGHT _ QUARTER)) + DS) + (replace BOTTOM of REGION with (ITIMES 2 QUARTER)) + (CENTERPRINTINREGION (CAR X) + REGION DS) + else (CENTERPRINTINREGION X (create REGION + LEFT _ 0 + BOTTOM _ 0 + WIDTH _ (BITMAPWIDTH BITMAP) + HEIGHT _ (BITMAPHEIGHT BITMAP)) + DS)) + BITMAP]) +) + +(RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL +) (DECLARE%: DONTCOPY - (FILEMAP (NIL (6442 28702 (\TEDIT.BOLD.SEL.OFF 6452 . 6790) (\TEDIT.BOLD.SEL.ON 6792 . 7120) ( -\TEDIT.CENTER.SEL 7122 . 8638) (\TEDIT.CENTER.SEL.REV 8640 . 8936) (\TEDIT.DEFAULTS.CARET 8938 . 9431) - (\TEDIT.DEFAULTSSEL 9433 . 9880) (\TEDIT.SETDEFAULT.FROM.SEL 9882 . 10559) (\TEDIT.KEY.FIND 10561 . -15628) (\TEDIT.KEY.FIND.SEARCHSTRING 15630 . 16770) (\TEDIT.GET.TARGET.STRING 16772 . 18486) ( -\TEDIT.KEY.FIND.BACKWARD 18488 . 18793) (\TEDIT.FINDAGAIN.BACKWARD 18795 . 19206) (\TEDIT.FINDAGAIN -19208 . 19499) (\TEDIT.ITALIC.SEL.OFF 19501 . 19753) (\TEDIT.ITALIC.SEL.ON 19755 . 19948) ( -\TEDIT.LARGERSEL 19950 . 20238) (\TEDIT.LCASE.SEL 20240 . 21635) (\TEDIT.SHOWCARETLOOKS 21637 . 23237) - (\TEDIT.SMALLERSEL 23239 . 23530) (\TEDIT.SUBSCRIPTSEL 23532 . 23735) (\TEDIT.SUPERSCRIPTSEL 23737 . -23941) (\TEDIT.UCASE.SEL 23943 . 25282) (\TEDIT.UNDERLINE.SEL.OFF 25284 . 25482) ( -\TEDIT.UNDERLINE.SEL.ON 25484 . 25680) (\TEDIT.STRIKEOUT.SEL.ON 25682 . 25878) ( -\TEDIT.STRIKEOUT.SEL.OFF 25880 . 26078) (\TEDIT.SELECT.ALL 26080 . 26396) (\TEDIT.KEY.SUBSTITUTE 26398 - . 26619) (\TEDIT.MANPAGE 26621 . 27868) (\TEDIT.CALL.ED 27870 . 28700)) (28703 37902 ( -\TEDIT.ONECHAR.BACKWARD 28713 . 29842) (\TEDIT.ONECHAR.FORWARD 29844 . 31062) (\TEDIT.ONELINE.UP 31064 - . 34025) (\TEDIT.ONELINE.DOWN 34027 . 35684) (\TEDIT.ONELINE.MOVE 35686 . 37900)) (37974 44485 ( -\TEDIT.BOLD.CARET.OFF 37984 . 38519) (\TEDIT.BOLD.CARET.ON 38521 . 39053) (\TEDIT.ITALIC.CARET.OFF -39055 . 39592) (\TEDIT.ITALIC.CARET.ON 39594 . 40137) (\TEDIT.LARGER.CARET 40139 . 40674) ( -\TEDIT.SMALLER.CARET 40676 . 41213) (\TEDIT.SUBSCRIPT.CARET 41215 . 41756) (\TEDIT.SUPERSCRIPT.CARET -41758 . 42300) (\TEDIT.UNDERLINE.CARET.OFF 42302 . 42842) (\TEDIT.UNDERLINE.CARET.ON 42844 . 43382) ( -\TEDIT.STRIKEOUT.CARET.OFF 43384 . 43924) (\TEDIT.STRIKEOUT.CARET.ON 43926 . 44483)) (44554 45256 ( -\TK.DESCRIBEFONT 44564 . 45254))))) + (FILEMAP (NIL (3403 11193 (\TEDIT.KEY.CHARLOOKS 3413 . 4355) (\TEDIT.KEY.QUAD 4357 . 6450) ( +\TEDIT.DEFAULTSSEL 6452 . 7063) (\TEDIT.SETDEFAULT.FROM.SEL 7065 . 7742) (\TEDIT.KEY.SIZE 7744 . 8194) + (\TEDIT.SUBSCRIPTSEL 8196 . 8399) (\TEDIT.SUPERSCRIPTSEL 8401 . 8605) (\TEDIT.KEY.TRANSFORM 8607 . +10182) (\TEDIT.KEY.OPENLINE 10184 . 10638) (\TEDIT.KEY.FAMILYN 10640 . 11191)) (11194 11483 ( +CAP-CASECODE 11204 . 11481)) (11517 14143 (\TEDIT.SHOWCARETLOOKS 11527 . 13236) (\TEDIT.DESCRIBEFONT +13238 . 14141)) (14174 28231 (\TEDIT.ONECHAR.BACKWARD 14184 . 15313) (\TEDIT.ONECHAR.FORWARD 15315 . +16533) (\TEDIT.ONELINE.UP 16535 . 19496) (\TEDIT.ONELINE.DOWN 19498 . 21155) (\TEDIT.ONELINE.MOVE +21157 . 23371) (\TEDIT.ONEWORD.BACKWARD 23373 . 24410) (\TEDIT.ONEWORD.FORWARD 24412 . 25448) ( +\TEDIT.LINE.BEGIN 25450 . 26380) (\TEDIT.LINE.END 26382 . 27470) (\TEDIT.DOCUMENT.BEGIN 27472 . 27831) + (\TEDIT.DOCUMENT.END 27833 . 28229)) (28232 30076 (\TEDIT.LINEDELETE.FORWARD 28242 . 29142) ( +\TEDIT.LINEDELETE.BACKWARD 29144 . 30074)) (30077 32331 (\TEDIT.NEST 30087 . 32329)) (32385 40290 ( +\TEDIT.KEY.FIND 32395 . 37430) (\TEDIT.KEY.FIND.SEARCHSTRING 37432 . 38572) (\TEDIT.GET.TARGET.STRING +38574 . 40288)) (40321 42953 (\TEDIT.KEY.SUBSTITUTE 40331 . 40552) (\TEDIT.MANPAGE 40554 . 41801) ( +\TEDIT.CALL.ED 41803 . 42633) (\TEDIT.SELECT.ALL 42635 . 42951)) (42980 48560 (\TEDIT.CLIPBOARD 42990 + . 44745) (\TEDIT.COPYTOCLIPBOARD 44747 . 45527) (\TEDIT.EXTRACTTOCLIPBOARD 45529 . 45724) ( +\TEDIT.WRITE.SEL 45726 . 48558)) (48912 60517 (\TEDIT.READTABLE 48922 . 49748) ( +\TEDIT.WORDBOUND.READTABLE 49750 . 52379) (TEDIT.GETSYNTAX 52381 . 53900) (TEDIT.SETSYNTAX 53902 . +55107) (TEDIT.GETFUNCTION 55109 . 56281) (TEDIT.SETFUNCTION 56283 . 58269) (TEDIT.WORDGET 58271 . +58532) (TEDIT.WORDSET 58534 . 59165) (TEDIT.ATOMBOUND.READTABLE 59167 . 60515)) (61204 66454 ( +TEDIT.INSTALL.KEYBINDINGS 61214 . 64070) (TEDIT.CLEAR.KEYBINDINGS 64072 . 66452)) (76293 82733 ( +TEDIT.BUTTONS.BUILD 76303 . 81001) (TEDIT.BUTTONBITMAP.FILL 81003 . 82731))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 2b39e65e707254e6a76ba7d7c3d5a7d436525f01..e59f3dcc8e4e8a3dde889b468db5728e77c3c324 100644 GIT binary patch literal 32715 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 Ci$|IO literal 19748 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 diff --git a/library/tedit/TEDIT-HISTORY b/library/tedit/TEDIT-HISTORY index 2bbc317e1..642df4d07 100644 --- a/library/tedit/TEDIT-HISTORY +++ b/library/tedit/TEDIT-HISTORY @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 6-Feb-2025 15:42:44" {WMEDLEY}TEDIT>TEDIT-HISTORY.;221 53072 +(FILECREATED "16-Mar-2025 18:50:43" {WMEDLEY}tedit>TEDIT-HISTORY.;225 53719 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.HISTORYADD.COMPOSITE) + :CHANGES-TO (FNS \TEDIT.UNDO1 TEDIT.REDO) - :PREVIOUS-DATE " 2-Feb-2025 11:32:56" {WMEDLEY}TEDIT>TEDIT-HISTORY.;220) + :PREVIOUS-DATE "15-Mar-2025 22:42:11" {WMEDLEY}tedit>TEDIT-HISTORY.;224) (PRETTYCOMPRINT TEDIT-HISTORYCOMS) @@ -326,7 +326,8 @@ (DEFINEQ (TEDIT.UNDO - [LAMBDA (TSTREAM NOUNDOUNDO) (* ; "Edited 8-Dec-2024 19:41 by rmk") + [LAMBDA (TSTREAM NOUNDOUNDO) (* ; "Edited 13-Mar-2025 15:47 by rmk") + (* ; "Edited 8-Dec-2024 19:41 by rmk") (* ; "Edited 25-Nov-2024 13:17 by rmk") (* ; "Edited 12-Aug-2024 10:49 by rmk") (* ; "Edited 3-Jul-2024 21:21 by rmk") @@ -372,6 +373,7 @@ (* ;; "We can get into trouble if there is an interrupt in the middle of undoing the full set of events for a previous action, or even in the middle of a singleton event.") + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (TEDIT.PROMPTCLEAR TSTREAM) (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) (\TEDIT.UNDO1 TSTREAM EVENT) @@ -394,7 +396,8 @@ (\TEDIT.SHOWSEL SEL T TEXTOBJ]) (\TEDIT.UNDO1 - [LAMBDA (TSTREAM EVENT) (* ; "Edited 25-Nov-2024 13:56 by rmk") + [LAMBDA (TSTREAM EVENT) (* ; "Edited 16-Mar-2025 18:46 by rmk") + (* ; "Edited 25-Nov-2024 13:56 by rmk") (* ; "Edited 29-Sep-2024 13:51 by rmk") (* ; "Edited 22-Sep-2024 21:41 by rmk") (* ; "Edited 19-Aug-2024 00:11 by rmk") @@ -423,9 +426,9 @@ (\TEDIT.UNDO.PARALOOKS TEXTOBJ EVENT)) (:PageFormat (* ; "Pageframe change") (\TEDIT.UNDO.PAGELOOKS TEXTOBJ EVENT)) - ((LIST :Replace :LowerCase :UpperCase) + ((LIST :Replace :Transform) - (* ;; "He replaced one piece of text with another ; Lower-casing and upper-casing have the same undo event.") + (* ;; "He replaced one portion of text with another ; Transforms have the same undo event but different REDO's.") (\TEDIT.UNDO.REPLACE TEXTOBJ EVENT (GETTH EVENT THACTION))) (:ReplaceCode (\TEDIT.UNDO.REPLACECODE TEXTOBJ EVENT)) @@ -454,7 +457,8 @@ T]) (TEDIT.REDO - [LAMBDA (TSTREAM) (* ; "Edited 2-Feb-2025 11:28 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 16-Mar-2025 18:48 by rmk") + (* ; "Edited 2-Feb-2025 11:28 by rmk") (* ; "Edited 8-Dec-2024 17:53 by rmk") (* ; "Edited 27-Nov-2024 23:11 by rmk") (* ; "Edited 26-Sep-2024 16:49 by rmk") @@ -497,10 +501,12 @@ (:Replace (* ;  "It was a replacement (a del/insert combo)") (\TEDIT.REDO.REPLACE TEXTOBJ EVENT (GETTH EVENT THACTION))) + (:Transform (\TEDIT.KEY.TRANSFORM TSTREAM (GETTH EVENT THOLDINFO))) (:LowerCase (* ; "He lower-cased something") - (\TEDIT.LCASE.SEL TEXTOBJ TEXTOBJ SEL)) + (\TEDIT.LCASE.SEL TSTREAM TEXTOBJ SEL)) (:UpperCase (* ; "He upper-cased something") - (\TEDIT.UCASE.SEL TEXTOBJ TEXTOBJ SEL)) + (\TEDIT.UCASE.SEL TSTREAM TEXTOBJ SEL)) + (:InitialCap (\TEDIT.KEY.INITIALCAP TSTREAM TEXTOBJ SEL)) (:CharLooks (* ; "It was a character looks change") (\TEDIT.CHANGE.CHARLOOKS TSTREAM (CAR (GETTH EVENT THOLDINFO)) SEL)) @@ -635,14 +641,15 @@ (\TEDIT.SHOWSEL SEL T TSTREAM]) (\TEDIT.UNDO.REPLACE - [LAMBDA (TEXTOBJ EVENT ACTION) (* ; "Edited 13-Sep-2024 23:50 by rmk") + [LAMBDA (TEXTOBJ EVENT ACTION) (* ; "Edited 15-Mar-2025 22:35 by rmk") + (* ; "Edited 13-Sep-2024 23:50 by rmk") (* ; "Edited 7-Jul-2024 11:59 by rmk") (* ; "Edited 15-Mar-2024 13:54 by rmk") (* ; "Edited 30-May-2023 23:10 by rmk") (* ; "Edited 27-May-2023 16:49 by rmk") (* ; "Edited 24-May-2023 22:43 by rmk") - (* ;; "This undoes the replacement, but tracks for REDO whether the action was replace, lowercase, or uppercase.") + (* ;; "This undoes the replacement, but tracks for REDO whether the action was replace, lowercase, uppercase, or initialcap.") (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.COPY (GETTH EVENT THDELETEDPIECES) NIL TEXTOBJ) @@ -839,14 +846,14 @@ (\TEDIT.THELP 'Redo-composite]) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4913 5934 (\TEDIT.HISTORYEVENT.DEFPRINT 4923 . 5932)) (7024 17609 (\TEDIT.HISTORYADD -7034 . 11895) (\TEDIT.HISTORYADD.COMPOSITE 11897 . 12803) (\TEDIT.CUMULATE.EVENTS 12805 . 14399) ( -\TEDIT.COMPOSITE.EVENT 14401 . 15137) (\TEDIT.HISTORY.PROP 15139 . 16502) (\TEDIT.HISTORY.EVENT 16504 - . 17433) (\TEDIT.POPEVENT 17435 . 17607)) (17662 35601 (TEDIT.UNDO 17672 . 22066) (\TEDIT.UNDO1 22068 - . 26280) (TEDIT.REDO 26282 . 32755) (\TEDIT.UNDO.UNDO 32757 . 35599)) (35602 50688 ( -\TEDIT.UNDO.INSERT 35612 . 36525) (\TEDIT.UNDO.DELETE 36527 . 37321) (\TEDIT.UNDO.MOVE 37323 . 38912) -(\TEDIT.UNDO.REPLACE 38914 . 40010) (\TEDIT.UNDO.CHARLOOKS 40012 . 44586) (\TEDIT.UNDO.PARALOOKS 44588 - . 48820) (\TEDIT.UNDO.PAGELOOKS 48822 . 49231) (\TEDIT.UNDO.COMPOSITE 49233 . 50460) ( -\TEDIT.UNDO.REPLACECODE 50462 . 50686)) (50689 53049 (\TEDIT.REDO.INSERT 50699 . 51432) ( -\TEDIT.REDO.REPLACE 51434 . 52765) (\TEDIT.REDO.COMPOSITE 52767 . 53047))))) + (FILEMAP (NIL (4909 5930 (\TEDIT.HISTORYEVENT.DEFPRINT 4919 . 5928)) (7020 17605 (\TEDIT.HISTORYADD +7030 . 11891) (\TEDIT.HISTORYADD.COMPOSITE 11893 . 12799) (\TEDIT.CUMULATE.EVENTS 12801 . 14395) ( +\TEDIT.COMPOSITE.EVENT 14397 . 15133) (\TEDIT.HISTORY.PROP 15135 . 16498) (\TEDIT.HISTORY.EVENT 16500 + . 17429) (\TEDIT.POPEVENT 17431 . 17603)) (17658 36127 (TEDIT.UNDO 17668 . 22227) (\TEDIT.UNDO1 22229 + . 26541) (TEDIT.REDO 26543 . 33281) (\TEDIT.UNDO.UNDO 33283 . 36125)) (36128 51335 ( +\TEDIT.UNDO.INSERT 36138 . 37051) (\TEDIT.UNDO.DELETE 37053 . 37847) (\TEDIT.UNDO.MOVE 37849 . 39438) +(\TEDIT.UNDO.REPLACE 39440 . 40657) (\TEDIT.UNDO.CHARLOOKS 40659 . 45233) (\TEDIT.UNDO.PARALOOKS 45235 + . 49467) (\TEDIT.UNDO.PAGELOOKS 49469 . 49878) (\TEDIT.UNDO.COMPOSITE 49880 . 51107) ( +\TEDIT.UNDO.REPLACECODE 51109 . 51333)) (51336 53696 (\TEDIT.REDO.INSERT 51346 . 52079) ( +\TEDIT.REDO.REPLACE 52081 . 53412) (\TEDIT.REDO.COMPOSITE 53414 . 53694))))) STOP diff --git a/library/tedit/TEDIT-HISTORY.LCOM b/library/tedit/TEDIT-HISTORY.LCOM index f6374c410ad0bde2301c457a3acac4a1a1999826..51abfabaf563a7589ccb44566d7517c8c0c6f598 100644 GIT binary patch delta 1495 zcmZvcO>Y}T7{|K~qSPb~Gbh(IKSRb3KvksjW9`9NAk*&;q=6a*dYSSg~nyWwWM*NJw+77E|*bbBx8 z=nda0**?EsE4dgA#-3GjQPf7o^19=o)2Vo#FQQh^hxo^>L2z;La`tN3b}ZAg49JH5 zwUf~{Z@+j}LK0Q5#@^u;wEr%?i1fN=-LT#D#!?B=Ko;rbu!QI$(J?Nf?BR!toOu5c zcPGm&ush?|xQFb!@#t*j+!^>CvAKzl4m6w|u~Bh18kU2IN>Zt8H;)xjNR(&jc<|C}AsW#X@Rz_LUrLe50mst}w=2!tI@Pvxj4Bh#&!hL0!_5^0iRF_nm-Aoj!63zvv2Ak%RhR{2## zL4w*+?~NH8fd_55!cRb#Ks=Gn^BOBsp6u)s;|(bDu7C2C^G z9Pe)G3egA@a=#BZE+Ty;gn_Ie-2?>VUepiaNED7SHAbkK{9h(S1M_a&3%7t#xPFND z!p?568Jck`gfb+4`3Y4;y59}jy{)*r$C~-CGAd`9gCnbM6WD`K9OBr-l84 zPHQ`1;jeo~m9=a#`i6URD1BQvs;su2OvE40JUy@(sV#rBygD#thhg(W(`QG^m9?S! z`TuKY{ywd-w=O&^NO(j~3Wg-GyVLocB#^Wkq9Q?o^7FDfQphMQ=}6uLfZT=+?I0%6 zg>eC=u2f3W%~3ic+pHM16^pMMp5eIeS_4smvbmXyuPY<;)~uVnU9)}La7+WLeFEjW zX*4YUxHIU;9h_1T7#cnsNeO(yQ^iA)*N)<*404RKyS)Y=>p2a?l5a6V~$2CREgeZs5f6tsWwf09INi zDy(Gg1l^%5!_;m^{V3QqgAQ;F^Yu}E(;`h?&pr0n7UrvGb=j&3GSe21!^Kd{6*7 Q1#BOyOZfip7jMt}1FKn<)&Kwi delta 1355 zcma)+&u`mg7{?bE4Jq5`)TV9Pf_U(TvI-^h`@?qZ!BFNnG|Z_Z$JsK$0k?VAnx%0_ z!jEl2j59)lz6Ycs#5lnXp`C!k{s~T8CL|;{a^X0{YqxGQEr;ch_x1OA-{*P#{XBl} z?)-KAi_W}Wtg+1^R-CoJde=%9Fh-yfMaTSBrohiW zn`^Iu+4Sryb+_FrRz(F-03W>}LMFk<8)l!ng0hz7PU-pkvb2-U0RQad`OLrk*OMWC z<<#eeGKIJIO=+#WS6j9NSXWc2R_`PVA^hQ~B_Bh>Zd?LnDCvTx+qAFP8$KW%rCMw* z5~h+=NE0KK9{At%+(y&49J}K2_ny18goWPm-Aiu*rpD2nE3*qTNH_S(Y*$irerNVx z<{SRf>0dHG^50JXT}8@c`I=r`oP;VAEO*1I_&{)Z$^wFMx&W8ey}9M(GFXn=vTLsc zRtdCx&#p9@fQhn)^3MQ9WDn)|=G>o>q4VJQ{0z~Pk-s%xlqli%=JOKK;)p~L|D%vQ zLli|&e18nsz+k??#6*~CTB0SRQ8;FRHU7@=+zh74wlkRMBHD{a?7C=Kz*ube*q|3| zF)Qi{LDBf9EBSnTFknL~7%@QQGMG;E;r=5Z=f0N=#9vr=F=O!87CKVqcmCA^&sDnH z$HecSyARecXXDvVnG(OaxC(Ozfv+E|cQ2nvBFFxl(D)CFk2+L81f4RZ8k%A$Rn^o| zI@NP3+B}6)R`{c(C6i3eL`09I3(>Sv0vX@PFVA3A7qKFJ|YL6@W19RGRcj;1Q& z0tiR_!WhEcL67aSzPOykB}GNg$R6uPVSgLOI}C!YaTtj^O?&}m9<44)6eWW~?|-{` GJO4jKw{jT( diff --git a/library/tedit/TEDIT-MENU b/library/tedit/TEDIT-MENU index d91fb6148..425cf4a1d 100644 --- a/library/tedit/TEDIT-MENU +++ b/library/tedit/TEDIT-MENU @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Mar-2025 20:52:33" {WMEDLEY}TEDIT>TEDIT-MENU.;455 160734 +(FILECREATED "16-Mar-2025 21:45:05" {WMEDLEY}tedit>TEDIT-MENU.;460 161531 :EDIT-BY rmk :CHANGES-TO (FNS \TEDIT.EXPANDEDMENU.ACTIONFN) - :PREVIOUS-DATE "19-Feb-2025 13:27:11" {WMEDLEY}TEDIT>TEDIT-MENU.;454) + :PREVIOUS-DATE "15-Mar-2025 23:41:24" {WMEDLEY}tedit>TEDIT-MENU.;459) (PRETTYCOMPRINT TEDIT-MENUCOMS) @@ -36,7 +36,7 @@ \TEDIT.DOTTED.LEFTTAB \TEDIT.DOTTED.CENTERTAB \TEDIT.DOTTED.RIGHTTAB \TEDIT.DOTTED.DECIMALTAB TEDIT.EXTENDEDRIGHTMARK) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (MARGINBAR.INIT] - (COMS (FNS \TEDIT.MENU.START \TEDIT.MENU.BUTTONEVENTFN) + (COMS (FNS TEDIT.MENUSTREAM TEDITMENUP \TEDIT.MENU.START \TEDIT.MENU.BUTTONEVENTFN) (BITMAPS TEXTMENUICON TEXTMENUICONMASK)) (* ; "Generic support for Tedit menus") (FNS \TEDIT.MENU.CREATE \TEDIT.MENU.PARSE \TEDIT.MENU.NEUTRALIZE @@ -49,7 +49,7 @@ (* ; "EXPANDEDMENU") (FNS \TEDIT.EXPANDEDMENU.CREATE \TEDIT.EXPANDEDMENU.START \TEDIT.EXPANDEDMENU.FN - \TEDIT.EXPANDEDMENU.ACTIONFN TEDIT.MENUSTREAM) + \TEDIT.EXPANDEDMENU.ACTIONFN) (* ;; "") @@ -66,7 +66,8 @@ (* ;; "") (* ; "CHARMENU") - [INITVARS (TEDIT.FONTDEVICES '(DISPLAY PDF POSTSCRIPT] + [INITVARS (TEDIT.FONTDEVICES '(DISPLAY PDF POSTSCRIPT)) + (TEDIT.FONTFAMILIES '(Classic Modern Terminal Helvetica TimesRoman Gacha] (FNS \TEDIT.CHARMENU.CREATE \TEDIT.CHARMENU.START \TEDIT.CHARMENU.SPEC \TEDIT.CHARMENU.PARSE \TEDIT.CHARMENU.FILLIN \TEDIT.SHOW.CHARLOOKS \TEDIT.APPLY.CHARLOOKS \TEDIT.OFFSETTYPE.STATEFN \TEDIT.OTHER.STATECHANGEFN \TEDIT.OTHER.SELECTFN) @@ -938,8 +939,40 @@ ) (DEFINEQ +(TEDIT.MENUSTREAM + [LAMBDA (TSTREAM TITLE) (* ; "Edited 14-Mar-2025 16:14 by rmk") + (* ; "Edited 29-Sep-2024 15:29 by rmk") + (* ; "Edited 28-Aug-2024 15:48 by rmk") + (* ; "Edited 10-Apr-2023 09:53 by rmk") + (* jds "13-Aug-84 14:10") + + (* ;; "returns the textstream of the teditmenu attached to this stream if any, or TSTREAM if it is that teditmenu") + + (CL:UNLESS TITLE (SETQ TITLE "TEdit Menu")) + (for W MTSTREAM in (CONS (\TEDIT.PRIMARYPANE TSTREAM) + (ATTACHEDWINDOWS (\TEDIT.MAINW TSTREAM))) + when (AND (STRING.EQUAL TITLE (WINDOWPROP W 'TITLE)) + (SETQ MTSTREAM (TEXTSTREAM W T))) do (RETURN MTSTREAM]) + +(TEDITMENUP + [LAMBDA (TSTREAM TITLE) (* ; "Edited 14-Mar-2025 16:31 by rmk") + (* ; "Edited 15-Mar-2024 15:39 by rmk") + (* ; "Edited 7-Dec-2023 21:06 by rmk") + (* ; "Edited 20-Sep-2023 22:36 by rmk") + (* ; "Edited 10-Apr-2023 10:14 by rmk") + (CL:WHEN (AND (SETQ TSTREAM (TEXTSTREAM TSTREAM T)) + (GETTOBJ (GETTSTR TSTREAM TEXTOBJ) + MENUFLG) + (\TEDIT.PRIMARYPANE TSTREAM) + (CL:IF TITLE + (STRING.EQUAL TITLE (WINDOWPROP (\TEDIT.PRIMARYPANE TSTREAM) + 'TITLE)) + T)) + TSTREAM]) + (\TEDIT.MENU.START - [LAMBDA (MENUSTREAM MAINWINDOW TITLE HEIGHT TYPE) (* ; "Edited 28-Jun-2024 23:08 by rmk") + [LAMBDA (MENUSTREAM TSTREAM TITLE HEIGHT TYPE) (* ; "Edited 14-Mar-2025 16:13 by rmk") + (* ; "Edited 28-Jun-2024 23:08 by rmk") (* ; "Edited 19-Apr-2024 10:53 by rmk") (* ; "Edited 10-Apr-2024 23:04 by rmk") (* ; "Edited 27-Feb-2024 08:12 by rmk") @@ -960,28 +993,18 @@ (* ;; "Pretext: menu windows can't have menu windows.") - (* ;; "Typically this is called from a menu under the main window running in the mouse process. When we're done, we want to return to the main window's editing process, not to the process we are called in.") - - (CL:UNLESS [AND MAINWINDOW (OR (TEDITMENUP MAINWINDOW) - (for WW in (ATTACHEDWINDOWS MAINWINDOW) - thereis (STREQUAL (OR TITLE "TEdit Menu") - (WINDOWPROP WW 'TEDITMENU] - (LET ((WREG (CL:IF MAINWINDOW - (WINDOWPROP MAINWINDOW 'REGION) - (GETREGION))) - (MENUTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of MENUSTREAM)) - MENUW) - (SETQ MENUW (CREATEW (SETQ WREG (COND - (MAINWINDOW (create REGION - LEFT _ (fetch (REGION LEFT) - of WREG) - BOTTOM _ (fetch (REGION TOP) - of WREG) - WIDTH _ (fetch (REGION WIDTH) - of WREG) - HEIGHT _ (OR HEIGHT 133))) - (T WREG))) - (OR TITLE "TEdit Menu"))) + (CL:UNLESS TITLE (SETQ TITLE "TEdit Menu")) + (CL:UNLESS (TEDIT.MENUSTREAM TSTREAM TITLE) + (LET ((MAINWINDOW (\TEDIT.PRIMARYPANE TSTREAM)) + (MENUTEXTOBJ (GETTSTR MENUSTREAM TEXTOBJ)) + WREG MENUW) + (SETQ WREG (WINDOWPROP MAINWINDOW 'REGION)) + (SETQ MENUW (CREATEW (create REGION + LEFT _ (fetch (REGION LEFT) of WREG) + BOTTOM _ (fetch (REGION TOP) of WREG) + WIDTH _ (fetch (REGION WIDTH) of WREG) + HEIGHT _ (OR HEIGHT 133)) + TITLE)) (WINDOWADDPROP MENUW 'CLOSEFN (FUNCTION FREEATTACHEDWINDOW)) (WINDOWPROP MENUW 'TEDITMENU (OR TITLE "TEdit Menu")) (* ; "Mark this as a TEDIT MENU window") @@ -993,31 +1016,26 @@ (* ;; "The mainwindow's PROMPTWINDOW is also the menus prompt window") - (CL:WHEN MAINWINDOW - (WINDOWPROP MENUW 'PROMPTWINDOW (WINDOWPROP MAINWINDOW 'PROMPTWINDOW))) - [TEDIT MENUSTREAM MENUW NIL `(TITLEMENUFN DON'T PROMPTWINDOW ,(GETTOBJ (TEXTOBJ - MAINWINDOW - ) - PROMPTWINDOW] + (WINDOWPROP MENUW 'PROMPTWINDOW (WINDOWPROP MAINWINDOW 'PROMPTWINDOW)) + [TEDIT MENUSTREAM MENUW NIL `(TITLEMENUFN DON'T NOTSPLITTABLE T PROMPTWINDOW + ,(GETTOBJ (TEXTOBJ TSTREAM) + PROMPTWINDOW] (PROCESSPROP (WINDOWPROP MENUW 'PROCESS) 'NAME (PACK* "TEdit-" (CL:IF TYPE (L-CASE TYPE T) "Menu"))) - (CL:WHEN MAINWINDOW (* ; - "Give the tty back to the main window") - (TTY.PROCESS (WINDOWPROP MAINWINDOW 'PROCESS))) (* ;; "No caret now, let the buttonevent fn bring it up") (\TEDIT.UPCARET (GETPANEPROP (PANEPROPS (FGETTOBJ MENUTEXTOBJ PRIMARYPANE)) PCARET) -10 -10) - (TEXTPROP MENUTEXTOBJ 'NOTSPLITTABLE T) (WINDOWPROP MENUW 'BUTTONEVENTFN (FUNCTION \TEDIT.MENU.BUTTONEVENTFN)) - (SETSEL (GETTOBJ MENUTEXTOBJ SEL) + (SETSEL (TEXTSEL MENUTEXTOBJ) SET NIL) (* ;  "Have to click to get the selection going") + (TEDIT.BACKTOMAIN MENUSTREAM) MENUW))]) (\TEDIT.MENU.BUTTONEVENTFN @@ -1163,7 +1181,8 @@ (DEFINEQ (\TEDIT.EXPANDEDMENU.CREATE - [LAMBDA NIL (* ; "Edited 7-Jan-2025 16:05 by rmk") + [LAMBDA NIL (* ; "Edited 8-Mar-2025 12:27 by rmk") + (* ; "Edited 7-Jan-2025 16:05 by rmk") (* ; "Edited 8-Nov-2024 08:35 by rmk") (* ; "Edited 22-Oct-2024 10:48 by rmk") (* ; "Edited 20-Oct-2024 22:51 by rmk") @@ -1234,7 +1253,7 @@ (FIELDTYPE STRING)) 3 (TOGGLE (LABEL "Confirm")) - TAB + 3 (TOGGLE (IDENTIFIER USENEWLOOKS) (LABEL "Use New Looks")) EOL @@ -1255,7 +1274,8 @@ (FIELDTYPE STRING]) (\TEDIT.EXPANDEDMENU.START - [LAMBDA (TSTREAM) (* ; "Edited 7-Jan-2025 16:43 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 14-Mar-2025 15:41 by rmk") + (* ; "Edited 7-Jan-2025 16:43 by rmk") (* ; "Edited 20-Aug-2024 15:46 by rmk") (* ; "Edited 25-Jun-2024 11:59 by rmk") (* ; "Edited 27-Feb-2024 08:11 by rmk") @@ -1265,9 +1285,7 @@ (* ; "'27-Sep-84 01:04' gbn") (LET (EXPANDEDMENU (TEXTOBJ (TEXTOBJ TSTREAM))) (\TEDIT.MENU.START (SETQ EXPANDEDMENU (\TEDIT.EXPANDEDMENU.CREATE)) - (\TEDIT.PRIMARYPANE TEXTOBJ) - "TEdit Menu" - (HEIGHTIFWINDOW 60 T) + TSTREAM "TEdit Menu" (HEIGHTIFWINDOW 60 T) 'EXPANDED) (CL:WHEN (OR (GETTEXTPROP TEXTOBJ 'CLEARGET) (GETTEXTPROP TEXTOBJ 'CLEARPUT)) (* ; "initialize the button") @@ -1325,7 +1343,9 @@ (RETURN 'DON'T]) (\TEDIT.EXPANDEDMENU.ACTIONFN - [LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM MAINSTREAM) (* ; "Edited 5-Mar-2025 20:51 by rmk") + [LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM MAINSTREAM) (* ; "Edited 16-Mar-2025 21:43 by rmk") + (* ; "Edited 14-Mar-2025 15:43 by rmk") + (* ; "Edited 5-Mar-2025 20:51 by rmk") (* ; "Edited 7-Jan-2025 22:36 by rmk") (* ; "Edited 26-Nov-2024 23:30 by rmk") (* ; "Edited 22-Oct-2024 10:54 by rmk") @@ -1375,7 +1395,7 @@ (FIND (SETQ STATE (MB.GET 'FINDPATTERN MENUTEXTOBJ 'STATE MENUSEL)) (if (IGEQ (NCHARS STATE) 1) - then (\TEDIT.KEY.FIND MAINSTREAM NIL NIL NIL NIL STATE) + then (\TEDIT.KEY.FIND MAINSTREAM NIL NIL STATE) else (TEDIT.PROMPTPRINT MAINSTREAM "Search pattern not specified" T) )) (SUBSTITUTE [LET* [(STATES (MB.GET '(REPLACEMENT PATTERN CONFIRM USENEWLOOKS @@ -1398,9 +1418,7 @@ (\TEDIT.FINISHEDIT? MAINSTREAM)) (PAGELAYOUT (* ; "Page layout menu") (\TEDIT.MENU.START (\TEDIT.PAGEMENU.CREATE) - (\TEDIT.PRIMARYPANE MAINSTREAM) - "Page Layout Menu" - (HEIGHTIFWINDOW 135 5) + MAINSTREAM "Page Layout Menu" (HEIGHTIFWINDOW 135 5) 'PAGE)) (PARALOOKS (* ; "Page layout menu") (\TEDIT.PARAMENU.START MAINSTREAM)) @@ -1438,16 +1456,6 @@ (\TEDIT.SHOWSEL MENUSEL NIL MENUTEXTOBJ) (* ;  "And forget that anything is selected.") (SETSEL MENUSEL SET NIL]) - -(TEDIT.MENUSTREAM - [LAMBDA (TSTREAM) (* ; "Edited 28-Aug-2024 15:48 by rmk") - (* ; "Edited 10-Apr-2023 09:53 by rmk") - (* jds "13-Aug-84 14:10") - - (* ;; "returns the textstream of the teditmenu attached to this stream if any") - - (for W in (ATTACHEDWINDOWS (\TEDIT.MAINW TSTREAM)) when (TEDITMENUP W "TEdit Menu") - do (RETURN (TSTREAM W]) ) @@ -1570,16 +1578,15 @@ EOL]) (\TEDIT.PARAMENU.START - [LAMBDA (TSTREAM) (* ; "Edited 7-Jan-2025 15:36 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 14-Mar-2025 15:42 by rmk") + (* ; "Edited 7-Jan-2025 15:36 by rmk") (* ; "Edited 27-Jul-2024 00:06 by rmk") (* ; "Edited 25-Jun-2024 11:59 by rmk") (* ; "Edited 27-Feb-2024 07:53 by rmk") (* ; "Edited 19-Sep-2023 08:51 by rmk") (* ; "Edited 20-Aug-87 16:51 by jds") (\TEDIT.MENU.START (\TEDIT.PARAMENU.CREATE) - (\TEDIT.PRIMARYPANE TSTREAM) - "Paragraph-Looks Menu" - (HEIGHTIFWINDOW 141 T) + TSTREAM "Paragraph-Looks Menu" (HEIGHTIFWINDOW 141 T) 'PARALOOKS]) (\TEDIT.APPLY.PARALOOKS @@ -1718,6 +1725,8 @@ (RPAQ? TEDIT.FONTDEVICES '(DISPLAY PDF POSTSCRIPT)) + +(RPAQ? TEDIT.FONTFAMILIES '(Classic Modern Terminal Helvetica TimesRoman Gacha)) (DEFINEQ (\TEDIT.CHARMENU.CREATE @@ -1760,7 +1769,8 @@ ,@(\TEDIT.CHARMENU.SPEC TSTREAM]) (\TEDIT.CHARMENU.START - [LAMBDA (TSTREAM) (* ; "Edited 7-Jan-2025 22:37 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 14-Mar-2025 15:41 by rmk") + (* ; "Edited 7-Jan-2025 22:37 by rmk") (* ; "Edited 17-Dec-2024 00:04 by rmk") (* ; "Edited 25-Jun-2024 11:59 by rmk") (* ; "Edited 27-Feb-2024 07:56 by rmk") @@ -1771,13 +1781,12 @@ (* ;; "Open a character-looks menu.") (\TEDIT.MENU.START (\TEDIT.CHARMENU.CREATE TSTREAM) - (\TEDIT.PRIMARYPANE TSTREAM) - "Character Looks Menu" - (HEIGHTIFWINDOW 100 T) + TSTREAM "Character Looks Menu" (HEIGHTIFWINDOW 100 T) 'CHARLOOKS]) (\TEDIT.CHARMENU.SPEC - [LAMBDA (TSTREAM) (* ; "Edited 26-Jan-2025 22:05 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 15-Mar-2025 23:38 by rmk") + (* ; "Edited 26-Jan-2025 22:05 by rmk") (* ; "Edited 10-Jan-2025 10:49 by rmk") (* ; "Edited 3-Jan-2025 11:21 by rmk") (* ; "Edited 1-Jan-2025 09:38 by rmk") @@ -1801,7 +1810,7 @@ (FUNCTION \TEDIT.OFFSETTYPE.STATEFN) (FUNCTION \TEDIT.OTHER.STATECHANGEFN) (FUNCTION \TEDIT.OTHER.SELECTFN)) - (LET [[FONTFAMILIES (APPEND '(Classic Helvetica Modern Terminal TimesRoman] + (LET [(FONTFAMILIES (APPEND TEDIT.FONTFAMILIES)) (FONTDEVICES (CONS 'All (for D in TEDIT.FONTDEVICES collect (CL:IF (EQ 'PDF D) 'PDF (L-CASE D T))] @@ -2620,28 +2629,29 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (5022 51393 (DRAWMARGINSCALE 5032 . 8491) (MARGINBAR 8493 . 15618) (MARGINBAR.CREATE -15620 . 19039) (MB.MARGINBAR.BUTTONEVENTINFN 19041 . 26680) (MB.MARGINBAR.SELFN.TABS 26682 . 31922) ( -MB.MARGINBAR.SELFN.TABS.KIND 31924 . 32859) (MARGINBAR.GETSTATEFN 32861 . 36739) (MARGINBAR.SETSTATEFN - 36741 . 36951) (MARGINBAR.NEUTRALIZE 36953 . 37366) (MARGINBAR.LOOKS 37368 . 40474) ( -MB.MARGINBAR.SIZEFN 40476 . 41079) (MB.MARGINBAR.DISPLAYFN 41081 . 44142) (MDESCALE 44144 . 44684) ( -MSCALE 44686 . 45016) (MB.MARGINBAR.SHOWTAB 45018 . 47341) (MB.MARGINBAR.TABTRACK 47343 . 48728) ( -MARGINBAR.INIT 48730 . 50123) (\TEDIT.PARALOOKS.TO.MARBAR 50125 . 51391)) (52218 58435 ( -\TEDIT.MENU.START 52228 . 57859) (\TEDIT.MENU.BUTTONEVENTFN 57861 . 58433)) (58754 66676 ( -\TEDIT.MENU.CREATE 58764 . 60575) (\TEDIT.MENU.PARSE 60577 . 64266) (\TEDIT.MENU.NEUTRALIZE 64268 . -66339) (\TEDITMENU.RECORD.UNFORMATTED 66341 . 66674)) (66742 86825 (\TEDIT.EXPANDEDMENU.CREATE 66752 - . 72047) (\TEDIT.EXPANDEDMENU.START 72049 . 73423) (\TEDIT.EXPANDEDMENU.FN 73425 . 76680) ( -\TEDIT.EXPANDEDMENU.ACTIONFN 76682 . 86266) (TEDIT.MENUSTREAM 86268 . 86823)) (86887 102378 ( -\TEDIT.PARAMENU.CREATE 86897 . 92918) (\TEDIT.PARAMENU.START 92920 . 93786) (\TEDIT.APPLY.PARALOOKS -93788 . 94840) (\TEDIT.SHOW.PARALOOKS 94842 . 97625) (\TEDIT.PARAMENU.FILLIN 97627 . 102376)) (102497 -128273 (\TEDIT.CHARMENU.CREATE 102507 . 105111) (\TEDIT.CHARMENU.START 105113 . 106144) ( -\TEDIT.CHARMENU.SPEC 106146 . 110595) (\TEDIT.CHARMENU.PARSE 110597 . 113765) (\TEDIT.CHARMENU.FILLIN -113767 . 118112) (\TEDIT.SHOW.CHARLOOKS 118114 . 121371) (\TEDIT.APPLY.CHARLOOKS 121373 . 122534) ( -\TEDIT.OFFSETTYPE.STATEFN 122536 . 124499) (\TEDIT.OTHER.STATECHANGEFN 124501 . 126146) ( -\TEDIT.OTHER.SELECTFN 126148 . 128271)) (128335 154774 (\TEDIT.PAGEMENU.CREATE 128345 . 135539) ( -\TEDIT.SHOW.PAGELOOKS 135541 . 137336) (\TEDIT.PAGEMENU.FILLIN 137338 . 138888) ( -\TEDIT.PAGEREGION.UNPARSE 138890 . 148080) (\TEDIT.APPLY.PAGELOOKS 148082 . 150009) ( -\TEDIT.CHANGE.PAGELOOKS 150011 . 153930) (\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 153932 . 154772)) (154775 -160578 (\TEDIT.PAGEMENU.CREATE.HEADINGS 154785 . 157597) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 157599 - . 159024) (\TEDIT.PAGEMENU.HEADINGS.STATEFN 159026 . 160576))))) + (FILEMAP (NIL (5123 51494 (DRAWMARGINSCALE 5133 . 8592) (MARGINBAR 8594 . 15719) (MARGINBAR.CREATE +15721 . 19140) (MB.MARGINBAR.BUTTONEVENTINFN 19142 . 26781) (MB.MARGINBAR.SELFN.TABS 26783 . 32023) ( +MB.MARGINBAR.SELFN.TABS.KIND 32025 . 32960) (MARGINBAR.GETSTATEFN 32962 . 36840) (MARGINBAR.SETSTATEFN + 36842 . 37052) (MARGINBAR.NEUTRALIZE 37054 . 37467) (MARGINBAR.LOOKS 37469 . 40575) ( +MB.MARGINBAR.SIZEFN 40577 . 41180) (MB.MARGINBAR.DISPLAYFN 41182 . 44243) (MDESCALE 44245 . 44785) ( +MSCALE 44787 . 45117) (MB.MARGINBAR.SHOWTAB 45119 . 47442) (MB.MARGINBAR.TABTRACK 47444 . 48829) ( +MARGINBAR.INIT 48831 . 50224) (\TEDIT.PARALOOKS.TO.MARBAR 50226 . 51492)) (52319 59225 ( +TEDIT.MENUSTREAM 52329 . 53329) (TEDITMENUP 53331 . 54300) (\TEDIT.MENU.START 54302 . 58649) ( +\TEDIT.MENU.BUTTONEVENTFN 58651 . 59223)) (59544 67466 (\TEDIT.MENU.CREATE 59554 . 61365) ( +\TEDIT.MENU.PARSE 61367 . 65056) (\TEDIT.MENU.NEUTRALIZE 65058 . 67129) (\TEDITMENU.RECORD.UNFORMATTED + 67131 . 67464)) (67532 87322 (\TEDIT.EXPANDEDMENU.CREATE 67542 . 72944) (\TEDIT.EXPANDEDMENU.START +72946 . 74376) (\TEDIT.EXPANDEDMENU.FN 74378 . 77633) (\TEDIT.EXPANDEDMENU.ACTIONFN 77635 . 87320)) ( +87384 102941 (\TEDIT.PARAMENU.CREATE 87394 . 93415) (\TEDIT.PARAMENU.START 93417 . 94349) ( +\TEDIT.APPLY.PARALOOKS 94351 . 95403) (\TEDIT.SHOW.PARALOOKS 95405 . 98188) (\TEDIT.PARAMENU.FILLIN +98190 . 102939)) (103146 129070 (\TEDIT.CHARMENU.CREATE 103156 . 105760) (\TEDIT.CHARMENU.START 105762 + . 106859) (\TEDIT.CHARMENU.SPEC 106861 . 111392) (\TEDIT.CHARMENU.PARSE 111394 . 114562) ( +\TEDIT.CHARMENU.FILLIN 114564 . 118909) (\TEDIT.SHOW.CHARLOOKS 118911 . 122168) ( +\TEDIT.APPLY.CHARLOOKS 122170 . 123331) (\TEDIT.OFFSETTYPE.STATEFN 123333 . 125296) ( +\TEDIT.OTHER.STATECHANGEFN 125298 . 126943) (\TEDIT.OTHER.SELECTFN 126945 . 129068)) (129132 155571 ( +\TEDIT.PAGEMENU.CREATE 129142 . 136336) (\TEDIT.SHOW.PAGELOOKS 136338 . 138133) ( +\TEDIT.PAGEMENU.FILLIN 138135 . 139685) (\TEDIT.PAGEREGION.UNPARSE 139687 . 148877) ( +\TEDIT.APPLY.PAGELOOKS 148879 . 150806) (\TEDIT.CHANGE.PAGELOOKS 150808 . 154727) ( +\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 154729 . 155569)) (155572 161375 (\TEDIT.PAGEMENU.CREATE.HEADINGS +155582 . 158394) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 158396 . 159821) ( +\TEDIT.PAGEMENU.HEADINGS.STATEFN 159823 . 161373))))) STOP diff --git a/library/tedit/TEDIT-MENU.LCOM b/library/tedit/TEDIT-MENU.LCOM index 9ef2611bc308b7a051b3efb92d3b9b29470dce69..fc61c94de8e69b7ea29b12c24e7f8aab19d28cad 100644 GIT binary patch delta 3870 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 Dl;NZ` diff --git a/library/tedit/TEDIT-SELECTION b/library/tedit/TEDIT-SELECTION index e328cb620..e78b964df 100644 --- a/library/tedit/TEDIT-SELECTION +++ b/library/tedit/TEDIT-SELECTION @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 6-Mar-2025 11:59:08" {WMEDLEY}TEDIT>TEDIT-SELECTION.;661 153051 +(FILECREATED "16-Mar-2025 10:06:15" {WMEDLEY}tedit>TEDIT-SELECTION.;665 153653 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.CHTOLINEX) + :CHANGES-TO (FNS \TEDIT.SELPIECES.CHARTRANSFORM) - :PREVIOUS-DATE "28-Feb-2025 17:45:33" {WMEDLEY}TEDIT>TEDIT-SELECTION.;660) + :PREVIOUS-DATE "15-Mar-2025 22:39:40" {WMEDLEY}tedit>TEDIT-SELECTION.;664) (PRETTYCOMPRINT TEDIT-SELECTIONCOMS) @@ -442,13 +442,13 @@ (add START-OF-PIECE (PLEN PC]) (\TEDIT.WORD.BOUND - [LAMBDA (TEXTOBJ PREVCH CH) (* ; "Edited 16-Jul-2024 19:52 by rmk") + [LAMBDA (TEXTOBJ PREVCH CH) (* ; "Edited 13-Mar-2025 21:41 by rmk") + (* ; "Edited 16-Jul-2024 19:52 by rmk") (* ; "Edited 27-Sep-2022 23:54 by rmk") - (* ; "Edited 25-Sep-2022 23:48 by rmk") - (* ; "Edited 30-May-91 23:02 by jds") + (* ; "Edited 25-Sep-2022 23:48 by rmk") (if (AND (FIXP PREVCH) (FIXP CH)) - then (LET [(READSA (fetch READSA of (OR (fetch (TEXTOBJ TXTWTBL) of TEXTOBJ) + then (LET [(READSA (fetch READSA of (OR (GETTOBJ TEXTOBJ TXTWTBL) TEDIT.WORDBOUND.READTABLE] (NEQ (\SYNCODE READSA PREVCH) (\SYNCODE READSA CH))) @@ -1451,21 +1451,27 @@ (\TEDIT.THELP "ILLEGAL POINT" (GETSEL SEL POINT))))]) (\TEDIT.SEL.L1 - [LAMBDA (SEL PANE TEXTOBJ) (* ; "Edited 24-Apr-2024 08:34 by rmk") + [LAMBDA (SEL PANE TEXTOBJ) (* ; "Edited 9-Mar-2025 20:00 by rmk") + (* ; "Edited 24-Apr-2024 08:34 by rmk") (* ; "Edited 8-Apr-2024 23:42 by rmk") (* ; "Edited 16-Nov-2023 23:43 by rmk") (* ;; "Returns L1 for PANE in SEL") + (CL:UNLESS PANE + (SETQ PANE (FGETTOBJ TEXTOBJ SELPANE))) (for L in (GETSEL SEL L1) as P inpanes (PROGN TEXTOBJ) when (EQ P PANE) do (RETURN L]) (\TEDIT.SEL.LN - [LAMBDA (SEL PANE TEXTOBJ) (* ; "Edited 24-Apr-2024 08:34 by rmk") + [LAMBDA (SEL PANE TEXTOBJ) (* ; "Edited 9-Mar-2025 20:00 by rmk") + (* ; "Edited 24-Apr-2024 08:34 by rmk") (* ; "Edited 8-Apr-2024 23:41 by rmk") (* ; "Edited 16-Nov-2023 23:43 by rmk") (* ;; "Returns LN for PANE in SEL") + (CL:UNLESS PANE + (SETQ PANE (FGETTOBJ TEXTOBJ SELPANE))) (for L in (GETSEL SEL LN) as P inpanes (PROGN TEXTOBJ) when (EQ P PANE) do (RETURN L]) (\TEDIT.SEL.DELETEDCHARS @@ -1948,29 +1954,32 @@ SPLASTCHAR _ (ffetch (SELPIECES SPLASTCHAR) of SP2]) (\TEDIT.SELPIECES.CHARTRANSFORM - [LAMBDA (SELPIECES CHARFN OBJECTSTOO TEXTOBJ) (* ; "Edited 7-Nov-2024 21:50 by rmk") + [LAMBDA (SELPIECES CHARFN OBJECTSTOO TEXTOBJ) (* ; "Edited 16-Mar-2025 10:03 by rmk") + (* ; "Edited 7-Nov-2024 21:50 by rmk") (* ; "Edited 4-Oct-2024 08:41 by rmk") (* ; "Edited 28-Apr-2024 08:52 by rmk") (* ; "Edited 3-Mar-2024 12:28 by rmk") (* ; "Edited 24-May-2023 13:04 by rmk") - (* ;; "This transforms the characters in SELPIECES according to CHARFN, skipping image objects unless OBJECTSTOO. The purpose is to allow for character transformations (e.g. case switching) without depending on strings (TEDIT.SELAS.STRING) and character insertion (\INSERTCH) as intermediaries. Strings can't hold image objects.") + (* ;; "This transforms the characters in SELPIECES according to CHARFN, skipping image objects unless OBJECTSTOO. The purpose is to allow for character transformations (e.g. case switching) without depending on strings (TEDIT.SELAS.STRING) and character insertion (\INSERTCH) as intermediaries. Image objects would be lost if we had to go through strings.") (* ;;  "This smashes the pieces, use crosscopy \TEDIT.SELPIECES.COPY first to protect the document pieces.") - [for PC PCONTENTS inselpieces SELPIECES + [for PC PCONTENTS (INDEX _ 0) inselpieces SELPIECES do (SETQ PCONTENTS (PCONTENTS PC)) (SELECTC (PTYPE PC) (STRING.PTYPES (for I CH (STR _ PCONTENTS) from 1 while (SETQ CH (NTHCHARCODE STR I)) - do (RPLCHARCODE STR I (APPLY* CHARFN CH TEXTOBJ)))) + do (RPLCHARCODE STR I (APPLY* CHARFN CH (add INDEX 1) + TEXTOBJ)))) (FILE.PTYPES [LET [(STR (ALLOCSTRING (PLEN PC] (* ;; "This assumes that no file piece has a PLEN greater than \MaxArrayLen characters. We rely on the piece-table reader and writer to guarantee this. If not, ALLOCSTRING will cause an error.") [for I from 1 to (PLEN PC) do (RPLCHARCODE STR I (APPLY* CHARFN (\TEDIT.PIECE.NTHCHARCODE - TEXTOBJ PC I] + TEXTOBJ PC I) + (add INDEX 1] (if (fetch (STRINGP FATSTRINGP) of STR) then (FSETPC PC PTYPE FATSTRING.PTYPE) (FSETPC PC PBYTESPERCHAR 2) @@ -1981,10 +1990,9 @@ (FSETPC PC PCONTENTS STR) (FSETPC PC PBYTELEN (ITIMES (PBYTESPERCHAR PC) (PLEN PC]) - (OBJECT.PTYPE (CL:WHEN OBJECTSTOO - (FSETPC PC PCONTENTS (APPLY* CHARFN PCONTENTS TEXTOBJ)))) - (SUBSTREAM.PTYPE - (\TEDIT.THELP "SUBSTREAM PIECES NOT IMPLEMENTED")) + (OBJECT.PTYPE (add INDEX 1) + (CL:WHEN OBJECTSTOO + (FSETPC PC PCONTENTS (APPLY* CHARFN PCONTENTS INDEX)))) (\TEDIT.THELP "ILLEGAL PIECE TYPE" (PTYPE PC] SELPIECES]) @@ -2464,25 +2472,25 @@ (ADDTOVAR LAMA TEDIT.SELPROP) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (15578 17399 (\TEDIT.SELECTION.DEFPRINT 15588 . 17397)) (17436 18941 ( -\TEDIT.SET.GLOBAL.SELECTIONS 17446 . 18939)) (18942 24811 (\TEDIT.SELECTED.PIECES 18952 . 20472) ( -\TEDIT.FIND.PROTECTED.END 20474 . 22143) (\TEDIT.FIND.PROTECTED.START 22145 . 24003) ( -\TEDIT.WORD.BOUND 24005 . 24809)) (24945 59144 (\TEDIT.EXTEND.SEL 24955 . 32043) (\TEDIT.SCAN.LINE -32045 . 43823) (\TEDIT.SCAN.LINE.WORD 43825 . 49186) (\TEDIT.XYTOSEL 49188 . 56297) (\TEDIT.REGIONTYPE - 56299 . 57318) (\TEDIT.XYTOSEL.INLINEP 57320 . 57775) (\TEDIT.XYTOSEL.LINE 57777 . 59142)) (59145 -72769 (\TEDIT.FIXSEL 59155 . 68768) (\TEDIT.CHTOLINEX 68770 . 72767)) (72770 76417 ( -\TEDIT.RESET.EXTEND.PENDING.DELETE 72780 . 73753) (\TEDIT.SET.SEL.LOOKS 73755 . 76415)) (76418 94464 ( -\TEDIT.SHOWSEL 76428 . 80888) (\TEDIT.SHOWSEL.HILIGHT 80890 . 85511) (\TEDIT.UPDATE.SEL 85513 . 89012) - (\TEDIT.CARETLINE 89014 . 89728) (\TEDIT.SEL.L1 89730 . 90236) (\TEDIT.SEL.LN 90238 . 90744) ( -\TEDIT.SEL.DELETEDCHARS 90746 . 94462)) (94465 99171 (\TEDIT.COPYSEL 94475 . 96941) ( -\TEDIT.SEL.CHANGED? 96943 . 99169)) (99202 111931 (\TEDIT.SELECT.OBJECT 99212 . 103718) ( -\TEDIT.SHOWSEL.OBJECT 103720 . 105882) (\TEDIT.CLIP.OBJECT 105884 . 107888) (\TEDIT.OPERATE.OBJECT -107890 . 111929)) (111959 130306 (\TEDIT.SELPIECES 111969 . 115917) (\TEDIT.SELPIECES.COPY 115919 . -117957) (\TEDIT.SELPIECES.CONCAT 117959 . 119838) (\TEDIT.SELPIECES.CHARTRANSFORM 119840 . 122798) ( -\TEDIT.SELPIECES.FROM.STRING 122800 . 127941) (\TEDIT.SELPIECES.TO.STRING 127943 . 130304)) (130359 -152882 (TEDIT.XYTOCH 130369 . 132753) (TEDIT.SELPROP 132755 . 136785) (TEDIT.GETPOINT 136787 . 138707) - (TEDIT.GETSEL 138709 . 139443) (TEDIT.GETSEL.PARA 139445 . 140394) (TEDIT.SCANSEL 140396 . 141344) ( -TEDIT.SET.SEL.LOOKS 141346 . 142725) (TEDIT.SETSEL 142727 . 147491) (TEDIT.SHOWSEL 147493 . 148773) ( -TEDIT.SEL.AS.STRING 148775 . 151260) (TEDIT.SEL.AS.SEXPR 151262 . 152548) (TEDIT.SELECTALL 152550 . -152880))))) + (FILEMAP (NIL (15592 17413 (\TEDIT.SELECTION.DEFPRINT 15602 . 17411)) (17450 18955 ( +\TEDIT.SET.GLOBAL.SELECTIONS 17460 . 18953)) (18956 24808 (\TEDIT.SELECTED.PIECES 18966 . 20486) ( +\TEDIT.FIND.PROTECTED.END 20488 . 22157) (\TEDIT.FIND.PROTECTED.START 22159 . 24017) ( +\TEDIT.WORD.BOUND 24019 . 24806)) (24942 59141 (\TEDIT.EXTEND.SEL 24952 . 32040) (\TEDIT.SCAN.LINE +32042 . 43820) (\TEDIT.SCAN.LINE.WORD 43822 . 49183) (\TEDIT.XYTOSEL 49185 . 56294) (\TEDIT.REGIONTYPE + 56296 . 57315) (\TEDIT.XYTOSEL.INLINEP 57317 . 57772) (\TEDIT.XYTOSEL.LINE 57774 . 59139)) (59142 +72766 (\TEDIT.FIXSEL 59152 . 68765) (\TEDIT.CHTOLINEX 68767 . 72764)) (72767 76414 ( +\TEDIT.RESET.EXTEND.PENDING.DELETE 72777 . 73750) (\TEDIT.SET.SEL.LOOKS 73752 . 76412)) (76415 94815 ( +\TEDIT.SHOWSEL 76425 . 80885) (\TEDIT.SHOWSEL.HILIGHT 80887 . 85508) (\TEDIT.UPDATE.SEL 85510 . 89009) + (\TEDIT.CARETLINE 89011 . 89725) (\TEDIT.SEL.L1 89727 . 90410) (\TEDIT.SEL.LN 90412 . 91095) ( +\TEDIT.SEL.DELETEDCHARS 91097 . 94813)) (94816 99522 (\TEDIT.COPYSEL 94826 . 97292) ( +\TEDIT.SEL.CHANGED? 97294 . 99520)) (99553 112282 (\TEDIT.SELECT.OBJECT 99563 . 104069) ( +\TEDIT.SHOWSEL.OBJECT 104071 . 106233) (\TEDIT.CLIP.OBJECT 106235 . 108239) (\TEDIT.OPERATE.OBJECT +108241 . 112280)) (112310 130908 (\TEDIT.SELPIECES 112320 . 116268) (\TEDIT.SELPIECES.COPY 116270 . +118308) (\TEDIT.SELPIECES.CONCAT 118310 . 120189) (\TEDIT.SELPIECES.CHARTRANSFORM 120191 . 123400) ( +\TEDIT.SELPIECES.FROM.STRING 123402 . 128543) (\TEDIT.SELPIECES.TO.STRING 128545 . 130906)) (130961 +153484 (TEDIT.XYTOCH 130971 . 133355) (TEDIT.SELPROP 133357 . 137387) (TEDIT.GETPOINT 137389 . 139309) + (TEDIT.GETSEL 139311 . 140045) (TEDIT.GETSEL.PARA 140047 . 140996) (TEDIT.SCANSEL 140998 . 141946) ( +TEDIT.SET.SEL.LOOKS 141948 . 143327) (TEDIT.SETSEL 143329 . 148093) (TEDIT.SHOWSEL 148095 . 149375) ( +TEDIT.SEL.AS.STRING 149377 . 151862) (TEDIT.SEL.AS.SEXPR 151864 . 153150) (TEDIT.SELECTALL 153152 . +153482))))) STOP diff --git a/library/tedit/TEDIT-SELECTION.LCOM b/library/tedit/TEDIT-SELECTION.LCOM index a079ba27ccf9e81091183960a948c86c1910468f..642a278e803096b980baa5bb1468ed249020a7eb 100644 GIT binary patch delta 1074 zcmbtTOKTHR6rMbcHr1GmAqH zj_Y|jLUFOe>|%^2X%;9lO>$|9T`{iGOLz78r4bEf1ua%W65=&Mk>fWwjvWMl^k^4J zrm5jHm0bDUSNpPXsXBiTqT`d21V=&fcsvSzeHPQgU%F{3I_Mu57qCtdWw7dT(7v%K zESC!?E1~H}H_iFE#o5J&BPWf94xIwUG91g)9=Q6kvx}31kXDQ6mY__QVp*($McBjJ z({!3ir4uCf`EQj2kwkOX_3QdM$x9HP%<5Q6oO4^X-8f3K984gsEXY}U!JN>j!}pqSe7P~imO*P;I*Z05=PJ;@XZph6P(96mTGX+?apPLTnX zS7Z&zS_#)^oZ*86>>W+je&mx?#ZM64%4mr83U5!XyHY*^f0oc9oZ!9Cay!9Cu|<3k zHwcezdhAu*^x6%|GV-DDX}N$I2x2DC=#>jfAZKh%@unwpKG5kf6^yM<_3vHl#I|0s zn^$zhZeG?+x802BW~cq8_EI`qePM|$Uq>4ra`|v*gxnoUSPA}YUXztDFDhY&t4(dX z515s(u{9H}Z+FQX?qJ1UlO2Y~ID2Ad?MAm~dN&D=C7SL?z!EE)L8xC4O^;JE+9d;* zEW;9K;!0$50#xvXjZRSFQ8b!>+BRu7zzx@LR63>G?9_^AlkHw P@H*}p#OUTzxv&2Z_kJv6 delta 1042 zcmbtTOK1~O6rFsj5n^Jar4;cdSkhvX&L@*!MVd}tn^))OWNI3aNNT!hXHY0^M5GHr zR|V_r+_jl7qaxNXJO4x(iAd0~A}1%(X=W4xF*ci+UR>B$v0R?z z^BleY_S~XS(iIWQXdaesL2P7R8LTpcQVX)N-uqzt_eRyKD*SR9I#dDxE=5scc@o*oANYFPxpDl^mbbpZDTfk z+AoQLo}|_qkVIK9-Gx)ZlTHlL*nQLd(!WW4w%&=+)ioP;{3I7eghw9|sBZrHK#gz=57(WgOzI^hs=(3oQG&^3V0gHoX@zJtp;uLu zkmsZ+qydvjfu@Q=sh|l;5do9tt#8s$jY~s86cvG79F}Jw%O3Gc^C0V`zap|~97ltS pk$`|B*Xsb5ESv+F6p%;k;4*O~#igzH`hYvfTVM6z_Np9@{|2N}6*2$- diff --git a/library/tedit/TEDIT-WINDOW b/library/tedit/TEDIT-WINDOW index 8837a1d3b..7ecee8bd4 100644 --- a/library/tedit/TEDIT-WINDOW +++ b/library/tedit/TEDIT-WINDOW @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "16-Feb-2025 23:34:57" {WMEDLEY}tedit>TEDIT-WINDOW.;759 232910 +(FILECREATED "16-Mar-2025 21:45:12" {WMEDLEY}tedit>TEDIT-WINDOW.;777 235489 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.WINDOW.CREATE) + :CHANGES-TO (FNS TEDIT.DEFAULT.MENUFN) - :PREVIOUS-DATE "13-Feb-2025 20:49:31" {WMEDLEY}TEDIT>TEDIT-WINDOW.;754) + :PREVIOUS-DATE "15-Mar-2025 00:33:15" {WMEDLEY}tedit>TEDIT-WINDOW.;776) (PRETTYCOMPRINT TEDIT-WINDOWCOMS) @@ -25,8 +25,8 @@ (INITRECORDS TEDITCARET PANEPROPS) (FILES ATTACHEDWINDOW) (FNS TEDIT.DEFER.UPDATES) - (FNS \TEDIT.WINDOW.CREATE \TEDIT.WINDOW.SETUP \TEDIT.MINIMAL.WINDOW.SETUP \TEDIT.CLEARPANE - \TEDIT.FILL.PANES) + (FNS \TEDIT.WINDOW.CREATE \TEDIT.WINDOW.GETREGION \TEDIT.WINDOW.SETUP + \TEDIT.MINIMAL.WINDOW.SETUP \TEDIT.CLEARPANE \TEDIT.FILL.PANES) (FNS \TEDIT.CURSORMOVEDFN \TEDIT.CURSOROUTFN \TEDIT.ACTIVE.WINDOWP \TEDIT.EXPANDFN \TEDIT.MAINW \TEDIT.MAINSTREAM \TEDIT.PRIMARYPANE \TEDIT.PANELIST \TEDIT.NEWREGIONFN \TEDIT.SET.WINDOW.EXTENT \TEDIT.SHRINK.ICONCREATE \TEDIT.SHRINKFN \TEDIT.PANEREGION) @@ -58,7 +58,7 @@ (TEDIT.PROMPTWINDOW.HEIGHT NIL)) (GLOBALVARS TEDIT.PROMPT.FONT TEDIT.PROMPTWINDOW.HEIGHT)) (COMS (* ; "Title creation and update") - (FNS \TEXTSTREAM.TITLE \TEDIT.DEFAULT.TITLE \TEDIT.WINDOW.TITLE \TEXTSTREAM.FILENAME + (FNS \TEDIT.FILENAME \TEDIT.DEFAULT.TITLE \TEDIT.WINDOW.TITLE \TEDIT.LIKELY.FILENAME \TEDIT.UPDATE.TITLE)) (COMS (* ; "Screen updating utilities") (FNS TEDIT.DEACTIVATE.WINDOW \TEDIT.RESHAPEFN \TEDIT.REPAINTFN) @@ -355,7 +355,7 @@ (DEFINEQ (\TEDIT.WINDOW.CREATE - [LAMBDA (WINDOW TSTREAM PROPS) (* ; "Edited 16-Feb-2025 23:34 by rmk") + [LAMBDA (WINDOW TSTREAM PROPS) (* ; "Edited 18-Feb-2025 09:49 by rmk") (* ; "Edited 1-Jul-2024 22:55 by rmk") (* ; "Edited 29-Jun-2024 23:16 by rmk") (* ; "Edited 5-May-2024 21:54 by rmk") @@ -380,7 +380,7 @@ (LET ((TEXTOBJ (TEXTOBJ TSTREAM)) (PHEIGHT 0) - TITLE REGIONTYPE PROMPTPROP REGION FILE PWINDOW PREPROMPT WTEXTOBJ WIDTH) + TITLE REGIONTYPE PROMPTPROP REGION FILE PWINDOW PREPROMPT WTEXTOBJ) (CL:WHEN (WINDOWP WINDOW) (CL:WHEN (SETQ WTEXTOBJ (fetch (TEXTWINDOW WTEXTOBJ) of WINDOW)) @@ -414,27 +414,12 @@ (SETQ REGION (if (REGIONP WINDOW) then (PROG1 (COPY WINDOW) (SETQ WINDOW NIL)) - else (GRAB-TYPED-REGION REGIONTYPE))) - (CL:UNLESS REGION - (CLRPROMPT) (* ; "System promptwindow") - (printout PROMPTWINDOW "Please specify a " (OR REGIONTYPE "Tedit") - " window region") - (CL:WHEN FILE - (printout PROMPTWINDOW " for " T " " (FULLNAME FILE))) - (TERPRI PROMPTWINDOW) - [SETQ WIDTH (for PARALOOKS in (FGETTOBJ TEXTOBJ TXTPARALOOKSLIST) - largest (GETPARA PARALOOKS RIGHTMAR) - finally (RETURN (IPLUS \TEDIT.LINEREGION.WIDTH (OR $$EXTREME 32) - 12 - (CL:IF (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE) - 0 - \TEDIT.OP.WIDTH)] - (GETMOUSESTATE) - [SETQ REGION (GETREGION 32 (IPLUS PHEIGHT 32) - (CREATEREGION LASTMOUSEX LASTMOUSEY WIDTH (PLUS PHEIGHT 200] + elseif (GRAB-TYPED-REGION REGIONTYPE) + else (SETQ REGION (\TEDIT.WINDOW.GETREGION TSTREAM REGIONTYPE PHEIGHT)) (* ;  "We don't want the default to keep shrinking") - (SETQ PREPROMPT (create REGION using REGION))) + (SETQ PREPROMPT (create REGION using REGION)) + REGION)) (add (fetch (REGION HEIGHT) of REGION) (IMINUS PHEIGHT)) (SETQ WINDOW (CREATEW REGION TITLE NIL NIL PROPS)) @@ -442,6 +427,11 @@ (* ;; "If we grabbed a typed-region, (maybe just a Tedit region by default. We stash it back onto the window so it will be remembered for next time.") (REGISTER-TYPED-REGION REGION REGIONTYPE WINDOW)) + + (* ;; "") + + (* ;; "We now have the main window") + (WINDOWPROP WINDOW 'TEDITCREATED (OR PREPROMPT T)) (CL:UNLESS [OR PWINDOW (EQ PROMPTPROP 'DON'T) (SETQ PWINDOW (WINDOWP (CAR (WINDOWPROP WINDOW 'PROMPTWINDOW] @@ -464,6 +454,41 @@ (WINDOWPROP WINDOW 'TITLE TITLE) WINDOW]) +(\TEDIT.WINDOW.GETREGION + [LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 19-Feb-2025 16:48 by rmk") + (* ; "Edited 18-Feb-2025 10:09 by rmk") + (LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) + WIDTH HEIGHT) + (CLRPROMPT) (* ; "System promptwindow") + (printout PROMPTWINDOW "Please specify a " (OR REGIONTYPE "Tedit") + " window region") + (CL:WHEN (TXTFILE TSTREAM) + (printout PROMPTWINDOW " for " 2 (GETTEXTPROP TSTREAM 'FILENAME))) + (TERPRI PROMPTWINDOW) + [SETQ WIDTH (OR (GETTEXTPROP TEXTOBJ 'OPENWIDTH) + (for PARALOOKS in (FGETTOBJ TEXTOBJ TXTPARALOOKSLIST) + largest (GETPLOOKS PARALOOKS RIGHTMAR) + finally (RETURN (CL:IF (AND $$EXTREME (IGREATERP $$EXTREME 0)) + $$EXTREME + (TIMES 6 PTSPERINCH))] + [SETQ HEIGHT (if (GETTEXTPROP TEXTOBJ 'OPENHEIGHT) + elseif (ZEROP (TEXTLEN TEXTOBJ)) + then 50 + else (for I L (TEXTLEN _ (TEXTLEN TEXTOBJ)) + (CHNO _ 1) from 1 to 20 while (ILEQ CHNO TEXTLEN) + sum (SETQ L (\TEDIT.FORMATLINE TSTREAM CHNO)) + (SETQ CHNO (FGETLD L LCHARLIM)) + (FGETLD L LHEIGHT] (* ; "36 for right margin selection") + (add WIDTH \TEDIT.LINEREGION.WIDTH 36 (CL:IF (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE) + 0 + \TEDIT.OP.WIDTH)) + (add HEIGHT PHEIGHT (TIMES 3 WBorder) + (FONTPROP WindowTitleDisplayStream 'HEIGHT)) + (if (IGREATERP (TEXTLEN TEXTOBJ) + 0) + then (GETBOXREGION WIDTH HEIGHT) + else (GETREGION WIDTH HEIGHT]) + (\TEDIT.WINDOW.SETUP [LAMBDA (PANE TSTREAM PROPS AFTERPANE LCHAR1) (* ; "Edited 25-Nov-2024 20:10 by rmk") (* ; "Edited 21-Nov-2024 21:12 by rmk") @@ -971,48 +996,51 @@ LEFT _ 0)))))]) (\TEDIT.SHRINK.ICONCREATE - [LAMBDA (W ICON ICON-POSITION) (* ; "Edited 15-Mar-2024 18:28 by rmk") + [LAMBDA (W ICON ICON-POSITION) (* ; "Edited 14-Mar-2025 12:35 by rmk") + (* ; "Edited 15-Mar-2024 18:28 by rmk") (* ; "Edited 20-Dec-2023 23:44 by rmk") (* ; "Edited 10-Apr-2023 09:44 by rmk") (* ; "Edited 25-Apr-88 23:53 by jds") (* ;; "Create the icon that represents this window.") - [PROG [(ICON (WINDOWPROP W 'ICON)) - (ICONTITLE (WINDOWPROP W 'TEDIT.ICON.TITLE)) - (SHRINKFN (WINDOWPROP W 'SHRINKFN] - (COND - ((NOT (fetch (TEXTWINDOW WTEXTOBJ) of W)) (* ; - "This isn't really a TEdit window any more. Don't do anything") - NIL) - ((TEDITMENUP W) (* ; + [LET ((ICON (WINDOWPROP W 'ICON)) + (ICONTITLE (WINDOWPROP W 'TEDIT.ICON.TITLE)) + (SHRINKFN (WINDOWPROP W 'SHRINKFN)) + (TSTREAM (TEXTSTREAM W T))) + (CL:WHEN TSTREAM + [if (GETTOBJ (GETTSTR TSTREAM TEXTOBJ) + MENUFLG) + then (* ;  "This is a text menu, and shrinks without trace.") - NIL) - ((OR (IGREATERP (FLENGTH SHRINKFN) - 3) - (AND (NOT (FMEMB 'SHRINKATTACHEDWINDOWS SHRINKFN)) - (IGREATERP (FLENGTH SHRINKFN) - 2))) (* ; + NIL + elseif (OR (IGREATERP (FLENGTH SHRINKFN) + 3) + (AND (NOT (FMEMB 'SHRINKATTACHEDWINDOWS SHRINKFN)) + (IGREATERP (FLENGTH SHRINKFN) + 2))) + then (* ;  "There are other functions that expect to handle this. Don't bother.") - NIL) - ((OR [AND ICONTITLE (EQUAL ICONTITLE (\TEXTSTREAM.TITLE (TEXTSTREAM W] - (AND (NOT ICONTITLE) - ICON)) - - (* ;; + NIL + else (OR (AND ICONTITLE (STRING.EQUAL ICONTITLE (\TEDIT.FILENAME TSTREAM))) + (AND (NOT ICONTITLE) + ICON)) + then + (* ;;  "we built this and the title is the same, or he has already put an icon on this. Do nothing") - NIL) - (ICON - (* ;; "There's an existing icon window; change the title in it") - - [WINDOWPROP W 'TEDIT.ICON.TITLE (SETQ ICONTITLE (\TEXTSTREAM.TITLE (TEXTSTREAM - W] - (ICONTITLE ICONTITLE NIL NIL ICON)) - (T (* ; "install a new icon") - [WINDOWPROP W 'TEDIT.ICON.TITLE (SETQ ICONTITLE (\TEXTSTREAM.TITLE (TEXTSTREAM W] - (WINDOWPROP W 'ICON (TITLEDICONW TEDIT.TITLED.ICON.TEMPLATE ICONTITLE TEDIT.ICON.FONT - ICON-POSITION T NIL 'FILE] + NIL + else (SETQ ICONTITLE (\TEDIT.FILENAME TSTREAM)) + (WINDOWPROP W 'TEDIT.ICON.TITLE ICONTITLE) + (if ICON + then + (* ;; "There's an existing icon window; change the title in it") + + (ICONTITLE ICONTITLE NIL NIL ICON) + else (* ; "install a new icon") + (WINDOWPROP W 'ICON (TITLEDICONW TEDIT.TITLED.ICON.TEMPLATE ICONTITLE + TEDIT.ICON.FONT ICON-POSITION T NIL + 'FILE])] (WINDOWPROP W 'ICON]) (\TEDIT.SHRINKFN @@ -2091,18 +2119,19 @@ (DEFINEQ -(\TEXTSTREAM.TITLE - [LAMBDA (STREAM) (* ; "Edited 18-Oct-2023 00:02 by rmk") +(\TEDIT.FILENAME + [LAMBDA (TSTREAM) (* ; "Edited 14-Mar-2025 11:44 by rmk") + (* ; "Edited 18-Oct-2023 00:02 by rmk") (* ; "Edited 24-Aug-2021 23:25 by rmk:") (* ;; "returns a string with which you can talk to the user about this stream. e.g. for Get and Put prompts") - (LET ((TEXTOBJ (TEXTOBJ STREAM)) + (LET ((TEXTOBJ (TEXTOBJ TSTREAM)) TXTFILE) (SETQ TXTFILE (FGETTOBJ TEXTOBJ TXTFILE)) (OR (CL:TYPECASE TXTFILE (STRINGP TXTFILE) - (STREAM (fetch (STREAM FULLNAME) of TXTFILE)) + (STREAM (FULLNAME TXTFILE)) (LITATOM TXTFILE) (T TXTFILE)) ""]) @@ -2176,8 +2205,9 @@ (WINDOWPROP W 'TITLE TITLE)) TITLE)))]) -(\TEXTSTREAM.FILENAME - [LAMBDA (TEXTSTREAM UNFORMATTED?) (* ; "Edited 18-Jan-2024 09:03 by rmk") +(\TEDIT.LIKELY.FILENAME + [LAMBDA (TSTREAM UNFORMATTED?) (* ; "Edited 14-Mar-2025 11:46 by rmk") + (* ; "Edited 18-Jan-2024 09:03 by rmk") (* ; "Edited 29-Dec-2023 00:33 by rmk") (* ; "Edited 18-Dec-2023 14:06 by rmk") (* ; "Edited 30-May-91 23:34 by jds") @@ -2188,14 +2218,14 @@ (* ;; "returns the name of the file associated with this stream if there is one. NIL otherwise. Version numbers suppressed.") - (LET* ((TEXTOBJ (TEXTOBJ TEXTSTREAM)) + (LET* ((TEXTOBJ (TEXTOBJ TSTREAM)) (DEFAULTEXT (CL:IF UNFORMATTED? 'TXT 'TEDIT)) (TXTFILE (GETTOBJ TEXTOBJ TXTFILE)) EXT) (CL:WHEN (type? STREAM TXTFILE) - (SETQ TXTFILE (fetch FULLFILENAME of TXTFILE)) + (SETQ TXTFILE (fetch (STREAM FULLFILENAME) of TXTFILE)) [SETQ EXT (U-CASE (FILENAMEFIELD TXTFILE 'EXTENSION] (if (OR (NULL EXT) (EQ EXT 'BRAVO)) @@ -2206,7 +2236,9 @@ (PACKFILENAME 'EXTENSION EXT 'VERSION NIL 'BODY TXTFILE))]) (\TEDIT.UPDATE.TITLE - [LAMBDA (TEXTOBJ FILENAME) (* ; "Edited 13-Dec-2024 08:59 by rmk") + [LAMBDA (TEXTOBJ FILENAME) (* ; "Edited 15-Mar-2025 00:32 by rmk") + (* ; "Edited 8-Mar-2025 12:00 by rmk") + (* ; "Edited 13-Dec-2024 08:59 by rmk") (* ; "Edited 22-Oct-2024 11:44 by rmk") (* ; "Edited 28-Aug-2024 15:50 by rmk") (* ; "Edited 11-Aug-2024 13:11 by rmk") @@ -2216,20 +2248,26 @@ (* ;; "find and set the title to reflect a new filename, and update the file fields of any attached menu too.") - (LET ((TITLE (\TEXTSTREAM.TITLE TEXTOBJ)) - MENUSTREAM PC STATEFN) + (LET ((TITLE (\TEDIT.FILENAME TEXTOBJ)) + MENUSTREAM SETSTATEFN FIELD FIELDS) (\TEDIT.WINDOW.TITLE TEXTOBJ NIL (\TEDIT.DEFAULT.TITLE (OR FILENAME TITLE))) - (SETQ MENUSTREAM (TEDITMENU.STREAM TEXTOBJ)) + (SETQ MENUSTREAM (TEDIT.MENUSTREAM TEXTOBJ)) (CL:WHEN (AND MENUSTREAM (LITATOM TITLE)) (* ; - "if we have a filename then put it in the GET and PUT fields of the menu") + "if we have a filename then put it in the GETFILE and PUTFILE fields of the menu") (SETQ FILENAME (PACKFILENAME 'VERSION NIL 'BODY TITLE)) - (for BUTTON SETSTATEFN in (MB.GET '(GET PUT) - MENUSTREAM - '(OBJECT STARTPC)) when (SETQ SETSTATEFN - (IMAGEOBJPROP (CAR BUTTON) - 'SETSTATEFN)) - do (APPLY* SETSTATEFN (CADR BUTTON) - FILENAME MENUSTREAM)))]) + [SETQ FIELDS (MB.GET '(GETFILE PUTFILE) + MENUSTREAM + '(OBJECT STARTPC] + (CL:WHEN [AND (SETQ FIELD (LISTGET FIELDS 'GETFILE)) + (SETQ SETSTATEFN (IMAGEOBJPROP (CAR FIELD) + 'SETSTATEFN] + (APPLY* SETSTATEFN (CADR FIELD) + FILENAME MENUSTREAM)) + (CL:WHEN [AND (SETQ FIELD (LISTGET FIELDS 'PUTFILE)) + (SETQ SETSTATEFN (IMAGEOBJPROP (CAR FIELD) + 'SETSTATEFN] + (APPLY* SETSTATEFN (CADR FIELD) + FILENAME MENUSTREAM)))]) ) @@ -2239,7 +2277,9 @@ (DEFINEQ (TEDIT.DEACTIVATE.WINDOW - [LAMBDA (PANE) (* ; "Edited 29-Nov-2024 13:10 by rmk") + [LAMBDA (PANE) (* ; "Edited 14-Mar-2025 16:22 by rmk") + (* ; "Edited 18-Feb-2025 23:56 by rmk") + (* ; "Edited 29-Nov-2024 13:10 by rmk") (* ; "Edited 1-Jul-2024 17:42 by rmk") (* ; "Edited 18-May-2024 16:20 by rmk") (* ; "Edited 12-May-2024 17:19 by rmk") @@ -2256,7 +2296,7 @@ (* ;; "If the session is or can be finished, deactivate this Tedit window and process, and all attached Tedit menus. This disconnects the window and process from the textstream, which persists. This is not used to unsplit panes. The actual window-closing is done by setting the flag EDITFINISHEDFLG to T and giving control to the edit process. The flag causes the command loop to exit.") (PROG* [(TSTREAM (TEXTSTREAM PANE T)) - (TEXTOBJ (AND TSTREAM (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM] + (TEXTOBJ (AND TSTREAM (GETTSTR TSTREAM TEXTOBJ] (CL:UNLESS TEXTOBJ (* ;  "Return NIL if not an editing window (rather than error?)") (RETURN)) @@ -2271,7 +2311,7 @@ (CLEARW (GETTOBJ TEXTOBJ PROMPTWINDOW))) (\TEDIT.SETCARET (TEXTSEL TEXTOBJ) PANE TEXTOBJ 'OFF) (* ; - "Before the window is closed, make SURE that the caret is down, or the window will reappear.") + "Before the window is closed, make sure that the caret is down, or the window will reappear.") (CL:WHEN (AND (\TEDIT.WINDOW.TITLE TEXTOBJ) (OPENWP (GETTOBJ TEXTOBJ PROMPTWINDOW)) (OPENWP PANE) @@ -2295,13 +2335,14 @@ (WINDOWDELPROP PANE 'CLOSEFN (FUNCTION TEDIT.DEACTIVATE.WINDOW)) (* ; "To avoid a loop") (WINDOWPROP PANE 'SCROLLFN NIL) + (WINDOWPROP PANE 'AFTERMOVEFN NIL) (WINDOWDELPROP PANE 'RESHAPEFN (FUNCTION \TEDIT.RESHAPEFN)) (\TEDIT.INTERRUPT.SETUP (WINDOWPROP PANE 'PROCESS) T) (* ; "Restore any disarmed interrupts.") - (for MENUW in (ATTACHEDWINDOWS PANE) when (TEDITMENUP MENUW) + (for MENUW MTEXTOBJ in (ATTACHEDWINDOWS PANE) when (AND (SETQ MTEXTOBJ (TEXTOBJ MENUW T)) + (FGETTOBJ MTEXTOBJ MENUFLG)) do (* ; "Detach all the TEDITMENU windows.") - (SETTOBJ (TEXTOBJ MENUW) - EDITFINISHEDFLG T) (* ; + (SETTOBJ MTEXTOBJ EDITFINISHEDFLG T) (* ;  "Mark it finished so it closes itself") (WINDOWPROP MENUW 'TEDITMENU NIL) (* ;  "And mark it no longer a menu window") @@ -3472,7 +3513,9 @@ (UPDATE/MENU/IMAGE MENU]) (TEDIT.DEFAULT.MENUFN - [LAMBDA (PANE) (* ; "Edited 12-Feb-2025 16:26 by rmk") + [LAMBDA (PANE) (* ; "Edited 16-Mar-2025 21:38 by rmk") + (* ; "Edited 14-Mar-2025 16:40 by rmk") + (* ; "Edited 12-Feb-2025 16:26 by rmk") (* ; "Edited 9-Feb-2025 21:28 by rmk") (* ; "Edited 7-Jan-2025 23:46 by rmk") (* ; "Edited 27-Jul-2024 20:24 by rmk") @@ -3535,7 +3578,7 @@ (TEDIT.SUBSTITUTE TEXTOBJ))) (Find (* ;  "Case sensitive search, with * and # wildcards") - (\TEDIT.KEY.FIND TSTREAM TEXTOBJ)) + (\TEDIT.KEY.FIND TSTREAM)) (Looks (* ;  "He wants to set the font for the current selection") (\TEDIT.LOOKS TEXTOBJ)) @@ -3552,13 +3595,12 @@ (\TEDIT.PARAMENU.START TEXTOBJ)) (Page% Layout (* ; "Open the page-layout menu") (\TEDIT.MENU.START (\TEDIT.PAGEMENU.CREATE) - (\TEDIT.PRIMARYPANE TEXTOBJ) - "Page Layout Menu" 150 'PAGE)) + TSTREAM "Page Layout Menu" 150 'PAGE)) (CL:WHEN ITEM (* ;  "Apply a user-supplied function to the text stream") [RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ T) '(PROGN (\TEDIT.MARKINACTIVE OLDVALUE] - (APPLY* ITEM (fetch (TEXTWINDOW WTEXTSTREAM) of PANE)))])]) + (APPLY* ITEM (TEXTSTREAM PANE)))])]) (TEDIT.REMOVE.MENUITEM [LAMBDA (MENU ITEM) (* gbn "26-Apr-84 04:06") @@ -3662,37 +3704,38 @@ (RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _ TEDIT.ICON.TITLE.REGION)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (18423 19319 (TEDIT.DEFER.UPDATES 18433 . 19317)) (19320 43173 (\TEDIT.WINDOW.CREATE -19330 . 26856) (\TEDIT.WINDOW.SETUP 26858 . 30971) (\TEDIT.MINIMAL.WINDOW.SETUP 30973 . 39175) ( -\TEDIT.CLEARPANE 39177 . 39894) (\TEDIT.FILL.PANES 39896 . 43171)) (43174 65888 (\TEDIT.CURSORMOVEDFN -43184 . 48057) (\TEDIT.CURSOROUTFN 48059 . 48504) (\TEDIT.ACTIVE.WINDOWP 48506 . 49557) ( -\TEDIT.EXPANDFN 49559 . 50122) (\TEDIT.MAINW 50124 . 51404) (\TEDIT.MAINSTREAM 51406 . 51673) ( -\TEDIT.PRIMARYPANE 51675 . 52445) (\TEDIT.PANELIST 52447 . 52943) (\TEDIT.NEWREGIONFN 52945 . 55461) ( -\TEDIT.SET.WINDOW.EXTENT 55463 . 60717) (\TEDIT.SHRINK.ICONCREATE 60719 . 63259) (\TEDIT.SHRINKFN -63261 . 63670) (\TEDIT.PANEREGION 63672 . 65886)) (65920 97384 (\TEDIT.BUTTONEVENTFN 65930 . 78492) ( -\TEDIT.BUTTONEVENTFN.DOOPERATION 78494 . 85217) (\TEDIT.BUTTONEVENTFN.GETOPERATION 85219 . 87061) ( -\TEDIT.BUTTONEVENTFN.CURSEL.INIT 87063 . 90300) (\TEDIT.BUTTONEVENTFN.INACTIVE 90302 . 92644) ( -\TEDIT.BUTTONEVENTFN.INTITLE 92646 . 94481) (\TEDIT.COPYINSERTFN 94483 . 95615) (\TEDIT.FOREIGN.COPY -95617 . 97382)) (97385 114494 (\TEDIT.PANE.SPLIT 97395 . 101874) (\TEDIT.SPLITW 101876 . 109335) ( -\TEDIT.UNSPLITW 109337 . 113151) (\TEDIT.LINKPANES 113153 . 113916) (\TEDIT.UNLINKPANE 113918 . 114492 -)) (115851 116742 (TEDITWINDOWP 115861 . 116740)) (116779 119882 (TEDIT.GETINPUT 116789 . 119232) ( -\TEDIT.MAKEFILENAME 119234 . 119880)) (119931 128232 (TEDIT.PROMPTWINDOW 119941 . 120255) ( -TEDIT.PROMPTPRINT 120257 . 122884) (TEDIT.PROMPTCLEAR 122886 . 124605) (TEDIT.PROMPTFLASH 124607 . -126539) (\TEDIT.PROMPT.PAGEFULLFN 126541 . 128230)) (128470 137296 (\TEXTSTREAM.TITLE 128480 . 129170) - (\TEDIT.DEFAULT.TITLE 129172 . 131551) (\TEDIT.WINDOW.TITLE 131553 . 133722) (\TEXTSTREAM.FILENAME -133724 . 135394) (\TEDIT.UPDATE.TITLE 135396 . 137294)) (137339 145542 (TEDIT.DEACTIVATE.WINDOW 137349 - . 143142) (\TEDIT.RESHAPEFN 143144 . 145314) (\TEDIT.REPAINTFN 145316 . 145540)) (145543 187922 ( -\TEDIT.SCROLLFN 145553 . 147798) (\TEDIT.SCROLLCH.TOP 147800 . 149911) (\TEDIT.SCROLLCH.BOTTOM 149913 - . 154243) (\TEDIT.SCROLLUP 154245 . 159862) (\TEDIT.TOPLINE.YTOP 159864 . 161533) (\TEDIT.SCROLLDOWN -161535 . 168465) (\TEDIT.SCROLL.CARET 168467 . 171305) (\TEDIT.VISIBLECARETP 171307 . 173601) ( -\TEDIT.VISIBLECHARP 173603 . 174694) (\TEDIT.BITMAPLINES 174696 . 178616) (\TEDIT.SETPANE.TOPLINE -178618 . 179409) (\TEDIT.SHIFTLINES 179411 . 187920)) (187923 198792 (\TEDIT.ONSCREEN? 187933 . 192484 -) (\TEDIT.ONSCREEN.REGION 192486 . 196137) (\TEDIT.AFTERMOVEFN 196139 . 197036) (OFFSCREENP 197038 . -198790)) (198834 201451 (\TEDIT.PROCIDLEFN 198844 . 200381) (\TEDIT.PROCENTRYFN 200383 . 200828) ( -\TEDIT.PROCEXITFN 200830 . 201449)) (201530 214684 (\TEDIT.DOWNCARET 201540 . 202333) ( -\TEDIT.FLASHCARET 202335 . 204446) (\TEDIT.UPCARET 204448 . 205552) (TEDIT.NORMALIZECARET 205554 . -208772) (\TEDIT.SETCARET 208774 . 214054) (\TEDIT.CARET 214056 . 214682)) (214718 226880 ( -TEDIT.ADD.MENUITEM 214728 . 217019) (TEDIT.DEFAULT.MENUFN 217021 . 224092) (TEDIT.REMOVE.MENUITEM -224094 . 225091) (\TEDIT.CREATEMENU 225093 . 225658) (\TEDIT.MENU.WHENHELDFN 225660 . 226565) ( -\TEDIT.MENU.WHENSELECTEDFN 226567 . 226878))))) + (FILEMAP (NIL (18447 19343 (TEDIT.DEFER.UPDATES 18457 . 19341)) (19344 44470 (\TEDIT.WINDOW.CREATE +19354 . 25966) (\TEDIT.WINDOW.GETREGION 25968 . 28153) (\TEDIT.WINDOW.SETUP 28155 . 32268) ( +\TEDIT.MINIMAL.WINDOW.SETUP 32270 . 40472) (\TEDIT.CLEARPANE 40474 . 41191) (\TEDIT.FILL.PANES 41193 + . 44468)) (44471 67378 (\TEDIT.CURSORMOVEDFN 44481 . 49354) (\TEDIT.CURSOROUTFN 49356 . 49801) ( +\TEDIT.ACTIVE.WINDOWP 49803 . 50854) (\TEDIT.EXPANDFN 50856 . 51419) (\TEDIT.MAINW 51421 . 52701) ( +\TEDIT.MAINSTREAM 52703 . 52970) (\TEDIT.PRIMARYPANE 52972 . 53742) (\TEDIT.PANELIST 53744 . 54240) ( +\TEDIT.NEWREGIONFN 54242 . 56758) (\TEDIT.SET.WINDOW.EXTENT 56760 . 62014) (\TEDIT.SHRINK.ICONCREATE +62016 . 64749) (\TEDIT.SHRINKFN 64751 . 65160) (\TEDIT.PANEREGION 65162 . 67376)) (67410 98874 ( +\TEDIT.BUTTONEVENTFN 67420 . 79982) (\TEDIT.BUTTONEVENTFN.DOOPERATION 79984 . 86707) ( +\TEDIT.BUTTONEVENTFN.GETOPERATION 86709 . 88551) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 88553 . 91790) ( +\TEDIT.BUTTONEVENTFN.INACTIVE 91792 . 94134) (\TEDIT.BUTTONEVENTFN.INTITLE 94136 . 95971) ( +\TEDIT.COPYINSERTFN 95973 . 97105) (\TEDIT.FOREIGN.COPY 97107 . 98872)) (98875 115984 ( +\TEDIT.PANE.SPLIT 98885 . 103364) (\TEDIT.SPLITW 103366 . 110825) (\TEDIT.UNSPLITW 110827 . 114641) ( +\TEDIT.LINKPANES 114643 . 115406) (\TEDIT.UNLINKPANE 115408 . 115982)) (117341 118232 (TEDITWINDOWP +117351 . 118230)) (118269 121372 (TEDIT.GETINPUT 118279 . 120722) (\TEDIT.MAKEFILENAME 120724 . 121370 +)) (121421 129722 (TEDIT.PROMPTWINDOW 121431 . 121745) (TEDIT.PROMPTPRINT 121747 . 124374) ( +TEDIT.PROMPTCLEAR 124376 . 126095) (TEDIT.PROMPTFLASH 126097 . 128029) (\TEDIT.PROMPT.PAGEFULLFN +128031 . 129720)) (129960 139444 (\TEDIT.FILENAME 129970 . 130742) (\TEDIT.DEFAULT.TITLE 130744 . +133123) (\TEDIT.WINDOW.TITLE 133125 . 135294) (\TEDIT.LIKELY.FILENAME 135296 . 137083) ( +\TEDIT.UPDATE.TITLE 137085 . 139442)) (139487 148015 (TEDIT.DEACTIVATE.WINDOW 139497 . 145615) ( +\TEDIT.RESHAPEFN 145617 . 147787) (\TEDIT.REPAINTFN 147789 . 148013)) (148016 190395 (\TEDIT.SCROLLFN +148026 . 150271) (\TEDIT.SCROLLCH.TOP 150273 . 152384) (\TEDIT.SCROLLCH.BOTTOM 152386 . 156716) ( +\TEDIT.SCROLLUP 156718 . 162335) (\TEDIT.TOPLINE.YTOP 162337 . 164006) (\TEDIT.SCROLLDOWN 164008 . +170938) (\TEDIT.SCROLL.CARET 170940 . 173778) (\TEDIT.VISIBLECARETP 173780 . 176074) ( +\TEDIT.VISIBLECHARP 176076 . 177167) (\TEDIT.BITMAPLINES 177169 . 181089) (\TEDIT.SETPANE.TOPLINE +181091 . 181882) (\TEDIT.SHIFTLINES 181884 . 190393)) (190396 201265 (\TEDIT.ONSCREEN? 190406 . 194957 +) (\TEDIT.ONSCREEN.REGION 194959 . 198610) (\TEDIT.AFTERMOVEFN 198612 . 199509) (OFFSCREENP 199511 . +201263)) (201307 203924 (\TEDIT.PROCIDLEFN 201317 . 202854) (\TEDIT.PROCENTRYFN 202856 . 203301) ( +\TEDIT.PROCEXITFN 203303 . 203922)) (204003 217157 (\TEDIT.DOWNCARET 204013 . 204806) ( +\TEDIT.FLASHCARET 204808 . 206919) (\TEDIT.UPCARET 206921 . 208025) (TEDIT.NORMALIZECARET 208027 . +211245) (\TEDIT.SETCARET 211247 . 216527) (\TEDIT.CARET 216529 . 217155)) (217191 229459 ( +TEDIT.ADD.MENUITEM 217201 . 219492) (TEDIT.DEFAULT.MENUFN 219494 . 226671) (TEDIT.REMOVE.MENUITEM +226673 . 227670) (\TEDIT.CREATEMENU 227672 . 228237) (\TEDIT.MENU.WHENHELDFN 228239 . 229144) ( +\TEDIT.MENU.WHENSELECTEDFN 229146 . 229457))))) STOP diff --git a/library/tedit/TEDIT-WINDOW.LCOM b/library/tedit/TEDIT-WINDOW.LCOM index d8ee8b71fc03b1451f8b7573f6969d12a09872f6..4f137355874433dc2e5fac709c043fb7fbc2115a 100644 GIT binary patch delta 4340 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 delta 3925 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 diff --git a/library/tedit/TEDIT.LCOM b/library/tedit/TEDIT.LCOM index f169b97a5b8e49580b7d7f30e35a8147dbb14472..7b41dd3a612a99c79e1a350cc75c6a49dce1396c 100644 GIT binary patch delta 2135 zcma)8TW}L)6wYqj01-o5XayYWAzVy4ChjGh8yCAtHqADh-E?=;w2A{QDYmpq>19d> z+JJ!Klfti#FFt@XGQMbSrjCw4ADGdpqi;GRFFHK%Pf03fSE`^4uYVN2M3nMLJDMHK}n{R zb}TVK_!#&!1Xfj-)iAUsv}_I=lYXh&lvG33RHM}gjzdn`L5tU3cHmDRz0lRLgHG4X z*ACQEJp%>zW90aSIVc?_Lc@-_jtxY(k*S$)9B91OA-agVkfyt5zo)Ke70YU!y{pXM z8Jzt&L%%rtqr)3v!7z1MZ4XGDc~OBd#;4~c0#6mQ5`-`ZO-w>?%{dpvjMQX`$BzDj zY^JNw`&?c=Y=ucll1MR3Oxx%&NG5DVU(`-eaTKWA)v=zS)MuNER0HKmTOb$g$7Z@_ z{?~zehgYyukt%_}SZPzbmIXcp`5ft>-zsSNjkp4aqbl1%gpq2R;Jrk{Q>!b*UZq1h_C9lvN|IO9f0^D*(qqfgnj5 zz_M#>p=FcLrOJxS3&9|G6-n%pOtS|}5OX<6O+shB{K3wDoaJtRT{DCt))6nIe)O>UU7DV+o%LJphujOA z`&+l;*wV+Do7wqI>cIAwu50e1y!76}MRm`O*$0d3=WCVvW#^3MUUdHO)$Df;Z;;s! z2koL0fB}LOc>X_UcvM(MfSfEP@E|f3f#uP2ou2ZY;eEB#X4G;bjov?Tc;k?W0o~Nx zn1PC}oM3C3mgdmNs3&(#EFN3BG<0^D{s|8gCkSvbE+#T@8F!Qokrt;#BModsfJ9o< z6IxQj)e}OiZY&#Kaf^h|k+D68xFBzNE1H%ufa8PYM=4{1TR+QwIFY}AHVDNZD^oRAIKrLI&|u(jrj%2Zb_%Ah|cKWc?S zTEaUgp=*lb120}226$UxFL;#Wy~T+U7#p8BdennoX=uyY%bU7H-Kg5hX#1%Q<+^-+ zE4pKuJLZ3`MPPxi| zP3@*O$f|5wm!R9H_T!-D(_Zxa=~#=)#0%dpTMiPMq$i}+6F^r_r?+7j@&+~~J*Uf+ zJ(ZF1`xMnor*JBH`e`&c9Yt^LYC@k+H=;kMpFu4%%>>y@3W>rtES(9qpt%{p+fJpD zt{LDe|2A`%a@xxTeRD=#XTOkKNW7?_o9CQm>a`2h#_Cd*Uq4r(%AFTJta;?W2DJXo F!oM3pI-dXl delta 3278 zcmbW4O>7&-6~~tpElYGPP>!q!N?gCNibEC=vmgAF+eE|V(p>Rl*W9IK6>jA)6e5|n zWGS{QxpnBGMc_+;C{y&%TWTZ-f*ur6LaU^RkW(QP=&6UKK#^X8=Fo$Lv}k&1`(|e; zQmRoH6@=By+nG1-{r+l;oH!2cfz=`|{%T8}rv@YcRWVWBJu*#(>W&5;J0?Cp6Wz zV15CD*-D`RolYW=NDyi--Nczkyg$d?CxT&rD61DVwX6|z3c-iPOC`_16GsEaY+{O% zqL)2S2UsqVj%cVfG>{L&m|4~)b)#a9X3#nM7TfuW$+4J-zd`VSf2ycu3flDDZ(f_P zF2A(A%CWTJD9zt{p7ivjppXRtA_hP7!CM<9jBsWAttH8G*UsnZA#T-tVm6Hv;Eo`gYd;E`%f{ z0j8x@G6thvB1H`(MTUYwG9ZajXj!wmR>(j~0?RJzr3(@5VuchS89y?h5l^xareQ%e z4tBYswH$z)g0faLCN)$xl>%p}qy*X}TPs<*QG!Ga3aU|rxC|B3)XFNcG*T{;X^>^U zu`nVhGA+Zr7AzZGK}?3=3oU_8;+C4f$rTz6(qZ2%&$s9sz7e|ZJ3GkJ!X;2ETnkgo zmW^WbU%uIHzU_-zsba!dCg~69Ac3vh1r2l%VM;G$j49MMhpKqT9ju$ucw3jvk&aF` z({6WYGeEZb<~RL(_--iBYBr3RH&xH)s8IA}hJaeH_obIyi*jAb%j zzj}iG4G1AQ>VDytW?NbTB<2ynFaQkMoKGxj^(1l6y3!Kk*5|vBnXob1kS2 zlm4f@>8-B%c3t0pOTSk~s4c$rPZ9VBwTb<;or!99=4Z9*|NaBxkJLvFsCO{$Qt#($ zX@|N00QrX`-*A}c+su_@i>S*ybzpE2CsVBvEfHF~@sXHIGP2{$lVCsY;_Kw!tc6bw zLL$X#IS^4wB(bG9Ei96_Q<*K^TzhdY+?=?Y^qpAm5ri&M-+!wfps+MT-(MK+sX3c; z<2m~0g=dZp?5&Xi{oTTqo(XP_F!R}gJxc1I1nLBf@JB`;9uy_=Wpmmc<4iq%dT(y; z-h7kR7lXYI+&9m&*^Pm{pOS0dPXeTNb#LRV`uabFP*jYuDv%>q4wOU`)Ep_RMn=Q% zSxI4=D2+Qr;l;ukCMOde!{nHF;6RpAoo__k>MaKneh4G2g(R#j?S!^}E)Qj>(3WkxlK#7X2BBe-D=OnSSC*xPvb|@>IJt@W0<_@J~4CGd! zi;EqzB+Rt!BgG-`2$Km~y|L|imp-*5_SDG!FW&du-k}$lKJT^jEmdD!e)bp_=9T3$ zz3;j92whxywt=F48kiva&3{f{6^V*%q)NOK>Hm_!Deqh$nFq>sloHATUMVU&DY$R& zP;|hbLh*6)wk1i3^oM}W_9}7E$#V?QL?p3QW$rxDXga&<}~;Z z?Cgxk8v=yB0q4&H{qmO4?}rdO?VV%4Vp?IK*6m4;pI*Oxrup03r#%#I<@haNln2gN z9JTD}f`-F+7$IJvog=GaMv6vBw++lx%|nP^RS(-PRt&sg9-0)!9|-9zVo?<{^|!R ry?b-5n_bD!=DGVvPxCLYH9SYsKFsBjSv6kaplan>Local>medley3.5>working-medley>library>tedit>tedit-exports.all;207 53931 +(FILECREATED "16-Mar-2025 00:20:08"  +{DSK}kaplan>Local>medley3.5>working-medley>library>tedit>tedit-exports.all;208 53292 :EDIT-BY rmk - :PREVIOUS-DATE "17-Feb-2025 12:26:08" {WMEDLEY}TEDIT>tedit-exports.all;206) + :PREVIOUS-DATE "19-Feb-2025 12:22:24" {WMEDLEY}TEDIT>tedit-exports.all;207) (PRETTYCOMPRINT ((E (MAPC (MKLIST FROMFILES) (FUNCTION (LAMBDA (F) (MAPC (IMPORTFILE F FLG) (FUNCTION @@ -18,7 +18,7 @@ PRINT)))))))) (RPAQ? CHECK-TEDIT-ASSERTIONS T) (PUTPROPS OBJECT.ALLOWS MACRO ((PC OPERATION FROMTOBJ TOTOBJ) (OR (NOT (EQ OBJECT.PTYPE (PTYPE PC))) ( \TEDIT.APPLY.OBJFN (PCONTENTS PC) OPERATION FROMTOBJ TOTOBJ)))) -(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE "16-Feb-2025 11:25:32")) +(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE "16-Mar-2025 00:16:31")) (RPAQQ \BTREEWORDSPERSLOT 4) (RPAQQ \BTREEMAXCOUNT 8) (CONSTANTS (\BTREEWORDSPERSLOT 4) (\BTREEMAXCOUNT 8)) @@ -118,7 +118,7 @@ $$SELPIECES)) REPEATUNTIL (EQ I.V. $$SPLAST) BY (\DTEST (NEXTPIECE I.V.) (QUOTE (GLOBALVARS TEDIT.EXTEND.PENDING.DELETE) (GLOBALVARS TEDIT.SELECTION TEDIT.SHIFTEDSELECTION TEDIT.MOVESELECTION TEDIT.COPYLOOKSSELECTION TEDIT.DELETESELECTION) -(PUTPROP (QUOTE TEDIT-SELECTION) (QUOTE IMPORTDATE) (IDATE "18-Feb-2025 22:06:22")) +(PUTPROP (QUOTE TEDIT-SELECTION) (QUOTE IMPORTDATE) (IDATE "15-Mar-2025 22:39:40")) (RECORD TAB (TABX . TABKIND)) (RECORD TABSPEC (DEFAULTTAB . TABS)) (DATATYPE LINECACHE ((* ;; "Image cache for display lines.") LCBITMAP (* ; @@ -261,7 +261,7 @@ SETQ I.V. (COND ((TYPE? THISLINE $$STARTSLOT) (PREVCHARSLOT (fetch (THISLINE NEX THISLINE))) (T $$STARTSLOT))) (SETQ $$CHARSLOTLIMIT (FIRSTCHARSLOT THISLINE)) by (PREVCHARSLOT I.V.) eachtime (SETQ CHAR (fetch (CHARSLOT CHAR) of I.V.)) (SETQ CHARW (fetch (CHARSLOT CHARW) of I.V.)) repeatuntil (EQ I.V. $$CHARSLOTLIMIT))))) T) -(PUTPROP (QUOTE TEDIT-SCREEN) (QUOTE IMPORTDATE) (IDATE "18-Feb-2025 12:50:32")) +(PUTPROP (QUOTE TEDIT-SCREEN) (QUOTE IMPORTDATE) (IDATE " 6-Mar-2025 11:42:48")) (DATATYPE PIECE ((* ; "The piece describes either a string or part of a file. , or a generalized OBJECT.") PCONTENTS (* ; "The background source of data for this piece (stream, string, block, object, depending on the PTYPE)." @@ -445,25 +445,7 @@ UTF8.PTYPE UTF16BE.PTYPE UTF16LE.PTYPE)) (STRING.PTYPES (LIST THINSTRING.PTYPE F BINABLE.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE)) (THIN.PTYPES (LIST THINFILE.PTYPE THINSTRING.PTYPE)) (FAT.PTYPES (LIST FATFILE2.PTYPE FATSTRING.PTYPE FATFILE1.PTYPE))) (GLOBALVARS \TEXTIMAGEOPS \TEXTFDEV) -(PUTPROP (QUOTE TEDIT-STREAM) (QUOTE IMPORTDATE) (IDATE "17-Feb-2025 12:25:59")) -(RPAQQ NONE.TTC 0) -(RPAQQ CHARDELETE.TTC 1) -(RPAQQ WORDDELETE.TTC 2) -(RPAQQ DELETE.TTC 3) -(RPAQQ FUNCTIONCALL.TTC 4) -(RPAQQ REDO.TTC 5) -(RPAQQ UNDO.TTC 6) -(RPAQQ CMD.TTC 7) -(RPAQQ NEXT.TTC 8) -(RPAQQ EXPAND.TTC 9) -(RPAQQ CHARDELETE.FORWARD.TTC 10) -(RPAQQ WORDDELETE.FORWARD.TTC 11) -(RPAQQ PUNCT.TTC 20) -(RPAQQ TEXT.TTC 21) -(RPAQQ WHITESPACE.TTC 22) -(CONSTANTS (NONE.TTC 0) (CHARDELETE.TTC 1) (WORDDELETE.TTC 2) (DELETE.TTC 3) (FUNCTIONCALL.TTC 4) ( -REDO.TTC 5) (UNDO.TTC 6) (CMD.TTC 7) (NEXT.TTC 8) (EXPAND.TTC 9) (CHARDELETE.FORWARD.TTC 10) ( -WORDDELETE.FORWARD.TTC 11) (PUNCT.TTC 20) (TEXT.TTC 21) (WHITESPACE.TTC 22)) +(PUTPROP (QUOTE TEDIT-STREAM) (QUOTE IMPORTDATE) (IDATE "19-Feb-2025 13:39:40")) (PUTPROPS \TEDIT.MOUSESTATE MACRO (BUTTON (* ;; "Test to see if only the specified mouse button is down. DOES NOT call GETMOUSESTATE, so the mouse-button info is the same as the last time it was called." ) (SELECTQ (CAR BUTTON) (LEFT (QUOTE (EQ LASTMOUSEBUTTONS 4))) (MIDDLE (QUOTE (EQ LASTMOUSEBUTTONS 1)) @@ -472,21 +454,12 @@ WORDDELETE.FORWARD.TTC 11) (PUNCT.TTC 20) (TEXT.TTC 21) (WHITESPACE.TTC 22)) I in ARGS as J on ARGS when (NOT (STRINGP I)) collect (LIST (QUOTE OR) I (LIST (QUOTE HELP) "TEdit consistency-check failure [RETURN to continue]: " (COND ((STRINGP (CADR J))) (T (KWOTE I)))))) )) (T (CONS COMMENTFLG ARGS))))) -(ACCESSFNS TEDITTERMCODE ((TTCLASS (LOGAND DATUM 224)) (TTDECODE (LOGAND DATUM 31)))) -(RPAQQ NOTBEFORE.LB 1) -(RPAQQ NOTAFTER.LB 2) -(RPAQQ BEFORE.LB 4) -(RPAQQ AFTER.LB 8) -(RPAQQ DISAPPEAR-IF-NOT-SPLIT.LB 16) -(RPAQQ NEWCHAR-IF-SPLIT.LB 32) -(CONSTANTS (NOTBEFORE.LB 1) (NOTAFTER.LB 2) (BEFORE.LB 4) (AFTER.LB 8) (DISAPPEAR-IF-NOT-SPLIT.LB 16) -(NEWCHAR-IF-SPLIT.LB 32)) -(PUTPROP (QUOTE TEDIT-COMMAND) (QUOTE IMPORTDATE) (IDATE "17-Feb-2025 12:25:49")) +(PUTPROP (QUOTE TEDIT-COMMAND) (QUOTE IMPORTDATE) (IDATE "15-Mar-2025 23:21:12")) (PUTPROPS \SMALLPIN MACRO (OPENLAMBDA (STREAM) (SIGNED (create WORD HIBYTE _ (\BIN STREAM) LOBYTE _ ( \BIN STREAM)) BITSPERWORD))) (PUTPROPS \SMALLPOUT MACRO (OPENLAMBDA (STREAM W) (* ; "Signed smallp, unlike \WOUT") (\BOUT STREAM ( LOGAND 255 (LRSH W 8))) (\BOUT STREAM (LOGAND W 255)))) -(PUTPROP (QUOTE TEDIT-FILE) (QUOTE IMPORTDATE) (IDATE "19-Feb-2025 12:11:42")) +(PUTPROP (QUOTE TEDIT-FILE) (QUOTE IMPORTDATE) (IDATE "14-Mar-2025 15:29:22")) (PUTPROP (QUOTE TEDIT-OLDFILE) (QUOTE IMPORTDATE) (IDATE "19-Feb-2025 12:09:40")) (DATATYPE CHARLOOKS ((* ;; "Describes the appearance (%"Looks%") of characters in a TEdit document.") (* ;; "NOTE: If fields change EQCLOOKS should change too.") CLFONT (* ; @@ -575,8 +548,8 @@ NEWVALUE))) (PUTPROPS FGETPARA MACRO ((PLOOKS FIELD) (ffetch (PARALOOKS FIELD) of PLOOKS))) (PUTPROPS GETPARA MACRO ((PLOOKS FIELD) (fetch (PARALOOKS FIELD) of PLOOKS))) (PUTPROPS SETPARA MACRO ((PLOOKS FIELD NEWVALUE) (replace (PARALOOKS FIELD) of PLOOKS with NEWVALUE))) -(PUTPROP (QUOTE TEDIT-LOOKS) (QUOTE IMPORTDATE) (IDATE "19-Feb-2025 12:00:37")) -(PUTPROP (QUOTE TEDIT-STYLES) (QUOTE IMPORTDATE) (IDATE "12-Feb-2025 12:18:37")) +(PUTPROP (QUOTE TEDIT-LOOKS) (QUOTE IMPORTDATE) (IDATE "21-Feb-2025 09:49:05")) +(PUTPROP (QUOTE TEDIT-STYLES) (QUOTE IMPORTDATE) (IDATE "19-Feb-2025 13:31:28")) (DATATYPE TEDITCARET (TCNOWTIME (* Used to hold the current time, when checking to see if a transition is due) TCTHENTIME (* Time when the next transition is to take place) TCFORCEDDOWN (* TCFORCEDOWN = T means (Make the caret visible at the next call to \EDIT.FLIPCARET.)) TCUP (* TCUP = T => The caret is @@ -632,8 +605,8 @@ OR (CL:IF (TYPENAMEP $$BODY (QUOTE TEXTOBJ)) (FGETTOBJ $$BODY PRIMARYPANE) $$BOD GETPANEPROP (PANEPROPS P) NEXTPANE))) (GO $$OUT))) by (OR (GETPANEPROP (PANEPROPS I.V.) PREVPANE) (GO $$OUT))))) (PUTPROPS ALLBUTTONSUP MACRO (NIL (ZEROP (LOGAND 7 LASTMOUSEBUTTONS)))) -(PUTPROP (QUOTE TEDIT-WINDOW) (QUOTE IMPORTDATE) (IDATE "18-Feb-2025 23:57:08")) -(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "16-Feb-2025 15:02:06")) +(PUTPROP (QUOTE TEDIT-WINDOW) (QUOTE IMPORTDATE) (IDATE "15-Mar-2025 00:33:15")) +(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "14-Mar-2025 15:29:51")) (RPAQQ PTSPERPICA 12) (RPAQQ PTSPERINCH 72) (RPAQQ PICASPERINCH 6) @@ -644,10 +617,15 @@ $$OUT))))) (CONSTANTS (PTSPERPICA 12) (PTSPERINCH 72) (PICASPERINCH 6) (MICASPERINCH 2540) (PTSPERCM (FQUOTIENT PTSPERINCH 2.54)) (PTSPERMICA (FQUOTIENT PTSPERINCH MICASPERINCH)) (MICASPERPOINT (FQUOTIENT MICASPERINCH PTSPERINCH))) -(PUTPROP (QUOTE TEDIT-MENU) (QUOTE IMPORTDATE) (IDATE " 8-Feb-2025 23:19:34")) -(PUTPROP (QUOTE TEDIT-FIND) (QUOTE IMPORTDATE) (IDATE "17-Feb-2025 12:25:36")) -(PUTPROP (QUOTE TEDIT-FNKEYS) (QUOTE IMPORTDATE) (IDATE "17-Feb-2025 09:12:22")) -(PUTPROP (QUOTE TEDIT-HCPY) (QUOTE IMPORTDATE) (IDATE " 8-Feb-2025 23:42:18")) +(PUTPROP (QUOTE TEDIT-MENU) (QUOTE IMPORTDATE) (IDATE "15-Mar-2025 23:41:25")) +(PUTPROP (QUOTE TEDIT-FIND) (QUOTE IMPORTDATE) (IDATE "15-Mar-2025 00:35:11")) +(RPAQQ \TEDIT.TTCCODES ((NONE 0) (CHARDELETE 1) (WORDDELETE 2) (DELETE 3) (FUNCTIONCALL 4) (REDO 5) ( +UNDO 6) (CMD 7) (NEXT 8) (EXPAND 9) (CHARDELETE.FORWARD 10) (WORDDELETE.FORWARD 11) (PUNCT 20) (TEXT +21) (WHITESPACE 22))) +(CONSTANTS \TEDIT.TTCCODES) +(PUTPROPS \TEDIT.TTC MACRO ((CLASS) (CONSTANT (CADR (ASSOC (QUOTE CLASS) \TEDIT.TTCCODES))))) +(PUTPROP (QUOTE TEDIT-FNKEYS) (QUOTE IMPORTDATE) (IDATE "16-Mar-2025 00:03:34")) +(PUTPROP (QUOTE TEDIT-HCPY) (QUOTE IMPORTDATE) (IDATE "19-Feb-2025 13:34:37")) (DATATYPE TEDITHISTORYEVENT ((* ;; "Describes one event on the TEdit edit history list.") THACTION (* ; "A keyword specifying what the event was") THPOINT (* ; "Was the selection to the left or right?") THLEN (* ; "The # of chars involved") THCH# (* ; "The starting ch#") THFIRSTPIECE (* ; @@ -661,7 +639,7 @@ TEDITHISTORYEVENT THLEN) of DATUM) 0))))) (INIT (DEFPRINT (QUOTE TEDITHISTORYEVE (PUTPROPS GETTH MACRO ((EVENT FIELD) (fetch (TEDITHISTORYEVENT FIELD) of EVENT))) (PUTPROPS SETTH MACRO ((EVENT FIELD NEWVALUE) (replace (TEDITHISTORYEVENT FIELD) of EVENT with NEWVALUE))) -(PUTPROP (QUOTE TEDIT-HISTORY) (QUOTE IMPORTDATE) (IDATE " 6-Feb-2025 15:42:44")) +(PUTPROP (QUOTE TEDIT-HISTORY) (QUOTE IMPORTDATE) (IDATE "15-Mar-2025 22:42:11")) (RECORD PAGEFORMATTINGSTATE ((* ;; "Contains the state for a TEdit page-formatting job.") PAGE# (* ; "The current page number. Counted from 1") FIRSTPAGE (* ;; "T if the current page is the 'first page' . Is set initially, and can be set again by the user at will. Gets reset after each page image is printed." @@ -692,8 +670,8 @@ REGIONPARENT FULLXPOINTER) (* ; "The parent node for this box, for sub-boxes") R (PUTPROPS GETPFS MACRO ((FS FIELD) (fetch (PAGEFORMATTINGSTATE FIELD) of FS))) (PUTPROPS SETPFS MACRO ((FS FIELD NEWVALUE) (replace (PAGEFORMATTINGSTATE FIELD) of FS with NEWVALUE)) ) -(PUTPROP (QUOTE TEDIT-PAGE) (QUOTE IMPORTDATE) (IDATE " 8-Feb-2025 23:42:12")) -(PUTPROP (QUOTE TEDIT-ABBREV) (QUOTE IMPORTDATE) (IDATE "31-Oct-2024 17:53:21")) +(PUTPROP (QUOTE TEDIT-PAGE) (QUOTE IMPORTDATE) (IDATE "23-Feb-2025 10:06:16")) +(PUTPROP (QUOTE TEDIT-ABBREV) (QUOTE IMPORTDATE) (IDATE "11-Mar-2025 23:30:40")) (PUTPROP (QUOTE TEDIT-TFBRAVO) (QUOTE IMPORTDATE) (IDATE "19-Feb-2025 12:18:40")) (DECLARE%: DONTCOPY (FILEMAP (NIL))) From 12f6f4eb5c7bb667261a769497fdcb333bf7eeb3 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sun, 16 Mar 2025 23:46:04 -0700 Subject: [PATCH 02/26] Added WHEELSCROLL here too This had a dependency on the separate PR --- lispusers/WHEELSCROLL | 162 ++++++++++++++++++------------------ lispusers/WHEELSCROLL.LCOM | Bin 4382 -> 4694 bytes lispusers/WHEELSCROLL.TEDIT | Bin 3903 -> 5866 bytes 3 files changed, 80 insertions(+), 82 deletions(-) diff --git a/lispusers/WHEELSCROLL b/lispusers/WHEELSCROLL index 300c5021d..593178745 100644 --- a/lispusers/WHEELSCROLL +++ b/lispusers/WHEELSCROLL @@ -1,29 +1,29 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "31-Mar-2024 06:57:25" {DSK}larry>il>medley>lispusers>WHEELSCROLL.;2 9911 +(FILECREATED "16-Mar-2025 18:23:44" {WMEDLEY}WHEELSCROLL.;36 10917 - :EDIT-BY "lmm" + :EDIT-BY rmk - :CHANGES-TO (VARS WHEELSCROLLCOMS) - (FNS ENABLEWHEELSCROLL) + :CHANGES-TO (FNS WHEELSCROLL) - :PREVIOUS-DATE " 2-Oct-2023 10:15:55" {DSK}larry>il>medley>lispusers>WHEELSCROLL.;1) + :PREVIOUS-DATE "15-Mar-2025 11:36:27" {WMEDLEY}WHEELSCROLL.;35) (PRETTYCOMPRINT WHEELSCROLLCOMS) (RPAQQ WHEELSCROLLCOMS [(FNS ENABLEWHEELSCROLL WHEELSCROLL WHEELSCROLL.DOIT INSTALL-WHEELSCROLL) - - (* ;; "These are the highest meta-ctrl characters, they will be unaffected by teh state of ctrl and meta mode keys") - - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS * WHEELSCROLLCHARS)) - (GLOBALVARS WHEELSCROLLENABLED WHEELSCROLLDELTA WHEELSCROLLSETTLETIME \WHEELSCROLLINPROGRESS) + (GLOBALVARS WHEELSCROLLENABLED WHEELSCROLLDELTA HWHEELSCROLLDELTA WHEELSCROLLSETTLETIME + \WHEELSCROLLINPROGRESS) (* ;; "To restore the keyactions for PAD..., if the keyaction table has been reinitialized") [ADDVARS (AFTERSYSOUTFORMS (AND WHEELSCROLLENABLED (ENABLEWHEELSCROLL T))) (AFTERMAKESYSFORMS (AND WHEELSCROLLENABLED (ENABLEWHEELSCROLL T] + + (* ;; "These are the highest meta-ctrl characters, they will be unaffected by the state of ctrl and meta mode keys. Should be moved to Function") + + (ALISTS (CHARACTERNAMES WHEELSCROLL-UP WHEELSCROLL-DOWN WHEELSCROLL-LEFT WHEELSCROLL-RIGHT)) (INITVARS (WHEELSCROLLENABLED NIL) (WHEELSCROLLDELTA 20) (HWHEELSCROLLDELTA NIL) @@ -34,7 +34,8 @@ (DEFINEQ (ENABLEWHEELSCROLL - [LAMBDA (ON EXCLUDEHORIZONTAL) (* ; "Edited 31-Mar-2024 06:30 by lmm") + [LAMBDA (ON EXCLUDEHORIZONTAL) (* ; "Edited 14-Mar-2025 18:27 by rmk") + (* ; "Edited 31-Mar-2024 06:30 by lmm") (* ; "Edited 2-Oct-2023 10:05 by rmk") (* ; "Edited 23-Oct-2021 16:31 by larry") (* ; "Edited 11-Jun-2021 12:50 by rmk:") @@ -49,14 +50,14 @@ (for KAT in (LIST \CURRENTKEYACTION \COMMANDKEYACTION \DEFAULTKEYACTION) do (for K in [if EXCLUDEHORIZONTAL - then `((PAD1 ,\WSUP) - (PAD2 ,\WSDOWN) + then `((PAD1 ,(CHARCODE WHEELSCROLL-UP)) + (PAD2 ,(CHARCODE WHEELSCROLL-DOWN)) (PAD4 IGNORE) (PAD5 IGNORE)) - else `((PAD1 ,\WSUP) - (PAD2 ,\WSDOWN) - (PAD4 ,\WSLEFT) - (PAD5 ,\WSRIGHT] + else `((PAD1 ,(CHARCODE WHEELSCROLL-UP)) + (PAD2 ,(CHARCODE WHEELSCROLL-DOWN)) + (PAD4 ,(CHARCODE WHEELSCROLL-LEFT)) + (PAD5 ,(CHARCODE WHEELSCROLL-RIGHT] do (KEYACTION (CAR K) (CONS (CL:IF (EQ (CADR K) 'IGNORE) @@ -84,45 +85,56 @@ (SETQ WHEELSCROLLENABLED NIL]) (WHEELSCROLL - [LAMBDA (DIRECTION DELTA) (* ; - "Edited 21-Feb-2021 09:38 by rmk:") + [LAMBDA (DIRECTION DELTA/POS) (* ; "Edited 16-Mar-2025 18:23 by rmk") + (* ; "Edited 14-Mar-2025 17:11 by rmk") + (* ; "Edited 13-Mar-2025 16:31 by rmk") + (* ; "Edited 21-Feb-2021 09:38 by rmk:") (* ;; "The wheel may accidentally turn (giving the interrupt) when the users intention is simply to push the middle button. And there may be another accidental turn (also giving an interrupt) when the user is releasing the middle button. We don't yet have a good solution to this problem. (This is not an issue with a trackpad)") (* ;; "") - (CL:WHEN (MOUSESTATE UP) (* ; - "Ignore interrupt if a button is down") - [LET ((W (WHICHW))) + (CL:WHEN (AND WHEELSCROLLENABLED (MOUSESTATE UP)) (* ; + "Ignore interrupt if a button is down") + [LET ((W (WHICHW)) + DELTA) - (* Unsuccessful a ttempt to suppress scroll if middlebutton comes down within - the setetle time (NOT (UNTILMOUSESTATE (ONLY MIDDLE) WHEELSCROLLSETTLETIME))) + (* ;; "Unsuccessful a ttempt to suppress scroll if middlebutton comes down within the setetle time (NOT (UNTILMOUSESTATE (ONLY MIDDLE) WHEELSCROLLSETTLETIME))") (CL:WHEN W (* ;; "We scroll only if the window has a scrollfn. Our behavior is thus different from a direct call to SCROLLW, which defaults to SCROLLBYREPAINTFN in that case, but conforms to what happens with IN/SCROLL/BAR? and SCROLL.HANDLER in WINDOWSCROLL. Menus and scrollbars typically do not have scrollfns, so this suppresses otherwise funky behavior. ") + (SETQ DELTA (SELECTQ DELTA/POS + (T (* ; "UP/RIGHT") + (CL:IF (EQ DIRECTION 'VERTICAL) + WHEELSCROLLDELTA + (OR HWHEELSCROLLDELTA WHEELSCROLLDELTA))) + (NIL (* ; "DOWN/LEFT") + (IMINUS (CL:IF (EQ DIRECTION 'VERTICAL) + WHEELSCROLLDELTA + (OR HWHEELSCROLLDELTA WHEELSCROLLDELTA)))) + DELTA/POS)) (if (WINDOWPROP W 'SCROLLFN) then [PROCESS.EVAL (FIND.PROCESS 'MOUSE) - (CL:IF (EQ DIRECTION 'VERTICAL) - `(WHEELSCROLL.DOIT ,(KWOTE W) - 0 - ,DELTA) - `(WHEELSCROLL.DOIT ,(KWOTE W) - ,DELTA 0))] + (CL:IF (EQ DIRECTION 'VERTICAL) + `(WHEELSCROLL.DOIT ,(KWOTE W) + 0 + ,DELTA) + `(WHEELSCROLL.DOIT ,(KWOTE W) + ,DELTA 0))] elseif (EQ DIRECTION 'VERTICAL) then + (* ;; "We are in a pop-up scrollbar. This moves the cursor there, the user has to click to scroll the main window.") - (* ;; "We are in a pop-up scrollbar. This moves the cursor there, the user has to click to scroll the main window.") - - (CL:WHEN (WINDOWPROP W 'VERTICALSCROLLBARFOR) - (\CURSORPOSITION LASTMOUSEX (IPLUS LASTMOUSEY DELTA)) - (GETMOUSESTATE)) + (CL:WHEN (WINDOWPROP W 'VERTICALSCROLLBARFOR) + (\CURSORPOSITION LASTMOUSEX (IPLUS LASTMOUSEY DELTA)) + (GETMOUSESTATE)) elseif (EQ DIRECTION 'HORIZONTAL) then (CL:WHEN (WINDOWPROP W 'HORIZONTALSCROLLBARFOR) - (\CURSORPOSITION (IPLUS DELTA LASTMOUSEX) - LASTMOUSEY) - (GETMOUSESTATE))))])]) + (\CURSORPOSITION (IPLUS DELTA LASTMOUSEX) + LASTMOUSEY) + (GETMOUSESTATE))))])]) (WHEELSCROLL.DOIT [LAMBDA (WINDOW DX DY) (* ; "Edited 20-Feb-2021 17:34 by rmk:") @@ -137,56 +149,30 @@ (RESETVAR \WHEELSCROLLINPROGRESS T (SCROLLW WINDOW DX DY)))]) (INSTALL-WHEELSCROLL - [LAMBDA NIL (* ; "Edited 29-Nov-2021 21:56 by rmk:") + [LAMBDA NIL (* ; "Edited 14-Mar-2025 18:27 by rmk") + (* ; "Edited 29-Nov-2021 21:56 by rmk:") (* ; "Edited 28-May-2021 11:46 by rmk:") (* ; "Edited 17-Feb-2021 11:53 by rmk:") (* ;; "We want the UP, DOWN...constants to be compiled awsy") - (SETQ WHEELSCROLLINTERRUPTS `((,\WSUP (WHEELSCROLL 'VERTICAL WHEELSCROLLDELTA) - T) - (,\WSDOWN (WHEELSCROLL 'VERTICAL (IMINUS WHEELSCROLLDELTA)) - T) - (,\WSLEFT (WHEELSCROLL 'HORIZONTAL (IMINUS (OR HWHEELSCROLLDELTA - WHEELSCROLLDELTA)) - T)) - (,\WSRIGHT (WHEELSCROLL 'HORIZONTAL (OR HWHEELSCROLLDELTA - WHEELSCROLLDELTA) - WHEELSCROLLDELTA T]) -) - - - -(* ;; -"These are the highest meta-ctrl characters, they will be unaffected by teh state of ctrl and meta mode keys" -) - -(DECLARE%: EVAL@COMPILE DONTCOPY - -(RPAQQ WHEELSCROLLCHARS ((\WSUP 156) - (\WSDOWN 157) - (\WSLEFT 158) - (\WSRIGHT 159))) -(DECLARE%: EVAL@COMPILE - -(RPAQQ \WSUP 156) - -(RPAQQ \WSDOWN 157) - -(RPAQQ \WSLEFT 158) - -(RPAQQ \WSRIGHT 159) - - -(CONSTANTS (\WSUP 156) - (\WSDOWN 157) - (\WSLEFT 158) - (\WSRIGHT 159)) -) + (SETQ WHEELSCROLLINTERRUPTS `((,(CHARCODE WHEELSCROLL-UP) + (WHEELSCROLL 'VERTICAL T) + T) + (,(CHARCODE WHEELSCROLL-DOWN) + (WHEELSCROLL 'VERTICAL) + T) + (,(CHARCODE WHEELSCROLL-LEFT) + (WHEELSCROLL 'HORIZONTAL) + T) + (,(CHARCODE WHEELSCROLL-RIGHT) + (WHEELSCROLL 'HORIZONTAL T) + T]) ) (DECLARE%: DOEVAL@COMPILE DONTCOPY -(GLOBALVARS WHEELSCROLLENABLED WHEELSCROLLDELTA WHEELSCROLLSETTLETIME \WHEELSCROLLINPROGRESS) +(GLOBALVARS WHEELSCROLLENABLED WHEELSCROLLDELTA HWHEELSCROLLDELTA WHEELSCROLLSETTLETIME + \WHEELSCROLLINPROGRESS) ) @@ -198,6 +184,18 @@ (ADDTOVAR AFTERMAKESYSFORMS (AND WHEELSCROLLENABLED (ENABLEWHEELSCROLL T))) + + +(* ;; +"These are the highest meta-ctrl characters, they will be unaffected by the state of ctrl and meta mode keys. Should be moved to Function" +) + + +(ADDTOVAR CHARACTERNAMES (WHEELSCROLL-UP 156) + (WHEELSCROLL-DOWN 157) + (WHEELSCROLL-LEFT 158) + (WHEELSCROLL-RIGHT 159)) + (RPAQ? WHEELSCROLLENABLED NIL) (RPAQ? WHEELSCROLLDELTA 20) @@ -214,6 +212,6 @@ (ENABLEWHEELSCROLL T) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1452 8682 (ENABLEWHEELSCROLL 1462 . 4220) (WHEELSCROLL 4222 . 6823) (WHEELSCROLL.DOIT -6825 . 7461) (INSTALL-WHEELSCROLL 7463 . 8680))))) + (FILEMAP (NIL (1462 9850 (ENABLEWHEELSCROLL 1472 . 4458) (WHEELSCROLL 4460 . 8008) (WHEELSCROLL.DOIT +8010 . 8646) (INSTALL-WHEELSCROLL 8648 . 9848))))) STOP diff --git a/lispusers/WHEELSCROLL.LCOM b/lispusers/WHEELSCROLL.LCOM index 53e77271cdc7df6551a392fe429f3328b755f097..a6a81c0993011ca97bb03b8aca0972cc62fbb74b 100644 GIT binary patch literal 4694 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 S8*5@0-zyO+P9nu3KK}>0jXTu< diff --git a/lispusers/WHEELSCROLL.TEDIT b/lispusers/WHEELSCROLL.TEDIT index 891e09dc782f2ea832ca4b8f23aa62321b88a185..fa325bb14f1beadaead552743c7dd0d26b5ded17 100644 GIT binary patch literal 5866 zcmd5=OLH5?5nhV&Lr|PYRqUjas#K@S2OvdKBtnt2QmF(2mf}VrmR>An$1Wd+*a0x5 z#qQQVNW)3~fcz(toO4L!k}4l^%EAB2`FeI|u@oU$j&lfQ0J}Zi)7@Wpe>3G%8H93q z=Ytd59*+B-I~=yUt=4|4wbyDjg?NSV;gY;KqQ@c$Mbz@=Dx)Bt6bl*UbR{whMV6Bc zR4xNj5uJ*3GNg7hvO`xY z3gWAbE|!$WxyV&C(`Hw5DMLaug38B5Tx62slrsP}Ma zH|)tBb?$t8Ttt&x#nC4%CsMfr5KCI4>vuF*k}hSMtBD9JR5+h3k&J9clQ_y5D!d_E zM)6Xlilc8OsSHKrznszGgqDay>Ek5xS$@%PHgCbibO&r$t^M zn=45u5;{r8mWn6~Mb3^H`m$IET2PXzODt?NN2GFws&l>& zH!+bJ22yt$K^eg!IHU>J9NrcURhD4KiA2Xk&dUUri89PMJBjG5H`rrd!f&_a7RIn7 zElp`vL#-Kj<`tOj>(KCUzqDW1)eIOnt^g@8Xg68N?|>HrHC6D(5g=0ZGzXb8a{yzA zQE!#gLL^!TV6Ae2q%6Nkk~9XO40K~gw|`M_1KfjM<7V$yh)Iw!>W-rV%p=pZNSJ@L z)95mOs_V9n_+Bu{RK}lep#b1UBy%alCETwgVNgW}gpUTubV;^!LG<_j)(T+ccp(Wu z#wmc*j0rDAlR%7H-37`}$%>1o71Ouc4RmPWcy`}++!1LqyLaY}ubm33byQMHiR(EZxg)s}1i1G&RMr@iCeR zK5&XqqU2ZCr{9U(VTAg7`Txoc)P*$PY#B)ZTzoEi|6 z=MkrJLzvCuBE(^a>p+qqNIqoC(?>f;lD_WQ@-|Q5T%S=5RX)~st{nw%ivzfE%GO;=4bI!5iy|-M1~!DVB%{D`-D<*@Ue+Dsf%V7ZVXJ&B@$=5yMv>H2N@<(IhT-$heCeil8l& z4~#qK8-hyH4ZL&&?de{e(x`$rv?cRJAO4Sm}i_55$?>)0JSZW-!X&+83c_wkt8@1OSu z#J8Ca^-p?UB|Qe&(I0$!;P~78+#mMF<9mCD`&$PG-Q7QtGh%wQ2jm_f)A?v%dqZbr z>$kD*Igf4k+}Cd|^y;Pa(L>MfJ?1OAUOe+$AG};`Gq#6#IddJj=567_89PRI?EfBC z4EFih_MFkNPNhS~u6Nq=SMO~G@%{mIkB;b<2PKH~YB;}g)n0<6zWco@l!piZ-%xh% z|Cd;zZ995SUb9-(o_?ynHaDzyoA2wM_gT2{rS%5?Y~Hrs-PrhYW1V6{W^BIm4Qw8; zebdjTwQE^lK=gIqzHv&2&%3&1{qWC<$!ZE{$n#mmYea9{7sn+_8`Uui~8f4ISpwv%&E-NyqrOWm)f7 zZ-Q)3ol$RSq=@N8h|pZgxaaT(*^jN3@0{9W&pqvp4ET_j%bXtLtQ-3+ekl9wmiBZD zZ+B0;^P#=-$o7v%^}11d6O#Xp(jDxigVxbtQx?2%Yoqj1|3-;t_PhAhsd4t(O~Gqs z(d5M%e>WQ6=ZD+)w2g!#TWj-sKQGX!Gy9f0 zb(S~w+4!yT&H?growwHIuiB`VC}UKYZEPgE2CVqZNO)t0`bR9_6>d+RaJ^q$^p{9< z-!g)=j>exQ{3*q7!~oYh7~elP8aK+!1Ep-|FJkR)2w1`>#vI z4RKxaxsjM?>h}1fS*ayIF_Id`pBf2AQbte#S{s#T7B5%%|BN4Xu$Ah+SfDqk1pm;2 V0j{bK)Sv%7N6Y@x`uwvm{sV2@El>ae literal 3903 zcmcguOK%!i6duP;8spN3ls;5d>S>h)NI(O%+r*oS#5g9!*d?T?6h+l#<^oq9?j6m; z7TI(kbiVa0>XmDRjpJL$4GF>R`nTv=9QwmKiVx>pc z>|!jXPsm14dYqUfl4L^GoS1XgD>c3^Bbpw`FiKV9P`GCl2(Lzc#CAoHg$EX?Ii$z_ zG%cX7bsn7@6BK+SJPFfw%x|$7jaZ#?(0B}o2wfJ`XZq!F&$lfakUwn)_I{X$1Y0TOj3(vHwkXA-Q2 zLPsbR%8S3#=0TmC3(to2yrMj|Z*s=cc4c>H4sFQbCS=c$gh(4b_Y@ zmU-aD*BdA=+}d0uh6IdZ zgwYW)43mKS!Uoaj<_zAs#jZAFnipUkuHl*@<;e>H%s~>30SG;n4Qxpb8N(P+IaHZ~ z(0GZv3?-$0*8%|ddlj^!LWcr5H*TJ8bpcX+@BR$%gBq0pzgpjWU`b~fV{T*YsSwY& z8VHRwvS5q^^S5dwW4f0T;hHd%QD9I^#P#Jcw@qhpZWUE*iKYQhFNS<9FbjDDV04F= zF1yDjQfQu<@~WkQ)-Gc~p_L=seHGh#_ItOI^TEjsB&m@$Ay!kN_$Wc1*vI)44yA|_ zq`qIM*XTK~wt0(UXgnF$s&sY+$QCL4}qBQhv=UD&CkY{Z=49#S&l5Z_^y8Rsk zZ`#BRT}4rXJ%|`c!#zVkEoIzTMY-h&FbpP&r@{WhrCk;XEPdNG#&!L~%)>StVRcn#fW4CvFTxQ_X3@B$T#ki+gUCgnc+26q zBq{t_!QszM=a#d}hmAMRJN($(a_(+yyxCycHJ>`)!RA9ewl+7NyVvO2tGe^rdA)HT z;r^omTW@hz*3C6vPxuZg+0P{yJEzUZt)o`+pxu4!?DU>>yEyQBs(tCZw)lSIZB(%G z7I58hZXKT-w0d19rPjIOI3GK=`>oz_yW8w!QfSXL-%TSyb1s`%FpTSUPAOHlKC+hbP@W)v1(4p?agd@OJ<5%jwC}KK?UopZ1ru%4KJkN}3RI zzljqU%N{HTTX@-F2_JHaGt<2R(aurtS*KNd-0B~8H&#NrWXPWWU&BpAv>^CkLGXdI z;OBL@%xiVY@NFR08lsfWdmNlSq`@8MOFpu|3i<1HCSesW$rAVc@_VL{-+YltKHvif zx>~u+u$uqI#UD%)($mLKt9NjKM7nFE8}XB#$NQstK% zT7Hus)+hBx=I%~*$cbS0q^$pYRO_&l@mz%+h7YS0xN_S;qoqA9?UB j)D^*JnemmIzt`UUx%TFtr5l^rtVd@F+^#ymzWVE5xZoz$ From f23939eb9c0a35660cbc606977d5bde1ae44c631 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Mon, 17 Mar 2025 10:05:49 -0700 Subject: [PATCH 03/26] Add function to retrieve the action bound to a character --- library/tedit/TEDIT-FNKEYS | 107 +++++++++++++++++++++++--------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 32715 -> 33712 bytes 2 files changed, 77 insertions(+), 30 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 80657dc65..20f328142 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,13 +1,14 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "16-Mar-2025 21:44:56" {WMEDLEY}tedit>TEDIT-FNKEYS.;204 83759 +(FILECREATED "17-Mar-2025 09:46:16" {WMEDLEY}tedit>TEDIT-FNKEYS.;207 86739 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.KEY.FIND) - (VARS TEDIT.KEYACTIONS) + :CHANGES-TO (VARS TEDIT-FNKEYSCOMS) + (FNS TEDIT.GET.KEYACTION TEDIT.GET.KEYBINDING TEDIT.CLEAR.KEYBINDINGS + TEDIT.INSTALL.KEYBINDINGS) - :PREVIOUS-DATE "16-Mar-2025 21:32:28" {WMEDLEY}tedit>TEDIT-FNKEYS.;203) + :PREVIOUS-DATE "16-Mar-2025 21:44:56" {WMEDLEY}tedit>TEDIT-FNKEYS.;204) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -45,7 +46,7 @@ (* ; "Keybindings") (DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (CONSTANTS \TEDIT.TTCCODES) (MACROS \TEDIT.TTC))) - (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS) + (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.KEYACTION) (VARS TEDIT.KEYACTIONS TEDIT.KEYBINDINGS TEDIT.DORADO.KEYBINDINGS) (* ; "Installation") [DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (TEDIT.READTABLE (\TEDIT.READTABLE)) @@ -1135,7 +1136,8 @@ (DEFINEQ (TEDIT.INSTALL.KEYBINDINGS - [LAMBDA (KEYBINDINGS RDTBL KEYACTIONS) (* ; "Edited 15-Mar-2025 15:20 by rmk") + [LAMBDA (KEYBINDINGS RDTBL KEYACTIONS) (* ; "Edited 17-Mar-2025 09:34 by rmk") + (* ; "Edited 15-Mar-2025 15:20 by rmk") (* ; "Edited 13-Mar-2025 23:25 by rmk") (* ; "Edited 11-Mar-2025 22:03 by rmk") @@ -1150,7 +1152,9 @@ then (OR (GETTOBJ (TEXTOBJ RDTBL) TXTRTBL) TEDIT.READTABLE) - else RDTBL)) + elseif (type? READTABLEP RDTBL) + then RDTBL + else (\ILLEGAL.ARG RDTBL))) (CL:UNLESS KEYACTIONS (SETQ KEYACTIONS TEDIT.KEYACTIONS)) [for KB A ACTION in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) when (AND [SETQ ACTION (find PAIR in TEDIT.KEYACTIONS suchthat @@ -1177,7 +1181,8 @@ RDTBL]) (TEDIT.CLEAR.KEYBINDINGS - [LAMBDA (RDTBL KEYBINDINGS) (* ; "Edited 15-Mar-2025 12:02 by rmk") + [LAMBDA (RDTBL KEYBINDINGS) (* ; "Edited 17-Mar-2025 09:35 by rmk") + (* ; "Edited 15-Mar-2025 12:02 by rmk") (* ;; "Removes the Tedit function bindings to the keys in KEYBINDINGS, or all current bindings if KEYBINDINGS is T") @@ -1187,7 +1192,9 @@ then (OR (GETTOBJ (TEXTOBJ RDTBL) TXTRTBL) TEDIT.READTABLE) - else RDTBL)) + elseif (type? READTABLEP RDTBL) + then RDTBL + else (\ILLEGAL.ARG RDTBL))) (CL:WHEN (fetch READMACRODEFS of RDTBL) [if (EQ KEYBINDINGS T) then [MAPHASH (fetch READMACRODEFS of RDTBL) @@ -1211,6 +1218,45 @@  "A tag like NEXT, UNDO. Setup the termtable FWIW ") (TEDIT.SETSYNTAX CHARCODE (CAR KB) RDTBL))])]) + +(TEDIT.GET.KEYACTION + [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 17-Mar-2025 09:43 by rmk") + + (* ;; "Returns the keyaction that CHARCODE binds to in BINDINGS. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") + + (CL:UNLESS (CHARCODEP CHARCODE) + (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) + (if (LISTP BINDINGS) + then [for KB in BINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) + when [thereis K in (CDR KB) suchthat (EQ CHARCODE (CL:IF (CHARCODEP K) + K + (CHARCODE.DECODE K))] + collect (CAR KB) finally + + (* ;; "Maybe cause an error if a character is assigned twice?") + + (RETURN (CL:IF (CDR $$VAL) + $$VAL + (CAR $$VAL))] + else (LET [(RDTBL (if (NULL BINDINGS) + then TEDIT.READTABLE + elseif (TEXTSTREAM BINDINGS T) + then (OR (GETTOBJ (TEXTOBJ BINDINGS) + TXTRTBL) + TEDIT.READTABLE) + elseif (type? READTABLEP BINDINGS) + else (\ILLEGAL.ARG BINDINGS] + [MAPHASH (fetch READMACRODEFS of RDTBL) + (FUNCTION (LAMBDA (VAL CCODE) + (CL:WHEN (AND (EQ CCODE CHARCODE) + (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of RDTBL) + CHARCODE))) + (for KA in TEDIT.KEYACTIONS when (EQUAL (CADR KA) + (CADR VAL)) + do (RETFROM (FUNCTION TEDIT.GET.KEYACTION) + (CAR KA))))] + NIL]) ) (RPAQQ TEDIT.KEYACTIONS @@ -1626,25 +1672,26 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3403 11193 (\TEDIT.KEY.CHARLOOKS 3413 . 4355) (\TEDIT.KEY.QUAD 4357 . 6450) ( -\TEDIT.DEFAULTSSEL 6452 . 7063) (\TEDIT.SETDEFAULT.FROM.SEL 7065 . 7742) (\TEDIT.KEY.SIZE 7744 . 8194) - (\TEDIT.SUBSCRIPTSEL 8196 . 8399) (\TEDIT.SUPERSCRIPTSEL 8401 . 8605) (\TEDIT.KEY.TRANSFORM 8607 . -10182) (\TEDIT.KEY.OPENLINE 10184 . 10638) (\TEDIT.KEY.FAMILYN 10640 . 11191)) (11194 11483 ( -CAP-CASECODE 11204 . 11481)) (11517 14143 (\TEDIT.SHOWCARETLOOKS 11527 . 13236) (\TEDIT.DESCRIBEFONT -13238 . 14141)) (14174 28231 (\TEDIT.ONECHAR.BACKWARD 14184 . 15313) (\TEDIT.ONECHAR.FORWARD 15315 . -16533) (\TEDIT.ONELINE.UP 16535 . 19496) (\TEDIT.ONELINE.DOWN 19498 . 21155) (\TEDIT.ONELINE.MOVE -21157 . 23371) (\TEDIT.ONEWORD.BACKWARD 23373 . 24410) (\TEDIT.ONEWORD.FORWARD 24412 . 25448) ( -\TEDIT.LINE.BEGIN 25450 . 26380) (\TEDIT.LINE.END 26382 . 27470) (\TEDIT.DOCUMENT.BEGIN 27472 . 27831) - (\TEDIT.DOCUMENT.END 27833 . 28229)) (28232 30076 (\TEDIT.LINEDELETE.FORWARD 28242 . 29142) ( -\TEDIT.LINEDELETE.BACKWARD 29144 . 30074)) (30077 32331 (\TEDIT.NEST 30087 . 32329)) (32385 40290 ( -\TEDIT.KEY.FIND 32395 . 37430) (\TEDIT.KEY.FIND.SEARCHSTRING 37432 . 38572) (\TEDIT.GET.TARGET.STRING -38574 . 40288)) (40321 42953 (\TEDIT.KEY.SUBSTITUTE 40331 . 40552) (\TEDIT.MANPAGE 40554 . 41801) ( -\TEDIT.CALL.ED 41803 . 42633) (\TEDIT.SELECT.ALL 42635 . 42951)) (42980 48560 (\TEDIT.CLIPBOARD 42990 - . 44745) (\TEDIT.COPYTOCLIPBOARD 44747 . 45527) (\TEDIT.EXTRACTTOCLIPBOARD 45529 . 45724) ( -\TEDIT.WRITE.SEL 45726 . 48558)) (48912 60517 (\TEDIT.READTABLE 48922 . 49748) ( -\TEDIT.WORDBOUND.READTABLE 49750 . 52379) (TEDIT.GETSYNTAX 52381 . 53900) (TEDIT.SETSYNTAX 53902 . -55107) (TEDIT.GETFUNCTION 55109 . 56281) (TEDIT.SETFUNCTION 56283 . 58269) (TEDIT.WORDGET 58271 . -58532) (TEDIT.WORDSET 58534 . 59165) (TEDIT.ATOMBOUND.READTABLE 59167 . 60515)) (61204 66454 ( -TEDIT.INSTALL.KEYBINDINGS 61214 . 64070) (TEDIT.CLEAR.KEYBINDINGS 64072 . 66452)) (76293 82733 ( -TEDIT.BUTTONS.BUILD 76303 . 81001) (TEDIT.BUTTONBITMAP.FILL 81003 . 82731))))) + (FILEMAP (NIL (3522 11312 (\TEDIT.KEY.CHARLOOKS 3532 . 4474) (\TEDIT.KEY.QUAD 4476 . 6569) ( +\TEDIT.DEFAULTSSEL 6571 . 7182) (\TEDIT.SETDEFAULT.FROM.SEL 7184 . 7861) (\TEDIT.KEY.SIZE 7863 . 8313) + (\TEDIT.SUBSCRIPTSEL 8315 . 8518) (\TEDIT.SUPERSCRIPTSEL 8520 . 8724) (\TEDIT.KEY.TRANSFORM 8726 . +10301) (\TEDIT.KEY.OPENLINE 10303 . 10757) (\TEDIT.KEY.FAMILYN 10759 . 11310)) (11313 11602 ( +CAP-CASECODE 11323 . 11600)) (11636 14262 (\TEDIT.SHOWCARETLOOKS 11646 . 13355) (\TEDIT.DESCRIBEFONT +13357 . 14260)) (14293 28350 (\TEDIT.ONECHAR.BACKWARD 14303 . 15432) (\TEDIT.ONECHAR.FORWARD 15434 . +16652) (\TEDIT.ONELINE.UP 16654 . 19615) (\TEDIT.ONELINE.DOWN 19617 . 21274) (\TEDIT.ONELINE.MOVE +21276 . 23490) (\TEDIT.ONEWORD.BACKWARD 23492 . 24529) (\TEDIT.ONEWORD.FORWARD 24531 . 25567) ( +\TEDIT.LINE.BEGIN 25569 . 26499) (\TEDIT.LINE.END 26501 . 27589) (\TEDIT.DOCUMENT.BEGIN 27591 . 27950) + (\TEDIT.DOCUMENT.END 27952 . 28348)) (28351 30195 (\TEDIT.LINEDELETE.FORWARD 28361 . 29261) ( +\TEDIT.LINEDELETE.BACKWARD 29263 . 30193)) (30196 32450 (\TEDIT.NEST 30206 . 32448)) (32504 40409 ( +\TEDIT.KEY.FIND 32514 . 37549) (\TEDIT.KEY.FIND.SEARCHSTRING 37551 . 38691) (\TEDIT.GET.TARGET.STRING +38693 . 40407)) (40440 43072 (\TEDIT.KEY.SUBSTITUTE 40450 . 40671) (\TEDIT.MANPAGE 40673 . 41920) ( +\TEDIT.CALL.ED 41922 . 42752) (\TEDIT.SELECT.ALL 42754 . 43070)) (43099 48679 (\TEDIT.CLIPBOARD 43109 + . 44864) (\TEDIT.COPYTOCLIPBOARD 44866 . 45646) (\TEDIT.EXTRACTTOCLIPBOARD 45648 . 45843) ( +\TEDIT.WRITE.SEL 45845 . 48677)) (49031 60636 (\TEDIT.READTABLE 49041 . 49867) ( +\TEDIT.WORDBOUND.READTABLE 49869 . 52498) (TEDIT.GETSYNTAX 52500 . 54019) (TEDIT.SETSYNTAX 54021 . +55226) (TEDIT.GETFUNCTION 55228 . 56400) (TEDIT.SETFUNCTION 56402 . 58388) (TEDIT.WORDGET 58390 . +58651) (TEDIT.WORDSET 58653 . 59284) (TEDIT.ATOMBOUND.READTABLE 59286 . 60634)) (61323 69434 ( +TEDIT.INSTALL.KEYBINDINGS 61333 . 64406) (TEDIT.CLEAR.KEYBINDINGS 64408 . 67005) (TEDIT.GET.KEYACTION +67007 . 69432)) (79273 85713 (TEDIT.BUTTONS.BUILD 79283 . 83981) (TEDIT.BUTTONBITMAP.FILL 83983 . +85711))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index e59f3dcc8e4e8a3dde889b468db5728e77c3c324..e364454843bfe3bd7e4d8e666a4c87230a0f06de 100644 GIT binary patch delta 1523 zcmZuxU5FD`6rMX-*6g&%W?i*wRgPJZMAKP^?3Pq4t|GMb zQItr_;*+IeD1}n+MMU31vO!c>r9N3v`c$xw?PFiI(06<9OfpH_%|p()=U(o7=R4nb zU%f+}+x!nJbLpkp7vC&NqLczLo0F9sZeKmSkdA{8#mZ<;!Z|scljQdHp#zRq)SX0G za}rf;l@uJkZnpoH;&eYLM&m-Pq#Ihn(g-~VQM~&D?kDK^Q_q=AbB6pTISDoLLA4dyCAB2K~#N+>ZZTzZq;slsmLRU_NwWS z6~J<8R2#ugrUHloY-t>JR)iX9RES-HRC2O|r=K1TV=U7aGAZ|=dHiF_%%~Gk#`|(_ zsAP&Vl61c|es4`^iio0!Ay>=@u?AqM63}TVcoga&!g*pq38VlgT_nLOI(b$eHX10D z3W{s;A&w{3&X#KX^W-9kv#!1Sw|lI@3N7yCt-F?&(#)HGf8W(_E7q@b*QR#1K5!xt zR0;K`HfGT(k5nH0_seCb108v1pH=vk&R<+C!`gL9R=ozY474Z467@v}PfFLf4kXiF z3v|vcLjx&T(FGRAh@&^e2P&W7X-H9e&^(nCRG~pBsOCM&0xK}qhGL|2JP$K9dD?m4 zg%-yga4FPnM#vOxG^}6ZyVfjP3w0L_u_DbiE8o%CoT|N1v^A^qCZ!*?83G$xDTC7Y>cBsjcJHE;K zVc%mBw6DJ39~iPOs1d^}%|=^Rr7`;Sskq;8YO(1^SCsTog=%{hOr_fP%B nhx2MVAp delta 571 zcmZ{gO>5LZ7=W|0RcI(w+_hCu`jUerZL`cIlcbwMo7rS`H|{oBHiPbhhi*@PAZX78 z4<5Wpm-z?MAFy=kO)MTfiO_%HuMkbJhFWkgFU&hU&+yFNqi??|$D`Y>xi>j9Eo?bp z5uZ}unZDS*M-5Ol^6$>JecYUWURi!Bcod69kB=MeIEkh|tj&B!Y|T*hcHHOTkhA;= zTn7|zR|AQW(T6SDbDH26B(pV!!&fgs^}{YpIy^H)3VJ)q;F`$*{V^M6Q2JRY;xv&r zk#@tjd}~XZXrpQys;oS_Gk=Y0-KE(gQmVnpllp;jE`RRm^6R5_$ffckse@xdE*yqw z#2XPW1`tZiyMg@ByT9Ohus;9P>!7z>% From 71289187e04f2026decc5beef3504de3345d7e57 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Mon, 17 Mar 2025 15:44:07 -0700 Subject: [PATCH 04/26] Added a function to get the bindings for an action --- library/tedit/TEDIT-FNKEYS | 348 ++++++++++++++++++-------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 33712 -> 34486 bytes 2 files changed, 192 insertions(+), 156 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 20f328142..e9053ec1a 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Mar-2025 09:46:16" {WMEDLEY}tedit>TEDIT-FNKEYS.;207 86739 +(FILECREATED "17-Mar-2025 15:40:10" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;210 88849 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT-FNKEYSCOMS) - (FNS TEDIT.GET.KEYACTION TEDIT.GET.KEYBINDING TEDIT.CLEAR.KEYBINDINGS - TEDIT.INSTALL.KEYBINDINGS) + :CHANGES-TO (VARS TEDIT.KEYBINDINGS TEDIT-FNKEYSCOMS) + (FNS TEDIT.GET.ACTIONBINDINGS TEDIT.GET.KEYACTION TEDIT.GET.KEYBINDING + TEDIT.CLEAR.KEYBINDINGS TEDIT.INSTALL.KEYBINDINGS) :PREVIOUS-DATE "16-Mar-2025 21:44:56" {WMEDLEY}tedit>TEDIT-FNKEYS.;204) @@ -14,7 +14,11 @@ (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) (RPAQQ TEDIT-FNKEYSCOMS - ((COMS + ((COMS (* ; + "Public functions (binding data below)") + (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.KEYACTION + TEDIT.GET.ACTIONBINDINGS)) + (COMS (* ;; "Functions that implement the key actions:") (FNS \TEDIT.KEY.CHARLOOKS \TEDIT.KEY.QUAD \TEDIT.DEFAULTSSEL \TEDIT.SETDEFAULT.FROM.SEL @@ -46,7 +50,6 @@ (* ; "Keybindings") (DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (CONSTANTS \TEDIT.TTCCODES) (MACROS \TEDIT.TTC))) - (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.KEYACTION) (VARS TEDIT.KEYACTIONS TEDIT.KEYBINDINGS TEDIT.DORADO.KEYBINDINGS) (* ; "Installation") [DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (TEDIT.READTABLE (\TEDIT.READTABLE)) @@ -60,6 +63,165 @@ +(* ; "Public functions (binding data below)") + +(DEFINEQ + +(TEDIT.INSTALL.KEYBINDINGS + [LAMBDA (KEYBINDINGS RDTBL KEYACTIONS) (* ; "Edited 17-Mar-2025 09:34 by rmk") + (* ; "Edited 15-Mar-2025 15:20 by rmk") + (* ; "Edited 13-Mar-2025 23:25 by rmk") + (* ; "Edited 11-Mar-2025 22:03 by rmk") + + (* ;; "Installs KEYBINDINGS in the Tedit RDTBL. A binding is an action-name followed by a list of character-name strings or Tedit built-in action items (like NEXT, UNDO). The implementation of the action is taken from entries in the TEDIT.KEYACTIONS list.") + + (* ;; "This will overwrite previous assignments in RDTBL, possibly add new ones. ") + + (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (TEXTOBJ RDTBL) + TXTRTBL) + TEDIT.READTABLE) + elseif (type? READTABLEP RDTBL) + then RDTBL + else (\ILLEGAL.ARG RDTBL))) + (CL:UNLESS KEYACTIONS (SETQ KEYACTIONS TEDIT.KEYACTIONS)) + [for KB A ACTION in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) + when (AND [SETQ ACTION (find PAIR in TEDIT.KEYACTIONS suchthat + + (* ;; + "An ASSOC that allows synonym keys") + + (EQMEMB (CAR KB) + (CAR PAIR] + (SETQ A (CADR ACTION))) do (for CHAR in (CDR KB) + do (CL:UNLESS (CHARCODEP CHAR) + (SETQ CHAR (CHARCODE.DECODE CHAR))) + (CL:WHEN (EQ (CAR ACTION) + 'CHARDELETE.FORWARD)) + (TEDIT.SETFUNCTION CHAR A RDTBL) + (* ; "Set the method") + (CL:WHEN NIL + (ASSOC (CAR ACTION) + \TEDIT.TTCCODES) + (* ; + "A tag like NEXT, UNDO. Setup the termtable FWIW ") + (TEDIT.SETSYNTAX CHAR (CAR ACTION) + RDTBL))] + RDTBL]) + +(TEDIT.CLEAR.KEYBINDINGS + [LAMBDA (RDTBL KEYBINDINGS) (* ; "Edited 17-Mar-2025 09:35 by rmk") + (* ; "Edited 15-Mar-2025 12:02 by rmk") + + (* ;; "Removes the Tedit function bindings to the keys in KEYBINDINGS, or all current bindings if KEYBINDINGS is T") + + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (TEXTOBJ RDTBL) + TXTRTBL) + TEDIT.READTABLE) + elseif (type? READTABLEP RDTBL) + then RDTBL + else (\ILLEGAL.ARG RDTBL))) + (CL:WHEN (fetch READMACRODEFS of RDTBL) + [if (EQ KEYBINDINGS T) + then [MAPHASH (fetch READMACRODEFS of RDTBL) + (FUNCTION (LAMBDA (VAL CHARCODE) + (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of RDTBL) + CHARCODE)) + (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) + (CL:WHEN (ASSOC CHARCODE \TEDIT.TTCCODES) + (* ; + "A tag like NEXT, UNDO. Setup the termtable FWIW ") + (TEDIT.SETSYNTAX CHARCODE CHARCODE RDTBL)))] + KEYBINDINGS + else (for KB in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) + do (for CHARCODE in (CDR KB) do (CL:UNLESS (CHARCODEP CHARCODE) + (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) + (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) + (CL:WHEN (ASSOC (CAR KB) + \TEDIT.TTCCODES) + (* ; + "A tag like NEXT, UNDO. Setup the termtable FWIW ") + (TEDIT.SETSYNTAX CHARCODE (CAR KB) + RDTBL))])]) + +(TEDIT.GET.KEYACTION + [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 17-Mar-2025 09:43 by rmk") + + (* ;; "Returns the keyaction that CHARCODE binds to in BINDINGS. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") + + (CL:UNLESS (CHARCODEP CHARCODE) + (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) + (if (LISTP BINDINGS) + then [for KB in BINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) + when [thereis K in (CDR KB) suchthat (EQ CHARCODE (CL:IF (CHARCODEP K) + K + (CHARCODE.DECODE K))] + collect (CAR KB) finally + + (* ;; "Maybe cause an error if a character is assigned twice?") + + (RETURN (CL:IF (CDR $$VAL) + $$VAL + (CAR $$VAL))] + else (LET [(RDTBL (if (NULL BINDINGS) + then TEDIT.READTABLE + elseif (TEXTSTREAM BINDINGS T) + then (OR (GETTOBJ (TEXTOBJ BINDINGS) + TXTRTBL) + TEDIT.READTABLE) + elseif (type? READTABLEP BINDINGS) + else (\ILLEGAL.ARG BINDINGS] + [MAPHASH (fetch READMACRODEFS of RDTBL) + (FUNCTION (LAMBDA (VAL CCODE) + (CL:WHEN (AND (EQ CCODE CHARCODE) + (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of RDTBL) + CHARCODE))) + (for KA in TEDIT.KEYACTIONS when (EQUAL (CADR KA) + (CADR VAL)) + do (RETFROM (FUNCTION TEDIT.GET.KEYACTION) + (CAR KA))))] + NIL]) + +(TEDIT.GET.ACTIONBINDINGS + [LAMBDA (ACTION BINDINGS) (* ; "Edited 17-Mar-2025 15:21 by rmk") + + (* ;; "Returns the bindings for ACTION in BINDINGS, a binding list or a read-table specification. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") + + (if (LISTP BINDINGS) + then (for KB in BINDINGS when (EQ ACTION (CAR KB)) join + (* ;; + "Allow for duplicate bindings for the same action?") + + (APPEND (CDR KB))) + else (LET ((RDTBL (if (NULL BINDINGS) + then TEDIT.READTABLE + elseif (TEXTSTREAM BINDINGS T) + then (OR (GETTOBJ (TEXTOBJ BINDINGS) + TXTRTBL) + TEDIT.READTABLE) + elseif (type? READTABLEP BINDINGS) + else (\ILLEGAL.ARG BINDINGS))) + (IMPL (CADR (ASSOC ACTION TEDIT.KEYACTIONS))) + KEYS) + (CL:WHEN IMPL + [MAPHASH (fetch READMACRODEFS of RDTBL) + (FUNCTION (LAMBDA (VAL CCODE) + (CL:WHEN (EQUAL IMPL (CADR VAL)) + (* ; "charcode, not charname") + (push KEYS CCODE))] + KEYS)]) +) + + + (* ;; "Functions that implement the key actions:") (DEFINEQ @@ -1133,131 +1295,6 @@ (* "END EXPORTED DEFINITIONS") ) -(DEFINEQ - -(TEDIT.INSTALL.KEYBINDINGS - [LAMBDA (KEYBINDINGS RDTBL KEYACTIONS) (* ; "Edited 17-Mar-2025 09:34 by rmk") - (* ; "Edited 15-Mar-2025 15:20 by rmk") - (* ; "Edited 13-Mar-2025 23:25 by rmk") - (* ; "Edited 11-Mar-2025 22:03 by rmk") - - (* ;; "Installs KEYBINDINGS in the Tedit RDTBL. A binding is an action-name followed by a list of character-name strings or Tedit built-in action items (like NEXT, UNDO). The implementation of the action is taken from entries in the TEDIT.KEYACTIONS list.") - - (* ;; "This will overwrite previous assignments in RDTBL, possibly add new ones. ") - - (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) - (SETQ RDTBL (if (NULL RDTBL) - then TEDIT.READTABLE - elseif (TEXTSTREAM RDTBL T) - then (OR (GETTOBJ (TEXTOBJ RDTBL) - TXTRTBL) - TEDIT.READTABLE) - elseif (type? READTABLEP RDTBL) - then RDTBL - else (\ILLEGAL.ARG RDTBL))) - (CL:UNLESS KEYACTIONS (SETQ KEYACTIONS TEDIT.KEYACTIONS)) - [for KB A ACTION in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) - when (AND [SETQ ACTION (find PAIR in TEDIT.KEYACTIONS suchthat - - (* ;; - "An ASSOC that allows synonym keys") - - (EQMEMB (CAR KB) - (CAR PAIR] - (SETQ A (CADR ACTION))) do (for CHAR in (CDR KB) - do (CL:UNLESS (CHARCODEP CHAR) - (SETQ CHAR (CHARCODE.DECODE CHAR))) - (CL:WHEN (EQ (CAR ACTION) - 'CHARDELETE.FORWARD)) - (TEDIT.SETFUNCTION CHAR A RDTBL) - (* ; "Set the method") - (CL:WHEN NIL - (ASSOC (CAR ACTION) - \TEDIT.TTCCODES) - (* ; - "A tag like NEXT, UNDO. Setup the termtable FWIW ") - (TEDIT.SETSYNTAX CHAR (CAR ACTION) - RDTBL))] - RDTBL]) - -(TEDIT.CLEAR.KEYBINDINGS - [LAMBDA (RDTBL KEYBINDINGS) (* ; "Edited 17-Mar-2025 09:35 by rmk") - (* ; "Edited 15-Mar-2025 12:02 by rmk") - - (* ;; "Removes the Tedit function bindings to the keys in KEYBINDINGS, or all current bindings if KEYBINDINGS is T") - - (SETQ RDTBL (if (NULL RDTBL) - then TEDIT.READTABLE - elseif (TEXTSTREAM RDTBL T) - then (OR (GETTOBJ (TEXTOBJ RDTBL) - TXTRTBL) - TEDIT.READTABLE) - elseif (type? READTABLEP RDTBL) - then RDTBL - else (\ILLEGAL.ARG RDTBL))) - (CL:WHEN (fetch READMACRODEFS of RDTBL) - [if (EQ KEYBINDINGS T) - then [MAPHASH (fetch READMACRODEFS of RDTBL) - (FUNCTION (LAMBDA (VAL CHARCODE) - (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) - (\SYNCODE (fetch READSA of RDTBL) - CHARCODE)) - (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) - (CL:WHEN (ASSOC CHARCODE \TEDIT.TTCCODES) - (* ; - "A tag like NEXT, UNDO. Setup the termtable FWIW ") - (TEDIT.SETSYNTAX CHARCODE CHARCODE RDTBL)))] - KEYBINDINGS - else (for KB in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) - do (for CHARCODE in (CDR KB) do (CL:UNLESS (CHARCODEP CHARCODE) - (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) - (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) - (CL:WHEN (ASSOC (CAR KB) - \TEDIT.TTCCODES) - (* ; - "A tag like NEXT, UNDO. Setup the termtable FWIW ") - (TEDIT.SETSYNTAX CHARCODE (CAR KB) - RDTBL))])]) - -(TEDIT.GET.KEYACTION - [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 17-Mar-2025 09:43 by rmk") - - (* ;; "Returns the keyaction that CHARCODE binds to in BINDINGS. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") - - (CL:UNLESS (CHARCODEP CHARCODE) - (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) - (if (LISTP BINDINGS) - then [for KB in BINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) - when [thereis K in (CDR KB) suchthat (EQ CHARCODE (CL:IF (CHARCODEP K) - K - (CHARCODE.DECODE K))] - collect (CAR KB) finally - - (* ;; "Maybe cause an error if a character is assigned twice?") - - (RETURN (CL:IF (CDR $$VAL) - $$VAL - (CAR $$VAL))] - else (LET [(RDTBL (if (NULL BINDINGS) - then TEDIT.READTABLE - elseif (TEXTSTREAM BINDINGS T) - then (OR (GETTOBJ (TEXTOBJ BINDINGS) - TXTRTBL) - TEDIT.READTABLE) - elseif (type? READTABLEP BINDINGS) - else (\ILLEGAL.ARG BINDINGS] - [MAPHASH (fetch READMACRODEFS of RDTBL) - (FUNCTION (LAMBDA (VAL CCODE) - (CL:WHEN (AND (EQ CCODE CHARCODE) - (EQ (\TEDIT.TTC FUNCTIONCALL) - (\SYNCODE (fetch READSA of RDTBL) - CHARCODE))) - (for KA in TEDIT.KEYACTIONS when (EQUAL (CADR KA) - (CADR VAL)) - do (RETFROM (FUNCTION TEDIT.GET.KEYACTION) - (CAR KA))))] - NIL]) -) (RPAQQ TEDIT.KEYACTIONS ( @@ -1395,7 +1432,7 @@ (RPAQQ TEDIT.KEYBINDINGS ( - (* ;; "Establishes key bindings for particular Tedit key actions. Function,xxx roughly correspond to Koto release notes, but mostly correspond to the current keyboard keyactions for e.g. BOLD, ITALIC, etc. perhaps in \DLIONKEYACTIONS") + (* ;; "Establishes key bindings for particular Tedit key actions. Function,xxx roughly correspond to Koto release notes, but this preserves the immediately preceding assignments if those drifted away from the Koto notes. There is no obvious way of typing Function. Maybe Meta,^xxx instead, as in DORADO.KEYBINDINGS. (But CTRL collapses upper and lower case).") (* ;; "") @@ -1485,8 +1522,7 @@ (* ; "keyactions for DEL key ??") (WORDDELELETE) (WORDDELETE.FORWARD) - (* ; - "^W isn't available--chardelete forward") + (* ; "^W is used for chardelete forward") (LINEDELETE.FORWARD) (LINEDELETE.BACKWARD) @@ -1672,26 +1708,26 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3522 11312 (\TEDIT.KEY.CHARLOOKS 3532 . 4474) (\TEDIT.KEY.QUAD 4476 . 6569) ( -\TEDIT.DEFAULTSSEL 6571 . 7182) (\TEDIT.SETDEFAULT.FROM.SEL 7184 . 7861) (\TEDIT.KEY.SIZE 7863 . 8313) - (\TEDIT.SUBSCRIPTSEL 8315 . 8518) (\TEDIT.SUPERSCRIPTSEL 8520 . 8724) (\TEDIT.KEY.TRANSFORM 8726 . -10301) (\TEDIT.KEY.OPENLINE 10303 . 10757) (\TEDIT.KEY.FAMILYN 10759 . 11310)) (11313 11602 ( -CAP-CASECODE 11323 . 11600)) (11636 14262 (\TEDIT.SHOWCARETLOOKS 11646 . 13355) (\TEDIT.DESCRIBEFONT -13357 . 14260)) (14293 28350 (\TEDIT.ONECHAR.BACKWARD 14303 . 15432) (\TEDIT.ONECHAR.FORWARD 15434 . -16652) (\TEDIT.ONELINE.UP 16654 . 19615) (\TEDIT.ONELINE.DOWN 19617 . 21274) (\TEDIT.ONELINE.MOVE -21276 . 23490) (\TEDIT.ONEWORD.BACKWARD 23492 . 24529) (\TEDIT.ONEWORD.FORWARD 24531 . 25567) ( -\TEDIT.LINE.BEGIN 25569 . 26499) (\TEDIT.LINE.END 26501 . 27589) (\TEDIT.DOCUMENT.BEGIN 27591 . 27950) - (\TEDIT.DOCUMENT.END 27952 . 28348)) (28351 30195 (\TEDIT.LINEDELETE.FORWARD 28361 . 29261) ( -\TEDIT.LINEDELETE.BACKWARD 29263 . 30193)) (30196 32450 (\TEDIT.NEST 30206 . 32448)) (32504 40409 ( -\TEDIT.KEY.FIND 32514 . 37549) (\TEDIT.KEY.FIND.SEARCHSTRING 37551 . 38691) (\TEDIT.GET.TARGET.STRING -38693 . 40407)) (40440 43072 (\TEDIT.KEY.SUBSTITUTE 40450 . 40671) (\TEDIT.MANPAGE 40673 . 41920) ( -\TEDIT.CALL.ED 41922 . 42752) (\TEDIT.SELECT.ALL 42754 . 43070)) (43099 48679 (\TEDIT.CLIPBOARD 43109 - . 44864) (\TEDIT.COPYTOCLIPBOARD 44866 . 45646) (\TEDIT.EXTRACTTOCLIPBOARD 45648 . 45843) ( -\TEDIT.WRITE.SEL 45845 . 48677)) (49031 60636 (\TEDIT.READTABLE 49041 . 49867) ( -\TEDIT.WORDBOUND.READTABLE 49869 . 52498) (TEDIT.GETSYNTAX 52500 . 54019) (TEDIT.SETSYNTAX 54021 . -55226) (TEDIT.GETFUNCTION 55228 . 56400) (TEDIT.SETFUNCTION 56402 . 58388) (TEDIT.WORDGET 58390 . -58651) (TEDIT.WORDSET 58653 . 59284) (TEDIT.ATOMBOUND.READTABLE 59286 . 60634)) (61323 69434 ( -TEDIT.INSTALL.KEYBINDINGS 61333 . 64406) (TEDIT.CLEAR.KEYBINDINGS 64408 . 67005) (TEDIT.GET.KEYACTION -67007 . 69432)) (79273 85713 (TEDIT.BUTTONS.BUILD 79283 . 83981) (TEDIT.BUTTONBITMAP.FILL 83983 . -85711))))) + (FILEMAP (NIL (3791 13628 (TEDIT.INSTALL.KEYBINDINGS 3801 . 6874) (TEDIT.CLEAR.KEYBINDINGS 6876 . 9473 +) (TEDIT.GET.KEYACTION 9475 . 11900) (TEDIT.GET.ACTIONBINDINGS 11902 . 13626)) (13688 21478 ( +\TEDIT.KEY.CHARLOOKS 13698 . 14640) (\TEDIT.KEY.QUAD 14642 . 16735) (\TEDIT.DEFAULTSSEL 16737 . 17348) + (\TEDIT.SETDEFAULT.FROM.SEL 17350 . 18027) (\TEDIT.KEY.SIZE 18029 . 18479) (\TEDIT.SUBSCRIPTSEL 18481 + . 18684) (\TEDIT.SUPERSCRIPTSEL 18686 . 18890) (\TEDIT.KEY.TRANSFORM 18892 . 20467) ( +\TEDIT.KEY.OPENLINE 20469 . 20923) (\TEDIT.KEY.FAMILYN 20925 . 21476)) (21479 21768 (CAP-CASECODE +21489 . 21766)) (21802 24428 (\TEDIT.SHOWCARETLOOKS 21812 . 23521) (\TEDIT.DESCRIBEFONT 23523 . 24426) +) (24459 38516 (\TEDIT.ONECHAR.BACKWARD 24469 . 25598) (\TEDIT.ONECHAR.FORWARD 25600 . 26818) ( +\TEDIT.ONELINE.UP 26820 . 29781) (\TEDIT.ONELINE.DOWN 29783 . 31440) (\TEDIT.ONELINE.MOVE 31442 . +33656) (\TEDIT.ONEWORD.BACKWARD 33658 . 34695) (\TEDIT.ONEWORD.FORWARD 34697 . 35733) ( +\TEDIT.LINE.BEGIN 35735 . 36665) (\TEDIT.LINE.END 36667 . 37755) (\TEDIT.DOCUMENT.BEGIN 37757 . 38116) + (\TEDIT.DOCUMENT.END 38118 . 38514)) (38517 40361 (\TEDIT.LINEDELETE.FORWARD 38527 . 39427) ( +\TEDIT.LINEDELETE.BACKWARD 39429 . 40359)) (40362 42616 (\TEDIT.NEST 40372 . 42614)) (42670 50575 ( +\TEDIT.KEY.FIND 42680 . 47715) (\TEDIT.KEY.FIND.SEARCHSTRING 47717 . 48857) (\TEDIT.GET.TARGET.STRING +48859 . 50573)) (50606 53238 (\TEDIT.KEY.SUBSTITUTE 50616 . 50837) (\TEDIT.MANPAGE 50839 . 52086) ( +\TEDIT.CALL.ED 52088 . 52918) (\TEDIT.SELECT.ALL 52920 . 53236)) (53265 58845 (\TEDIT.CLIPBOARD 53275 + . 55030) (\TEDIT.COPYTOCLIPBOARD 55032 . 55812) (\TEDIT.EXTRACTTOCLIPBOARD 55814 . 56009) ( +\TEDIT.WRITE.SEL 56011 . 58843)) (59197 70802 (\TEDIT.READTABLE 59207 . 60033) ( +\TEDIT.WORDBOUND.READTABLE 60035 . 62664) (TEDIT.GETSYNTAX 62666 . 64185) (TEDIT.SETSYNTAX 64187 . +65392) (TEDIT.GETFUNCTION 65394 . 66566) (TEDIT.SETFUNCTION 66568 . 68554) (TEDIT.WORDGET 68556 . +68817) (TEDIT.WORDSET 68819 . 69450) (TEDIT.ATOMBOUND.READTABLE 69452 . 70800)) (81383 87823 ( +TEDIT.BUTTONS.BUILD 81393 . 86091) (TEDIT.BUTTONBITMAP.FILL 86093 . 87821))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index e364454843bfe3bd7e4d8e666a4c87230a0f06de..13db9dfbd49a8c4b66d941b39ebbdbe431367e11 100644 GIT binary patch delta 1344 zcmZWp-EZ4e6pvl#hbK_dHmlgC=@9KB5u35ov`fk~)v=w_tz)~1>DD!^>Nsv=NbO)d zZ8MlEAt7EsV!IDWd*I`Rx1nj-keD>!l?NW+Pe4dKAtA&IZ(JvBT7)HA=bU@a@BGfa zzw1XIlHYtxeqxTYGjkbcj%Dt>ePK!$1xdfr`(7<5OX6yUej|;SzM@AQH)z<-_PyWr z>`_Gm-o0581zB9Zd%bDbJj3hsYyXb`*=#n0eBv^Cyg7~@5a*&CuS=?umlQ!#iWQ*H zJIj;k2O^Fdo9EH4IWd&Nu`%)zV#wD}%X|g>R2uERwD@q0DvCPYuSSGCaUesI1)f(0 z5g1tEUoMmX(^8Hq*|Nv6U#nWB0V)5pLAT602{ zN@_6E$I~Fw!vhVbp)BZm88j2pu#^W0w;EJQm_VN)rZ5YAbj+w9t6(~JhlvQu)rTHm zioHrM3_X28iW1M}7l}VVlNQMa6~RyM^X&q8>(Q^MUCtcLubd`{*!YX`llanbnD8UH zJ;*CXBS|*RLW$EBxXJ?L(omITSuAog&6SHVJB?Y~($)MT%*^!6ie47E5=>{Hs_?49 zry-q#DyM0pBBWDPl4XyG_qRnod0ZUBFf6c44lszIb9q_RAe%YqUAuNT_aFmivjY;D zS@dNgj)+FQ+aljDcAr(g8)hM)wQEh=gsrw?2Dac65&;XGa~RVd`&&V{{V)xlBF%WrZ5M)>9S4HR3OBq(%o ztsL*;@|<>+=PF{TsZfOP-a@oQ|Vv z^>y@5^%VNFI)xj2U1bn+{tSBVj^A%lI1pcFP+|Q7w%%I5jyu@CX*HXMW4UerxWn^x zc_P6#?N-e-yc3d~Z;M_=U5qLx9CKy}|UK8PLQ%kD$VvwX|jwR{K~7T7yGR^2uNtJw)xOzeak z;`{ctvtv1d5B3&LbbSlzp1l=Vbujjf4s3buP7h$o4P3zg5zD7RZ&)6N^sx_aZP&&l zLzwJhh)&CPFmmBg1vEg(=+rDIS%Gn7V}E}iY{w5QqkaW<$2Oj(%n2%uXFj@uxF(rz z2f*uP8B7=NYRkuCv|BC91H-8U))BT$!?#j&fyiLrHhd++0W@B7~S_V>sSPswLibbetmmtVY` z?{7|_NhXOx|1A^O1zyydB|&HI2&*ioi;CR;qL2LLqD0O`3UDo7xQY#82452s_?bxI zqtoMfTp7VQnZPtTO;D(ib9m551f8>wmqIumAo(eV(#n~DEPsrkTFr%|kbp0%qxi0R zJwa85(%N!S<4U5cYk~xLTrDLin7t)yz_DtUV>N+Ocp(i~UsIA4eb?N;T^u`EsmOvP$^yeHD>8mhB`{}P3e_!x#_9W`_`-m&+c)y~&6p3X$=VdY zzcPtNEfsbTYe{@wlj0Q3wVLg9*Yr+w0Dso>C^cJVOB&1us(C=*VdZuzbTNR2_xyXK z2Gjt-AC)+&R_+3?$huHwrJIt%^1v&cqOJ}{DSTxW(b%29UsjZ)Ac)qVoZs4VJAP{i zEZ6hwPTO_r;Je^&*kEmkh~vYiy)*Flr!XzQ={g;_=Xzi>4F-ye#AiU%SxMwFVEYyW zZQI*0+Z|{+P~oL8>Hl77eA5^U_PSc+oHOHt*)^LjbG>C}v-tHv`cxPR?s_+HxtEHC PA=ti|QRtx8TZsJzl%2q_ From d5d025b57892a045e70dee75cd9a9c6e7f3d3c08 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Mon, 17 Mar 2025 16:47:38 -0700 Subject: [PATCH 05/26] Add Button menu item to main tedit menu --- library/tedit/TEDIT-WINDOW | 88 ++++++++++++++++---------------- library/tedit/TEDIT-WINDOW.LCOM | Bin 65685 -> 65735 bytes 2 files changed, 45 insertions(+), 43 deletions(-) diff --git a/library/tedit/TEDIT-WINDOW b/library/tedit/TEDIT-WINDOW index 7ecee8bd4..08decb045 100644 --- a/library/tedit/TEDIT-WINDOW +++ b/library/tedit/TEDIT-WINDOW @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "16-Mar-2025 21:45:12" {WMEDLEY}tedit>TEDIT-WINDOW.;777 235489 +(FILECREATED "17-Mar-2025 16:46:33" {WMEDLEY}TEDIT>TEDIT-WINDOW.;778 235584 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.DEFAULT.MENUFN) + :CHANGES-TO (VARS TEDIT-WINDOWCOMS) - :PREVIOUS-DATE "15-Mar-2025 00:33:15" {WMEDLEY}tedit>TEDIT-WINDOW.;776) + :PREVIOUS-DATE "16-Mar-2025 21:45:12" {WMEDLEY}TEDIT>TEDIT-WINDOW.;777) (PRETTYCOMPRINT TEDIT-WINDOWCOMS) @@ -85,7 +85,8 @@ Unformatted% Get )) - Include Find Looks Substitute + Include Find Looks Substitute + (Buttons (TEDIT.BUTTONS.BUILD)) Quit (Expanded% Menu 'Expanded% Menu NIL @@ -3669,11 +3670,12 @@ (RPAQ TEDIT.DEFAULT.MENU [\TEDIT.CREATEMENU '((Put 'Put NIL (SUBITEMS |Put Formatted Document| Plain-Text)) (Get 'Get NIL (SUBITEMS |Get Formatted Document| Unformatted% Get)) - Include Find Looks Substitute Quit (Expanded% Menu 'Expanded% Menu NIL - (SUBITEMS Expanded% Menu - Character% Looks - Paragraph% Formatting - Page% Layout]) + Include Find Looks Substitute (Buttons (TEDIT.BUTTONS.BUILD)) + Quit + (Expanded% Menu 'Expanded% Menu NIL (SUBITEMS Expanded% Menu + Character% Looks + Paragraph% Formatting + Page% Layout]) ) (DECLARE%: DONTEVAL@LOAD DOCOPY @@ -3704,38 +3706,38 @@ (RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _ TEDIT.ICON.TITLE.REGION)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (18447 19343 (TEDIT.DEFER.UPDATES 18457 . 19341)) (19344 44470 (\TEDIT.WINDOW.CREATE -19354 . 25966) (\TEDIT.WINDOW.GETREGION 25968 . 28153) (\TEDIT.WINDOW.SETUP 28155 . 32268) ( -\TEDIT.MINIMAL.WINDOW.SETUP 32270 . 40472) (\TEDIT.CLEARPANE 40474 . 41191) (\TEDIT.FILL.PANES 41193 - . 44468)) (44471 67378 (\TEDIT.CURSORMOVEDFN 44481 . 49354) (\TEDIT.CURSOROUTFN 49356 . 49801) ( -\TEDIT.ACTIVE.WINDOWP 49803 . 50854) (\TEDIT.EXPANDFN 50856 . 51419) (\TEDIT.MAINW 51421 . 52701) ( -\TEDIT.MAINSTREAM 52703 . 52970) (\TEDIT.PRIMARYPANE 52972 . 53742) (\TEDIT.PANELIST 53744 . 54240) ( -\TEDIT.NEWREGIONFN 54242 . 56758) (\TEDIT.SET.WINDOW.EXTENT 56760 . 62014) (\TEDIT.SHRINK.ICONCREATE -62016 . 64749) (\TEDIT.SHRINKFN 64751 . 65160) (\TEDIT.PANEREGION 65162 . 67376)) (67410 98874 ( -\TEDIT.BUTTONEVENTFN 67420 . 79982) (\TEDIT.BUTTONEVENTFN.DOOPERATION 79984 . 86707) ( -\TEDIT.BUTTONEVENTFN.GETOPERATION 86709 . 88551) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 88553 . 91790) ( -\TEDIT.BUTTONEVENTFN.INACTIVE 91792 . 94134) (\TEDIT.BUTTONEVENTFN.INTITLE 94136 . 95971) ( -\TEDIT.COPYINSERTFN 95973 . 97105) (\TEDIT.FOREIGN.COPY 97107 . 98872)) (98875 115984 ( -\TEDIT.PANE.SPLIT 98885 . 103364) (\TEDIT.SPLITW 103366 . 110825) (\TEDIT.UNSPLITW 110827 . 114641) ( -\TEDIT.LINKPANES 114643 . 115406) (\TEDIT.UNLINKPANE 115408 . 115982)) (117341 118232 (TEDITWINDOWP -117351 . 118230)) (118269 121372 (TEDIT.GETINPUT 118279 . 120722) (\TEDIT.MAKEFILENAME 120724 . 121370 -)) (121421 129722 (TEDIT.PROMPTWINDOW 121431 . 121745) (TEDIT.PROMPTPRINT 121747 . 124374) ( -TEDIT.PROMPTCLEAR 124376 . 126095) (TEDIT.PROMPTFLASH 126097 . 128029) (\TEDIT.PROMPT.PAGEFULLFN -128031 . 129720)) (129960 139444 (\TEDIT.FILENAME 129970 . 130742) (\TEDIT.DEFAULT.TITLE 130744 . -133123) (\TEDIT.WINDOW.TITLE 133125 . 135294) (\TEDIT.LIKELY.FILENAME 135296 . 137083) ( -\TEDIT.UPDATE.TITLE 137085 . 139442)) (139487 148015 (TEDIT.DEACTIVATE.WINDOW 139497 . 145615) ( -\TEDIT.RESHAPEFN 145617 . 147787) (\TEDIT.REPAINTFN 147789 . 148013)) (148016 190395 (\TEDIT.SCROLLFN -148026 . 150271) (\TEDIT.SCROLLCH.TOP 150273 . 152384) (\TEDIT.SCROLLCH.BOTTOM 152386 . 156716) ( -\TEDIT.SCROLLUP 156718 . 162335) (\TEDIT.TOPLINE.YTOP 162337 . 164006) (\TEDIT.SCROLLDOWN 164008 . -170938) (\TEDIT.SCROLL.CARET 170940 . 173778) (\TEDIT.VISIBLECARETP 173780 . 176074) ( -\TEDIT.VISIBLECHARP 176076 . 177167) (\TEDIT.BITMAPLINES 177169 . 181089) (\TEDIT.SETPANE.TOPLINE -181091 . 181882) (\TEDIT.SHIFTLINES 181884 . 190393)) (190396 201265 (\TEDIT.ONSCREEN? 190406 . 194957 -) (\TEDIT.ONSCREEN.REGION 194959 . 198610) (\TEDIT.AFTERMOVEFN 198612 . 199509) (OFFSCREENP 199511 . -201263)) (201307 203924 (\TEDIT.PROCIDLEFN 201317 . 202854) (\TEDIT.PROCENTRYFN 202856 . 203301) ( -\TEDIT.PROCEXITFN 203303 . 203922)) (204003 217157 (\TEDIT.DOWNCARET 204013 . 204806) ( -\TEDIT.FLASHCARET 204808 . 206919) (\TEDIT.UPCARET 206921 . 208025) (TEDIT.NORMALIZECARET 208027 . -211245) (\TEDIT.SETCARET 211247 . 216527) (\TEDIT.CARET 216529 . 217155)) (217191 229459 ( -TEDIT.ADD.MENUITEM 217201 . 219492) (TEDIT.DEFAULT.MENUFN 219494 . 226671) (TEDIT.REMOVE.MENUITEM -226673 . 227670) (\TEDIT.CREATEMENU 227672 . 228237) (\TEDIT.MENU.WHENHELDFN 228239 . 229144) ( -\TEDIT.MENU.WHENSELECTEDFN 229146 . 229457))))) + (FILEMAP (NIL (18543 19439 (TEDIT.DEFER.UPDATES 18553 . 19437)) (19440 44566 (\TEDIT.WINDOW.CREATE +19450 . 26062) (\TEDIT.WINDOW.GETREGION 26064 . 28249) (\TEDIT.WINDOW.SETUP 28251 . 32364) ( +\TEDIT.MINIMAL.WINDOW.SETUP 32366 . 40568) (\TEDIT.CLEARPANE 40570 . 41287) (\TEDIT.FILL.PANES 41289 + . 44564)) (44567 67474 (\TEDIT.CURSORMOVEDFN 44577 . 49450) (\TEDIT.CURSOROUTFN 49452 . 49897) ( +\TEDIT.ACTIVE.WINDOWP 49899 . 50950) (\TEDIT.EXPANDFN 50952 . 51515) (\TEDIT.MAINW 51517 . 52797) ( +\TEDIT.MAINSTREAM 52799 . 53066) (\TEDIT.PRIMARYPANE 53068 . 53838) (\TEDIT.PANELIST 53840 . 54336) ( +\TEDIT.NEWREGIONFN 54338 . 56854) (\TEDIT.SET.WINDOW.EXTENT 56856 . 62110) (\TEDIT.SHRINK.ICONCREATE +62112 . 64845) (\TEDIT.SHRINKFN 64847 . 65256) (\TEDIT.PANEREGION 65258 . 67472)) (67506 98970 ( +\TEDIT.BUTTONEVENTFN 67516 . 80078) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80080 . 86803) ( +\TEDIT.BUTTONEVENTFN.GETOPERATION 86805 . 88647) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 88649 . 91886) ( +\TEDIT.BUTTONEVENTFN.INACTIVE 91888 . 94230) (\TEDIT.BUTTONEVENTFN.INTITLE 94232 . 96067) ( +\TEDIT.COPYINSERTFN 96069 . 97201) (\TEDIT.FOREIGN.COPY 97203 . 98968)) (98971 116080 ( +\TEDIT.PANE.SPLIT 98981 . 103460) (\TEDIT.SPLITW 103462 . 110921) (\TEDIT.UNSPLITW 110923 . 114737) ( +\TEDIT.LINKPANES 114739 . 115502) (\TEDIT.UNLINKPANE 115504 . 116078)) (117437 118328 (TEDITWINDOWP +117447 . 118326)) (118365 121468 (TEDIT.GETINPUT 118375 . 120818) (\TEDIT.MAKEFILENAME 120820 . 121466 +)) (121517 129818 (TEDIT.PROMPTWINDOW 121527 . 121841) (TEDIT.PROMPTPRINT 121843 . 124470) ( +TEDIT.PROMPTCLEAR 124472 . 126191) (TEDIT.PROMPTFLASH 126193 . 128125) (\TEDIT.PROMPT.PAGEFULLFN +128127 . 129816)) (130056 139540 (\TEDIT.FILENAME 130066 . 130838) (\TEDIT.DEFAULT.TITLE 130840 . +133219) (\TEDIT.WINDOW.TITLE 133221 . 135390) (\TEDIT.LIKELY.FILENAME 135392 . 137179) ( +\TEDIT.UPDATE.TITLE 137181 . 139538)) (139583 148111 (TEDIT.DEACTIVATE.WINDOW 139593 . 145711) ( +\TEDIT.RESHAPEFN 145713 . 147883) (\TEDIT.REPAINTFN 147885 . 148109)) (148112 190491 (\TEDIT.SCROLLFN +148122 . 150367) (\TEDIT.SCROLLCH.TOP 150369 . 152480) (\TEDIT.SCROLLCH.BOTTOM 152482 . 156812) ( +\TEDIT.SCROLLUP 156814 . 162431) (\TEDIT.TOPLINE.YTOP 162433 . 164102) (\TEDIT.SCROLLDOWN 164104 . +171034) (\TEDIT.SCROLL.CARET 171036 . 173874) (\TEDIT.VISIBLECARETP 173876 . 176170) ( +\TEDIT.VISIBLECHARP 176172 . 177263) (\TEDIT.BITMAPLINES 177265 . 181185) (\TEDIT.SETPANE.TOPLINE +181187 . 181978) (\TEDIT.SHIFTLINES 181980 . 190489)) (190492 201361 (\TEDIT.ONSCREEN? 190502 . 195053 +) (\TEDIT.ONSCREEN.REGION 195055 . 198706) (\TEDIT.AFTERMOVEFN 198708 . 199605) (OFFSCREENP 199607 . +201359)) (201403 204020 (\TEDIT.PROCIDLEFN 201413 . 202950) (\TEDIT.PROCENTRYFN 202952 . 203397) ( +\TEDIT.PROCEXITFN 203399 . 204018)) (204099 217253 (\TEDIT.DOWNCARET 204109 . 204902) ( +\TEDIT.FLASHCARET 204904 . 207015) (\TEDIT.UPCARET 207017 . 208121) (TEDIT.NORMALIZECARET 208123 . +211341) (\TEDIT.SETCARET 211343 . 216623) (\TEDIT.CARET 216625 . 217251)) (217287 229555 ( +TEDIT.ADD.MENUITEM 217297 . 219588) (TEDIT.DEFAULT.MENUFN 219590 . 226767) (TEDIT.REMOVE.MENUITEM +226769 . 227766) (\TEDIT.CREATEMENU 227768 . 228333) (\TEDIT.MENU.WHENHELDFN 228335 . 229240) ( +\TEDIT.MENU.WHENSELECTEDFN 229242 . 229553))))) STOP diff --git a/library/tedit/TEDIT-WINDOW.LCOM b/library/tedit/TEDIT-WINDOW.LCOM index 4f137355874433dc2e5fac709c043fb7fbc2115a..f2893c7973ed5f8ccc94e710cd645f8232d24d7a 100644 GIT binary patch delta 488 zcmbQ*$a1`qWkQ6oxvpEez@=nphR|YUXk}t)Wn?mOpBQ^yeo01VUi!orM)g23V*@2kE)6$NA6MrfS4W^h z3QC4p>{3#w4)=9+@o|l;waLj$DoQM>gxHE{w}O$esi}pDf)&VVx=xV_MY-7uTvpB= zj(+a0!MY*-3L0UKLBR?ku5us+5LY|<`vz+&SOo;RhI#sj2J5;2oibUEQDX8XMqzR6 zo;2V5hjIH|1r4Xtl9K$qVg(H@usS`b(2x*+zhEHk>EoiQIob7%(d4K1B^bFTPk3X= zqN%B%F?szx1&#m(4gVmZrpf2uBr*Z1qYsQGr@R%O%>9rbs8s5q^W?aP(m>Xl|GJZx zJ(QmO>%Sy3Ncnwz>B&DHYEMmM)ZZNR=nJPA!U0(AR|qW4EK$&Kttd#$OG!;pRq##C XD^=i{9Q{TH=q!6iuFc!u+!F=>b&{Ea delta 456 zcmX@!$TGE&WkQ6onXYeQk*<+}k*R`_p_PfLm7&qZY!&^I)RfE;yAW3w&k)^kPd^v` za6M~tb8}4vE+s=$Eyl)H29^`|iHU#}>$$kPIfnX#==r+(g}V7oyloT%RA6YVq{*e> z=IP_=9OUW`OHC2JH88LOxy*F(0Y*`A?6#O~e#5x^u54gwW{HA^ zYehj~UP@|;s)BE7Ua5jcV5mRPNUq5b?(0rI_(pxQ=>s8FE=^4Zjmh)xDKG^nO#bu6 zijiybiU+!ruRSmVvN#?pP1b(s3}od!l%9O=zwYGi52YEors^ Date: Mon, 17 Mar 2025 18:32:39 -0700 Subject: [PATCH 06/26] Add Buttons item to main Tedit menu --- library/tedit/TEDIT-FNKEYS | 167 +++++++++++++++++--------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 34486 -> 34661 bytes library/tedit/TEDIT-WINDOW | 79 +++++++-------- library/tedit/TEDIT-WINDOW.LCOM | Bin 65735 -> 65850 bytes 4 files changed, 130 insertions(+), 116 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index e9053ec1a..ce481d501 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Mar-2025 15:40:10" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;210 88849 +(FILECREATED "17-Mar-2025 18:29:50" {WMEDLEY}tedit>TEDIT-FNKEYS.;215 89639 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT.KEYBINDINGS TEDIT-FNKEYSCOMS) - (FNS TEDIT.GET.ACTIONBINDINGS TEDIT.GET.KEYACTION TEDIT.GET.KEYBINDING - TEDIT.CLEAR.KEYBINDINGS TEDIT.INSTALL.KEYBINDINGS) + :CHANGES-TO (FNS TEDIT.BUTTONS.BUILD TEDIT.GET.ACTIONBINDINGS TEDIT.GET.KEYACTION + TEDIT.GET.KEYBINDING TEDIT.CLEAR.KEYBINDINGS TEDIT.INSTALL.KEYBINDINGS) + (VARS TEDIT-FNKEYSCOMS TEDIT.KEYBINDINGS) :PREVIOUS-DATE "16-Mar-2025 21:44:56" {WMEDLEY}tedit>TEDIT-FNKEYS.;204) @@ -59,6 +59,7 @@ (VARS TEDIT.BUTTONS.SPEC) (FNS TEDIT.BUTTONS.BUILD TEDIT.BUTTONBITMAP.FILL) + (INITVARS (TEDIT.BUTTONS.WINDOW NIL)) (VARS TEDIT.BUTTONBITMAP))) @@ -1612,66 +1613,74 @@ (DEFINEQ (TEDIT.BUTTONS.BUILD - [LAMBDA (BUTTONS TITLE NROWS KEYBINDINGS) (* ; "Edited 16-Mar-2025 21:12 by rmk") + [LAMBDA (BUTTONS TITLE NROWS KEYBINDINGS) (* ; "Edited 17-Mar-2025 18:29 by rmk") (* ; "Edited 15-Mar-2025 15:24 by rmk") (* ; "Edited 5-Nov-85 15:35 by lmm") (* ;; "Each button is of the form (label action1 [action2]), e.g. (BOLD BOLD.ON BOLD.OFF) or (JUSTIFY QUAD)") - (CL:UNLESS BUTTONS (SETQ BUTTONS TEDIT.BUTTONS.SPEC)) - (CL:UNLESS TITLE - (SETQ TITLE '(Tedit Buttons))) (* ; "List for the Shrink button label") - (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) - - (* ;; "The constructed menu will bksysbuf a character bound to action1 if the shift is not down, otherwise a character bound to action2. action2 is action1 if it is not specified. Buttons with no actions are skipped.") - - (LET (ICONWINDOW ITEMS) - (SETQ ITEMS (for BUTTON CHARS in BUTTONS eachtime (CL:WHEN (AND (CDR BUTTON) - (NULL (CDDR BUTTON))) - [SETQ BUTTON - (APPEND BUTTON (CONS (CADR BUTTON]) - when [SETQ CHARS (for ANAME CHAR in (CDR BUTTON) - when (SETQ CHAR (CADR (ASSOC ANAME KEYBINDINGS))) - collect (CL:IF (CHARCODEP CHAR) - CHAR - (CHARCODE.DECODE CHAR))] - collect (LIST (TEDIT.BUTTONBITMAP.FILL (CAR BUTTON)) - CHARS))) - [SETQ ICONWINDOW (SHRINKW (ADDMENU [create MENU - ITEMS _ ITEMS - TITLE _ (CL:IF (LISTP TITLE) - (SUBSTRING TITLE 2 -2) - TITLE) - MENUROWS _ (OR NROWS 1) - WHENSELECTEDFN _ - (FUNCTION (LAMBDA (X) - (CL:WHEN (EQ '\TEDIT.PROCENTRYFN - (FETCH (PROCESS + (CL:UNLESS (AND (WINDOWP TEDIT.BUTTONS.WINDOW) + (OPENWP TEDIT.BUTTONS.WINDOW)) + (CL:UNLESS BUTTONS (SETQ BUTTONS TEDIT.BUTTONS.SPEC)) + (CL:UNLESS TITLE + (SETQ TITLE '(Tedit Buttons))) (* ; "List for the Shrink button label") + (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) + + (* ;; "The constructed menu will bksysbuf a character bound to action1 if the shift is not down, otherwise a character bound to action2. action2 is action1 if it is not specified. Buttons with no actions are skipped.") + + (LET (ICONWINDOW ITEMS) + (SETQ ITEMS (for BUTTON CHARS in BUTTONS + eachtime (CL:WHEN (AND (CDR BUTTON) + (NULL (CDDR BUTTON))) + [SETQ BUTTON (APPEND BUTTON (CONS (CADR BUTTON]) + when [SETQ CHARS (for ANAME CHAR in (CDR BUTTON) + when (SETQ CHAR (CADR (ASSOC ANAME KEYBINDINGS))) + collect (CL:IF (CHARCODEP CHAR) + CHAR + (CHARCODE.DECODE CHAR))] + collect (LIST (TEDIT.BUTTONBITMAP.FILL (CAR BUTTON)) + CHARS))) + [SETQ ICONWINDOW (SHRINKW (ADDMENU [create MENU + ITEMS _ ITEMS + TITLE _ (CL:IF (LISTP TITLE) + (SUBSTRING TITLE 2 -2) + TITLE) + MENUROWS _ (OR NROWS 1) + WHENSELECTEDFN _ + (FUNCTION (LAMBDA (X) + (CL:WHEN + (EQ '\TEDIT.PROCENTRYFN + (FETCH (PROCESS PROCTTYENTRYFN - ) - OF (TTY.PROCESS))) - [BKSYSCHARCODE - (CL:IF (SHIFTDOWNP 'SHIFT) - (CADR (CADR X)) - (CAR (CADR X)))])] - NIL - (create POSITION - XCOORD _ (PLUS (DIFFERENCE - (QUOTIENT SCREENWIDTH 2) - (QUOTIENT (TIMES (BITMAPWIDTH + ) + OF (TTY.PROCESS))) + [BKSYSCHARCODE + (CL:IF (SHIFTDOWNP + 'SHIFT) + (CADR (CADR X)) + (CAR (CADR X)))])] + NIL + (create POSITION + XCOORD _ + (PLUS (DIFFERENCE (QUOTIENT SCREENWIDTH 2) + (QUOTIENT (TIMES (BITMAPWIDTH + TEDIT.BUTTONBITMAP + ) + (LENGTH ITEMS)) + 2)) + (TIMES 2 WBorder)) + YCOORD _ 0)) + (TEDIT.BUTTONBITMAP.FILL TITLE) + '(0 . 0] + [WINDOWPROP ICONWINDOW 'BUTTONEVENTFN (FUNCTION (LAMBDA (ICONW) + (CL:WHEN (LASTMOUSESTATE (OR LEFT + MIDDLE)) + (CURSOR (PROG1 (CURSOR + WAITINGCURSOR ) - (LENGTH ITEMS)) - 2)) - (TIMES 2 WBorder)) - YCOORD _ 0)) - (TEDIT.BUTTONBITMAP.FILL TITLE) - '(0 . 0] - [WINDOWPROP ICONWINDOW 'BUTTONEVENTFN (FUNCTION (LAMBDA (ICONW) - (CL:WHEN (LASTMOUSESTATE (OR LEFT MIDDLE)) - (CURSOR (PROG1 (CURSOR WAITINGCURSOR) - (EXPANDW ICONW))))] - ICONWINDOW]) + (EXPANDW ICONW))))] + (SETQ TEDIT.BUTTONS.WINDOW ICONWINDOW)))]) (TEDIT.BUTTONBITMAP.FILL [LAMBDA (X) (* ; "Edited 16-Mar-2025 21:12 by rmk") @@ -1705,29 +1714,31 @@ BITMAP]) ) +(RPAQ? TEDIT.BUTTONS.WINDOW NIL) + (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3791 13628 (TEDIT.INSTALL.KEYBINDINGS 3801 . 6874) (TEDIT.CLEAR.KEYBINDINGS 6876 . 9473 -) (TEDIT.GET.KEYACTION 9475 . 11900) (TEDIT.GET.ACTIONBINDINGS 11902 . 13626)) (13688 21478 ( -\TEDIT.KEY.CHARLOOKS 13698 . 14640) (\TEDIT.KEY.QUAD 14642 . 16735) (\TEDIT.DEFAULTSSEL 16737 . 17348) - (\TEDIT.SETDEFAULT.FROM.SEL 17350 . 18027) (\TEDIT.KEY.SIZE 18029 . 18479) (\TEDIT.SUBSCRIPTSEL 18481 - . 18684) (\TEDIT.SUPERSCRIPTSEL 18686 . 18890) (\TEDIT.KEY.TRANSFORM 18892 . 20467) ( -\TEDIT.KEY.OPENLINE 20469 . 20923) (\TEDIT.KEY.FAMILYN 20925 . 21476)) (21479 21768 (CAP-CASECODE -21489 . 21766)) (21802 24428 (\TEDIT.SHOWCARETLOOKS 21812 . 23521) (\TEDIT.DESCRIBEFONT 23523 . 24426) -) (24459 38516 (\TEDIT.ONECHAR.BACKWARD 24469 . 25598) (\TEDIT.ONECHAR.FORWARD 25600 . 26818) ( -\TEDIT.ONELINE.UP 26820 . 29781) (\TEDIT.ONELINE.DOWN 29783 . 31440) (\TEDIT.ONELINE.MOVE 31442 . -33656) (\TEDIT.ONEWORD.BACKWARD 33658 . 34695) (\TEDIT.ONEWORD.FORWARD 34697 . 35733) ( -\TEDIT.LINE.BEGIN 35735 . 36665) (\TEDIT.LINE.END 36667 . 37755) (\TEDIT.DOCUMENT.BEGIN 37757 . 38116) - (\TEDIT.DOCUMENT.END 38118 . 38514)) (38517 40361 (\TEDIT.LINEDELETE.FORWARD 38527 . 39427) ( -\TEDIT.LINEDELETE.BACKWARD 39429 . 40359)) (40362 42616 (\TEDIT.NEST 40372 . 42614)) (42670 50575 ( -\TEDIT.KEY.FIND 42680 . 47715) (\TEDIT.KEY.FIND.SEARCHSTRING 47717 . 48857) (\TEDIT.GET.TARGET.STRING -48859 . 50573)) (50606 53238 (\TEDIT.KEY.SUBSTITUTE 50616 . 50837) (\TEDIT.MANPAGE 50839 . 52086) ( -\TEDIT.CALL.ED 52088 . 52918) (\TEDIT.SELECT.ALL 52920 . 53236)) (53265 58845 (\TEDIT.CLIPBOARD 53275 - . 55030) (\TEDIT.COPYTOCLIPBOARD 55032 . 55812) (\TEDIT.EXTRACTTOCLIPBOARD 55814 . 56009) ( -\TEDIT.WRITE.SEL 56011 . 58843)) (59197 70802 (\TEDIT.READTABLE 59207 . 60033) ( -\TEDIT.WORDBOUND.READTABLE 60035 . 62664) (TEDIT.GETSYNTAX 62666 . 64185) (TEDIT.SETSYNTAX 64187 . -65392) (TEDIT.GETFUNCTION 65394 . 66566) (TEDIT.SETFUNCTION 66568 . 68554) (TEDIT.WORDGET 68556 . -68817) (TEDIT.WORDSET 68819 . 69450) (TEDIT.ATOMBOUND.READTABLE 69452 . 70800)) (81383 87823 ( -TEDIT.BUTTONS.BUILD 81393 . 86091) (TEDIT.BUTTONBITMAP.FILL 86093 . 87821))))) + (FILEMAP (NIL (3857 13694 (TEDIT.INSTALL.KEYBINDINGS 3867 . 6940) (TEDIT.CLEAR.KEYBINDINGS 6942 . 9539 +) (TEDIT.GET.KEYACTION 9541 . 11966) (TEDIT.GET.ACTIONBINDINGS 11968 . 13692)) (13754 21544 ( +\TEDIT.KEY.CHARLOOKS 13764 . 14706) (\TEDIT.KEY.QUAD 14708 . 16801) (\TEDIT.DEFAULTSSEL 16803 . 17414) + (\TEDIT.SETDEFAULT.FROM.SEL 17416 . 18093) (\TEDIT.KEY.SIZE 18095 . 18545) (\TEDIT.SUBSCRIPTSEL 18547 + . 18750) (\TEDIT.SUPERSCRIPTSEL 18752 . 18956) (\TEDIT.KEY.TRANSFORM 18958 . 20533) ( +\TEDIT.KEY.OPENLINE 20535 . 20989) (\TEDIT.KEY.FAMILYN 20991 . 21542)) (21545 21834 (CAP-CASECODE +21555 . 21832)) (21868 24494 (\TEDIT.SHOWCARETLOOKS 21878 . 23587) (\TEDIT.DESCRIBEFONT 23589 . 24492) +) (24525 38582 (\TEDIT.ONECHAR.BACKWARD 24535 . 25664) (\TEDIT.ONECHAR.FORWARD 25666 . 26884) ( +\TEDIT.ONELINE.UP 26886 . 29847) (\TEDIT.ONELINE.DOWN 29849 . 31506) (\TEDIT.ONELINE.MOVE 31508 . +33722) (\TEDIT.ONEWORD.BACKWARD 33724 . 34761) (\TEDIT.ONEWORD.FORWARD 34763 . 35799) ( +\TEDIT.LINE.BEGIN 35801 . 36731) (\TEDIT.LINE.END 36733 . 37821) (\TEDIT.DOCUMENT.BEGIN 37823 . 38182) + (\TEDIT.DOCUMENT.END 38184 . 38580)) (38583 40427 (\TEDIT.LINEDELETE.FORWARD 38593 . 39493) ( +\TEDIT.LINEDELETE.BACKWARD 39495 . 40425)) (40428 42682 (\TEDIT.NEST 40438 . 42680)) (42736 50641 ( +\TEDIT.KEY.FIND 42746 . 47781) (\TEDIT.KEY.FIND.SEARCHSTRING 47783 . 48923) (\TEDIT.GET.TARGET.STRING +48925 . 50639)) (50672 53304 (\TEDIT.KEY.SUBSTITUTE 50682 . 50903) (\TEDIT.MANPAGE 50905 . 52152) ( +\TEDIT.CALL.ED 52154 . 52984) (\TEDIT.SELECT.ALL 52986 . 53302)) (53331 58911 (\TEDIT.CLIPBOARD 53341 + . 55096) (\TEDIT.COPYTOCLIPBOARD 55098 . 55878) (\TEDIT.EXTRACTTOCLIPBOARD 55880 . 56075) ( +\TEDIT.WRITE.SEL 56077 . 58909)) (59263 70868 (\TEDIT.READTABLE 59273 . 60099) ( +\TEDIT.WORDBOUND.READTABLE 60101 . 62730) (TEDIT.GETSYNTAX 62732 . 64251) (TEDIT.SETSYNTAX 64253 . +65458) (TEDIT.GETFUNCTION 65460 . 66632) (TEDIT.SETFUNCTION 66634 . 68620) (TEDIT.WORDGET 68622 . +68883) (TEDIT.WORDSET 68885 . 69516) (TEDIT.ATOMBOUND.READTABLE 69518 . 70866)) (81449 88575 ( +TEDIT.BUTTONS.BUILD 81459 . 86843) (TEDIT.BUTTONBITMAP.FILL 86845 . 88573))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 13db9dfbd49a8c4b66d941b39ebbdbe431367e11..08ecd2c1cf506a81e902586841412fbdcdd05ad7 100644 GIT binary patch delta 686 zcmZ8fO=uHA6wYpHLj#tSm{N;|N71rtG0aYqO|}=i*_|{?_pkfYO>0FOBZ?FYJ$fv7 zRE%@;T(Gi#W7?`xPDLJ_riF(Xx>uE=G2hr380bc^&g zm#5P=iu4DU<+AicW`>?@W@w%-ToBe&&xeHaYSUgJ>%Qh#qd^EB!LPcbGb$VSB4^CCN6D{qr{e<5rB+FnDdpT&aBZ7tzSgIQtI`bLI z4;y~KvX?=sfWwMJF32$A7qbGEFwo<0+F}-?8VnUBYs3zkHb_-gT=NJ^O9&-g0i86} z&V~YVb*S>>Q)K5G`MzM{R@gK7lMC)cM@^qU7Y*iJKy&^+@qJ=rx)D*=3=#35t?Xx z_tII4RfArg)q+MkIB<)rB_xdB7MFI05AJO5+#dh%{JCDp!6VWgR|ebt(Z=ZE zy!C$r5Jj=lfM#T0kOLUqzX!>tqD!QW-2%0N?@8V8)vav$Z>(ZlZXS4zxZ(bdEC6PV3W6bKe0r&lI z!1;Wb2`+~?c%C}6PpsTbP2c~H@nu0|fhWVC!IE8T02`~T*eWinING3875}|CP-0Nm zCC9-;EiqCN9FO{p-S(ZX?En%HxO&$h9Uo8~MZT?~W|$_RS`{Q!wJ`AjRq9}3(xy5) zB9IMgNse!*?9NoKC%cqcwDUTEDIT>TEDIT-WINDOW.;778 235584 +(FILECREATED "17-Mar-2025 17:50:21" {WMEDLEY}tedit>TEDIT-WINDOW.;781 235788 :EDIT-BY rmk :CHANGES-TO (VARS TEDIT-WINDOWCOMS) + (FNS TEDIT.DEFAULT.MENUFN) :PREVIOUS-DATE "16-Mar-2025 21:45:12" {WMEDLEY}TEDIT>TEDIT-WINDOW.;777) @@ -86,7 +87,8 @@ Unformatted% Get )) Include Find Looks Substitute - (Buttons (TEDIT.BUTTONS.BUILD)) + (Buttons 'Buttons + "Display action buttons") Quit (Expanded% Menu 'Expanded% Menu NIL @@ -3514,7 +3516,7 @@ (UPDATE/MENU/IMAGE MENU]) (TEDIT.DEFAULT.MENUFN - [LAMBDA (PANE) (* ; "Edited 16-Mar-2025 21:38 by rmk") + [LAMBDA (PANE) (* ; "Edited 17-Mar-2025 17:28 by rmk") (* ; "Edited 14-Mar-2025 16:40 by rmk") (* ; "Edited 12-Feb-2025 16:26 by rmk") (* ; "Edited 9-Feb-2025 21:28 by rmk") @@ -3597,6 +3599,7 @@ (Page% Layout (* ; "Open the page-layout menu") (\TEDIT.MENU.START (\TEDIT.PAGEMENU.CREATE) TSTREAM "Page Layout Menu" 150 'PAGE)) + (Buttons (TEDIT.BUTTONS.BUILD)) (CL:WHEN ITEM (* ;  "Apply a user-supplied function to the text stream") [RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ T) @@ -3670,7 +3673,7 @@ (RPAQ TEDIT.DEFAULT.MENU [\TEDIT.CREATEMENU '((Put 'Put NIL (SUBITEMS |Put Formatted Document| Plain-Text)) (Get 'Get NIL (SUBITEMS |Get Formatted Document| Unformatted% Get)) - Include Find Looks Substitute (Buttons (TEDIT.BUTTONS.BUILD)) + Include Find Looks Substitute (Buttons 'Buttons "Display action buttons") Quit (Expanded% Menu 'Expanded% Menu NIL (SUBITEMS Expanded% Menu Character% Looks @@ -3706,38 +3709,38 @@ (RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _ TEDIT.ICON.TITLE.REGION)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (18543 19439 (TEDIT.DEFER.UPDATES 18553 . 19437)) (19440 44566 (\TEDIT.WINDOW.CREATE -19450 . 26062) (\TEDIT.WINDOW.GETREGION 26064 . 28249) (\TEDIT.WINDOW.SETUP 28251 . 32364) ( -\TEDIT.MINIMAL.WINDOW.SETUP 32366 . 40568) (\TEDIT.CLEARPANE 40570 . 41287) (\TEDIT.FILL.PANES 41289 - . 44564)) (44567 67474 (\TEDIT.CURSORMOVEDFN 44577 . 49450) (\TEDIT.CURSOROUTFN 49452 . 49897) ( -\TEDIT.ACTIVE.WINDOWP 49899 . 50950) (\TEDIT.EXPANDFN 50952 . 51515) (\TEDIT.MAINW 51517 . 52797) ( -\TEDIT.MAINSTREAM 52799 . 53066) (\TEDIT.PRIMARYPANE 53068 . 53838) (\TEDIT.PANELIST 53840 . 54336) ( -\TEDIT.NEWREGIONFN 54338 . 56854) (\TEDIT.SET.WINDOW.EXTENT 56856 . 62110) (\TEDIT.SHRINK.ICONCREATE -62112 . 64845) (\TEDIT.SHRINKFN 64847 . 65256) (\TEDIT.PANEREGION 65258 . 67472)) (67506 98970 ( -\TEDIT.BUTTONEVENTFN 67516 . 80078) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80080 . 86803) ( -\TEDIT.BUTTONEVENTFN.GETOPERATION 86805 . 88647) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 88649 . 91886) ( -\TEDIT.BUTTONEVENTFN.INACTIVE 91888 . 94230) (\TEDIT.BUTTONEVENTFN.INTITLE 94232 . 96067) ( -\TEDIT.COPYINSERTFN 96069 . 97201) (\TEDIT.FOREIGN.COPY 97203 . 98968)) (98971 116080 ( -\TEDIT.PANE.SPLIT 98981 . 103460) (\TEDIT.SPLITW 103462 . 110921) (\TEDIT.UNSPLITW 110923 . 114737) ( -\TEDIT.LINKPANES 114739 . 115502) (\TEDIT.UNLINKPANE 115504 . 116078)) (117437 118328 (TEDITWINDOWP -117447 . 118326)) (118365 121468 (TEDIT.GETINPUT 118375 . 120818) (\TEDIT.MAKEFILENAME 120820 . 121466 -)) (121517 129818 (TEDIT.PROMPTWINDOW 121527 . 121841) (TEDIT.PROMPTPRINT 121843 . 124470) ( -TEDIT.PROMPTCLEAR 124472 . 126191) (TEDIT.PROMPTFLASH 126193 . 128125) (\TEDIT.PROMPT.PAGEFULLFN -128127 . 129816)) (130056 139540 (\TEDIT.FILENAME 130066 . 130838) (\TEDIT.DEFAULT.TITLE 130840 . -133219) (\TEDIT.WINDOW.TITLE 133221 . 135390) (\TEDIT.LIKELY.FILENAME 135392 . 137179) ( -\TEDIT.UPDATE.TITLE 137181 . 139538)) (139583 148111 (TEDIT.DEACTIVATE.WINDOW 139593 . 145711) ( -\TEDIT.RESHAPEFN 145713 . 147883) (\TEDIT.REPAINTFN 147885 . 148109)) (148112 190491 (\TEDIT.SCROLLFN -148122 . 150367) (\TEDIT.SCROLLCH.TOP 150369 . 152480) (\TEDIT.SCROLLCH.BOTTOM 152482 . 156812) ( -\TEDIT.SCROLLUP 156814 . 162431) (\TEDIT.TOPLINE.YTOP 162433 . 164102) (\TEDIT.SCROLLDOWN 164104 . -171034) (\TEDIT.SCROLL.CARET 171036 . 173874) (\TEDIT.VISIBLECARETP 173876 . 176170) ( -\TEDIT.VISIBLECHARP 176172 . 177263) (\TEDIT.BITMAPLINES 177265 . 181185) (\TEDIT.SETPANE.TOPLINE -181187 . 181978) (\TEDIT.SHIFTLINES 181980 . 190489)) (190492 201361 (\TEDIT.ONSCREEN? 190502 . 195053 -) (\TEDIT.ONSCREEN.REGION 195055 . 198706) (\TEDIT.AFTERMOVEFN 198708 . 199605) (OFFSCREENP 199607 . -201359)) (201403 204020 (\TEDIT.PROCIDLEFN 201413 . 202950) (\TEDIT.PROCENTRYFN 202952 . 203397) ( -\TEDIT.PROCEXITFN 203399 . 204018)) (204099 217253 (\TEDIT.DOWNCARET 204109 . 204902) ( -\TEDIT.FLASHCARET 204904 . 207015) (\TEDIT.UPCARET 207017 . 208121) (TEDIT.NORMALIZECARET 208123 . -211341) (\TEDIT.SETCARET 211343 . 216623) (\TEDIT.CARET 216625 . 217251)) (217287 229555 ( -TEDIT.ADD.MENUITEM 217297 . 219588) (TEDIT.DEFAULT.MENUFN 219590 . 226767) (TEDIT.REMOVE.MENUITEM -226769 . 227766) (\TEDIT.CREATEMENU 227768 . 228333) (\TEDIT.MENU.WHENHELDFN 228335 . 229240) ( -\TEDIT.MENU.WHENSELECTEDFN 229242 . 229553))))) + (FILEMAP (NIL (18676 19572 (TEDIT.DEFER.UPDATES 18686 . 19570)) (19573 44699 (\TEDIT.WINDOW.CREATE +19583 . 26195) (\TEDIT.WINDOW.GETREGION 26197 . 28382) (\TEDIT.WINDOW.SETUP 28384 . 32497) ( +\TEDIT.MINIMAL.WINDOW.SETUP 32499 . 40701) (\TEDIT.CLEARPANE 40703 . 41420) (\TEDIT.FILL.PANES 41422 + . 44697)) (44700 67607 (\TEDIT.CURSORMOVEDFN 44710 . 49583) (\TEDIT.CURSOROUTFN 49585 . 50030) ( +\TEDIT.ACTIVE.WINDOWP 50032 . 51083) (\TEDIT.EXPANDFN 51085 . 51648) (\TEDIT.MAINW 51650 . 52930) ( +\TEDIT.MAINSTREAM 52932 . 53199) (\TEDIT.PRIMARYPANE 53201 . 53971) (\TEDIT.PANELIST 53973 . 54469) ( +\TEDIT.NEWREGIONFN 54471 . 56987) (\TEDIT.SET.WINDOW.EXTENT 56989 . 62243) (\TEDIT.SHRINK.ICONCREATE +62245 . 64978) (\TEDIT.SHRINKFN 64980 . 65389) (\TEDIT.PANEREGION 65391 . 67605)) (67639 99103 ( +\TEDIT.BUTTONEVENTFN 67649 . 80211) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80213 . 86936) ( +\TEDIT.BUTTONEVENTFN.GETOPERATION 86938 . 88780) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 88782 . 92019) ( +\TEDIT.BUTTONEVENTFN.INACTIVE 92021 . 94363) (\TEDIT.BUTTONEVENTFN.INTITLE 94365 . 96200) ( +\TEDIT.COPYINSERTFN 96202 . 97334) (\TEDIT.FOREIGN.COPY 97336 . 99101)) (99104 116213 ( +\TEDIT.PANE.SPLIT 99114 . 103593) (\TEDIT.SPLITW 103595 . 111054) (\TEDIT.UNSPLITW 111056 . 114870) ( +\TEDIT.LINKPANES 114872 . 115635) (\TEDIT.UNLINKPANE 115637 . 116211)) (117570 118461 (TEDITWINDOWP +117580 . 118459)) (118498 121601 (TEDIT.GETINPUT 118508 . 120951) (\TEDIT.MAKEFILENAME 120953 . 121599 +)) (121650 129951 (TEDIT.PROMPTWINDOW 121660 . 121974) (TEDIT.PROMPTPRINT 121976 . 124603) ( +TEDIT.PROMPTCLEAR 124605 . 126324) (TEDIT.PROMPTFLASH 126326 . 128258) (\TEDIT.PROMPT.PAGEFULLFN +128260 . 129949)) (130189 139673 (\TEDIT.FILENAME 130199 . 130971) (\TEDIT.DEFAULT.TITLE 130973 . +133352) (\TEDIT.WINDOW.TITLE 133354 . 135523) (\TEDIT.LIKELY.FILENAME 135525 . 137312) ( +\TEDIT.UPDATE.TITLE 137314 . 139671)) (139716 148244 (TEDIT.DEACTIVATE.WINDOW 139726 . 145844) ( +\TEDIT.RESHAPEFN 145846 . 148016) (\TEDIT.REPAINTFN 148018 . 148242)) (148245 190624 (\TEDIT.SCROLLFN +148255 . 150500) (\TEDIT.SCROLLCH.TOP 150502 . 152613) (\TEDIT.SCROLLCH.BOTTOM 152615 . 156945) ( +\TEDIT.SCROLLUP 156947 . 162564) (\TEDIT.TOPLINE.YTOP 162566 . 164235) (\TEDIT.SCROLLDOWN 164237 . +171167) (\TEDIT.SCROLL.CARET 171169 . 174007) (\TEDIT.VISIBLECARETP 174009 . 176303) ( +\TEDIT.VISIBLECHARP 176305 . 177396) (\TEDIT.BITMAPLINES 177398 . 181318) (\TEDIT.SETPANE.TOPLINE +181320 . 182111) (\TEDIT.SHIFTLINES 182113 . 190622)) (190625 201494 (\TEDIT.ONSCREEN? 190635 . 195186 +) (\TEDIT.ONSCREEN.REGION 195188 . 198839) (\TEDIT.AFTERMOVEFN 198841 . 199738) (OFFSCREENP 199740 . +201492)) (201536 204153 (\TEDIT.PROCIDLEFN 201546 . 203083) (\TEDIT.PROCENTRYFN 203085 . 203530) ( +\TEDIT.PROCEXITFN 203532 . 204151)) (204232 217386 (\TEDIT.DOWNCARET 204242 . 205035) ( +\TEDIT.FLASHCARET 205037 . 207148) (\TEDIT.UPCARET 207150 . 208254) (TEDIT.NORMALIZECARET 208256 . +211474) (\TEDIT.SETCARET 211476 . 216756) (\TEDIT.CARET 216758 . 217384)) (217420 229747 ( +TEDIT.ADD.MENUITEM 217430 . 219721) (TEDIT.DEFAULT.MENUFN 219723 . 226959) (TEDIT.REMOVE.MENUITEM +226961 . 227958) (\TEDIT.CREATEMENU 227960 . 228525) (\TEDIT.MENU.WHENHELDFN 228527 . 229432) ( +\TEDIT.MENU.WHENSELECTEDFN 229434 . 229745))))) STOP diff --git a/library/tedit/TEDIT-WINDOW.LCOM b/library/tedit/TEDIT-WINDOW.LCOM index f2893c7973ed5f8ccc94e710cd645f8232d24d7a..3a75a4695f6f22ceb5a1f69e5f003e0ef7b98264 100644 GIT binary patch delta 410 zcmX@!$g-=6WkL$Oxs|Dbm674ZY!&g6)RfE;yAW3w&k)^kPd^v`a6M~t3&V-ax-6lp zloYDNeO+CATqA33ax#;O5{oMBaOhGnGB!20u$Y|5Xe_DW<`=90HdoKZ)y*-~Cq&QJ z)i2b|Z}Tih#>0$>o97%6W}Lj>DEs8CN2NK^8Gzu!RF27~k7{X{m;p6Lgan5KxjOnP z7#kZY#6S%4bqw-$bPn+hb5$@lG*g(I_(oVt!PvkUE)TRoFF3?8C`7@?!eq12u?$8D zV*^VCr_z#={JdfXBTI9I07rLM1tW8_&C8B!Gcp;OPQH9XlgZLx^S=}8#WVs#{X<+~ z$~6_Zlw2~43vv=G6%vz6GV}8kk{|{tZ9a5=K93ffYFvte=1e|v-&4prBe4i*PHK^= Vf=_;ab}>*`{(;8k-*3(c0{}OOh4%me delta 267 zcmdnh#B#imWkL$OnU#r|m9g=}Y?a9$7{wSZCNAsZgo-ICOuomc!C|3bWNd0`VKOEoiQsWAEV8_&(T4?=i!u*(OQW|k;u jxKjs4DoT=9MaNO?vA(x&DC|BiH7bxA%krLrPX9 From 25cd4e1b253b12601d51930c8cb619738a861272 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Tue, 18 Mar 2025 00:32:43 -0700 Subject: [PATCH 07/26] A little cleanup while documenting --- library/tedit/TEDIT-FNKEYS | 92 ++++++++++++++++---------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 34661 -> 34634 bytes 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index ce481d501..47c2debd5 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,14 +1,14 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Mar-2025 18:29:50" {WMEDLEY}tedit>TEDIT-FNKEYS.;215 89639 +(FILECREATED "18-Mar-2025 00:30:15" {WMEDLEY}tedit>TEDIT-FNKEYS.;218 89642 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.BUTTONS.BUILD TEDIT.GET.ACTIONBINDINGS TEDIT.GET.KEYACTION - TEDIT.GET.KEYBINDING TEDIT.CLEAR.KEYBINDINGS TEDIT.INSTALL.KEYBINDINGS) - (VARS TEDIT-FNKEYSCOMS TEDIT.KEYBINDINGS) + :CHANGES-TO (VARS TEDIT.BUTTONS.SPEC TEDIT-FNKEYSCOMS TEDIT.KEYACTIONS) + (FNS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.KEYACTION TEDIT.GET.ACTIONBINDINGS + TEDIT.GET.ACTION TEDIT.BUTTONS.BUILD TEDIT.GET.BINDING \TEDIT.KEY.NEST) - :PREVIOUS-DATE "16-Mar-2025 21:44:56" {WMEDLEY}tedit>TEDIT-FNKEYS.;204) + :PREVIOUS-DATE "17-Mar-2025 18:29:50" {WMEDLEY}tedit>TEDIT-FNKEYS.;215) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -16,8 +16,8 @@ (RPAQQ TEDIT-FNKEYSCOMS ((COMS (* ;  "Public functions (binding data below)") - (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.KEYACTION - TEDIT.GET.ACTIONBINDINGS)) + (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.ACTION + TEDIT.GET.BINDING)) (COMS (* ;; "Functions that implement the key actions:") @@ -32,7 +32,7 @@ \TEDIT.ONELINE.MOVE \TEDIT.ONEWORD.BACKWARD \TEDIT.ONEWORD.FORWARD \TEDIT.LINE.BEGIN \TEDIT.LINE.END \TEDIT.DOCUMENT.BEGIN \TEDIT.DOCUMENT.END) (FNS \TEDIT.LINEDELETE.FORWARD \TEDIT.LINEDELETE.BACKWARD) - (FNS \TEDIT.NEST) + (FNS \TEDIT.KEY.NEST) (INITVARS (TEDIT.NESTWIDTH 36)) (* ; "Find") (FNS \TEDIT.KEY.FIND \TEDIT.KEY.FIND.SEARCHSTRING \TEDIT.GET.TARGET.STRING) @@ -114,10 +114,10 @@ RDTBL]) (TEDIT.CLEAR.KEYBINDINGS - [LAMBDA (RDTBL KEYBINDINGS) (* ; "Edited 17-Mar-2025 09:35 by rmk") + [LAMBDA (RDTBL BINDINGS) (* ; "Edited 17-Mar-2025 23:47 by rmk") (* ; "Edited 15-Mar-2025 12:02 by rmk") - (* ;; "Removes the Tedit function bindings to the keys in KEYBINDINGS, or all current bindings if KEYBINDINGS is T") + (* ;; "Removes the Tedit function bindings to the keys in BINDINGS, or all current bindings if BINDINGS is NIL") (SETQ RDTBL (if (NULL RDTBL) then TEDIT.READTABLE @@ -129,7 +129,7 @@ then RDTBL else (\ILLEGAL.ARG RDTBL))) (CL:WHEN (fetch READMACRODEFS of RDTBL) - [if (EQ KEYBINDINGS T) + [if (EQ BINDINGS T) then [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CHARCODE) (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) @@ -140,8 +140,8 @@ (* ;  "A tag like NEXT, UNDO. Setup the termtable FWIW ") (TEDIT.SETSYNTAX CHARCODE CHARCODE RDTBL)))] - KEYBINDINGS - else (for KB in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) + BINDINGS + else (for KB in BINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) do (for CHARCODE in (CDR KB) do (CL:UNLESS (CHARCODEP CHARCODE) (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) @@ -152,7 +152,7 @@ (TEDIT.SETSYNTAX CHARCODE (CAR KB) RDTBL))])]) -(TEDIT.GET.KEYACTION +(TEDIT.GET.ACTION [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 17-Mar-2025 09:43 by rmk") (* ;; "Returns the keyaction that CHARCODE binds to in BINDINGS. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") @@ -187,11 +187,11 @@ CHARCODE))) (for KA in TEDIT.KEYACTIONS when (EQUAL (CADR KA) (CADR VAL)) - do (RETFROM (FUNCTION TEDIT.GET.KEYACTION) + do (RETFROM (FUNCTION TEDIT.GET.ACTION) (CAR KA))))] NIL]) -(TEDIT.GET.ACTIONBINDINGS +(TEDIT.GET.BINDING [LAMBDA (ACTION BINDINGS) (* ; "Edited 17-Mar-2025 15:21 by rmk") (* ;; "Returns the bindings for ACTION in BINDINGS, a binding list or a read-table specification. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") @@ -714,7 +714,7 @@ ) (DEFINEQ -(\TEDIT.NEST +(\TEDIT.KEY.NEST [LAMBDA (TSTREAM OUTFLAG) (* ; "Edited 16-Mar-2025 13:06 by rmk") (* ; "Edited 7-Mar-2025 22:18 by rmk") @@ -1364,8 +1364,8 @@ (* ;; "Paragraph looks") - (NEST (\TEDIT.NEST TSTREAM)) - (UNNEST (\TEDIT.UNNEST TSTREAM T)) + (NEST (\TEDIT.KEY.NEST TSTREAM)) + (UNNEST (\TEDIT.KEY.NEST TSTREAM T)) ((QUAD CENTER) (\TEDIT.KEY.QUAD TSTREAM)) (QUAD.REVERSE (\TEDIT.KEY.QUAD TSTREAM T)) @@ -1597,7 +1597,7 @@ (RPAQQ TEDIT.BUTTONS.SPEC ((Bold BOLD.ON BOLD.OFF) (Italic ITALIC.ON ITALIC.OFF) - (Case CASE UCASE LCASE) + (Case UCASE LCASE) ((Strike- out) STRIKEOUT.ON STRIKEOUT.OFF) ((Under- line) @@ -1605,15 +1605,15 @@ ((Super/ Sub) SUPERSCRIPT SUBSCRIPT) ((Larger Smaller) - (Justify QUAD) LARGER SMALLER) + (Justify QUAD) (Defaults DEFAULTS) (Show SHOW.CHARLOOKS) (Redo REDO))) (DEFINEQ (TEDIT.BUTTONS.BUILD - [LAMBDA (BUTTONS TITLE NROWS KEYBINDINGS) (* ; "Edited 17-Mar-2025 18:29 by rmk") + [LAMBDA (BUTTONSPEC TITLE NROWS KEYBINDINGS) (* ; "Edited 17-Mar-2025 18:29 by rmk") (* ; "Edited 15-Mar-2025 15:24 by rmk") (* ; "Edited 5-Nov-85 15:35 by lmm") @@ -1621,7 +1621,7 @@ (CL:UNLESS (AND (WINDOWP TEDIT.BUTTONS.WINDOW) (OPENWP TEDIT.BUTTONS.WINDOW)) - (CL:UNLESS BUTTONS (SETQ BUTTONS TEDIT.BUTTONS.SPEC)) + (CL:UNLESS BUTTONSPEC (SETQ BUTTONSPEC TEDIT.BUTTONS.SPEC)) (CL:UNLESS TITLE (SETQ TITLE '(Tedit Buttons))) (* ; "List for the Shrink button label") (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) @@ -1629,7 +1629,7 @@ (* ;; "The constructed menu will bksysbuf a character bound to action1 if the shift is not down, otherwise a character bound to action2. action2 is action1 if it is not specified. Buttons with no actions are skipped.") (LET (ICONWINDOW ITEMS) - (SETQ ITEMS (for BUTTON CHARS in BUTTONS + (SETQ ITEMS (for BUTTON CHARS in BUTTONSPEC eachtime (CL:WHEN (AND (CDR BUTTON) (NULL (CDDR BUTTON))) [SETQ BUTTON (APPEND BUTTON (CONS (CADR BUTTON]) @@ -1719,26 +1719,26 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3857 13694 (TEDIT.INSTALL.KEYBINDINGS 3867 . 6940) (TEDIT.CLEAR.KEYBINDINGS 6942 . 9539 -) (TEDIT.GET.KEYACTION 9541 . 11966) (TEDIT.GET.ACTIONBINDINGS 11968 . 13692)) (13754 21544 ( -\TEDIT.KEY.CHARLOOKS 13764 . 14706) (\TEDIT.KEY.QUAD 14708 . 16801) (\TEDIT.DEFAULTSSEL 16803 . 17414) - (\TEDIT.SETDEFAULT.FROM.SEL 17416 . 18093) (\TEDIT.KEY.SIZE 18095 . 18545) (\TEDIT.SUBSCRIPTSEL 18547 - . 18750) (\TEDIT.SUPERSCRIPTSEL 18752 . 18956) (\TEDIT.KEY.TRANSFORM 18958 . 20533) ( -\TEDIT.KEY.OPENLINE 20535 . 20989) (\TEDIT.KEY.FAMILYN 20991 . 21542)) (21545 21834 (CAP-CASECODE -21555 . 21832)) (21868 24494 (\TEDIT.SHOWCARETLOOKS 21878 . 23587) (\TEDIT.DESCRIBEFONT 23589 . 24492) -) (24525 38582 (\TEDIT.ONECHAR.BACKWARD 24535 . 25664) (\TEDIT.ONECHAR.FORWARD 25666 . 26884) ( -\TEDIT.ONELINE.UP 26886 . 29847) (\TEDIT.ONELINE.DOWN 29849 . 31506) (\TEDIT.ONELINE.MOVE 31508 . -33722) (\TEDIT.ONEWORD.BACKWARD 33724 . 34761) (\TEDIT.ONEWORD.FORWARD 34763 . 35799) ( -\TEDIT.LINE.BEGIN 35801 . 36731) (\TEDIT.LINE.END 36733 . 37821) (\TEDIT.DOCUMENT.BEGIN 37823 . 38182) - (\TEDIT.DOCUMENT.END 38184 . 38580)) (38583 40427 (\TEDIT.LINEDELETE.FORWARD 38593 . 39493) ( -\TEDIT.LINEDELETE.BACKWARD 39495 . 40425)) (40428 42682 (\TEDIT.NEST 40438 . 42680)) (42736 50641 ( -\TEDIT.KEY.FIND 42746 . 47781) (\TEDIT.KEY.FIND.SEARCHSTRING 47783 . 48923) (\TEDIT.GET.TARGET.STRING -48925 . 50639)) (50672 53304 (\TEDIT.KEY.SUBSTITUTE 50682 . 50903) (\TEDIT.MANPAGE 50905 . 52152) ( -\TEDIT.CALL.ED 52154 . 52984) (\TEDIT.SELECT.ALL 52986 . 53302)) (53331 58911 (\TEDIT.CLIPBOARD 53341 - . 55096) (\TEDIT.COPYTOCLIPBOARD 55098 . 55878) (\TEDIT.EXTRACTTOCLIPBOARD 55880 . 56075) ( -\TEDIT.WRITE.SEL 56077 . 58909)) (59263 70868 (\TEDIT.READTABLE 59273 . 60099) ( -\TEDIT.WORDBOUND.READTABLE 60101 . 62730) (TEDIT.GETSYNTAX 62732 . 64251) (TEDIT.SETSYNTAX 64253 . -65458) (TEDIT.GETFUNCTION 65460 . 66632) (TEDIT.SETFUNCTION 66634 . 68620) (TEDIT.WORDGET 68622 . -68883) (TEDIT.WORDSET 68885 . 69516) (TEDIT.ATOMBOUND.READTABLE 69518 . 70866)) (81449 88575 ( -TEDIT.BUTTONS.BUILD 81459 . 86843) (TEDIT.BUTTONBITMAP.FILL 86845 . 88573))))) + (FILEMAP (NIL (3873 13684 (TEDIT.INSTALL.KEYBINDINGS 3883 . 6956) (TEDIT.CLEAR.KEYBINDINGS 6958 . 9542 +) (TEDIT.GET.ACTION 9544 . 11963) (TEDIT.GET.BINDING 11965 . 13682)) (13744 21534 ( +\TEDIT.KEY.CHARLOOKS 13754 . 14696) (\TEDIT.KEY.QUAD 14698 . 16791) (\TEDIT.DEFAULTSSEL 16793 . 17404) + (\TEDIT.SETDEFAULT.FROM.SEL 17406 . 18083) (\TEDIT.KEY.SIZE 18085 . 18535) (\TEDIT.SUBSCRIPTSEL 18537 + . 18740) (\TEDIT.SUPERSCRIPTSEL 18742 . 18946) (\TEDIT.KEY.TRANSFORM 18948 . 20523) ( +\TEDIT.KEY.OPENLINE 20525 . 20979) (\TEDIT.KEY.FAMILYN 20981 . 21532)) (21535 21824 (CAP-CASECODE +21545 . 21822)) (21858 24484 (\TEDIT.SHOWCARETLOOKS 21868 . 23577) (\TEDIT.DESCRIBEFONT 23579 . 24482) +) (24515 38572 (\TEDIT.ONECHAR.BACKWARD 24525 . 25654) (\TEDIT.ONECHAR.FORWARD 25656 . 26874) ( +\TEDIT.ONELINE.UP 26876 . 29837) (\TEDIT.ONELINE.DOWN 29839 . 31496) (\TEDIT.ONELINE.MOVE 31498 . +33712) (\TEDIT.ONEWORD.BACKWARD 33714 . 34751) (\TEDIT.ONEWORD.FORWARD 34753 . 35789) ( +\TEDIT.LINE.BEGIN 35791 . 36721) (\TEDIT.LINE.END 36723 . 37811) (\TEDIT.DOCUMENT.BEGIN 37813 . 38172) + (\TEDIT.DOCUMENT.END 38174 . 38570)) (38573 40417 (\TEDIT.LINEDELETE.FORWARD 38583 . 39483) ( +\TEDIT.LINEDELETE.BACKWARD 39485 . 40415)) (40418 42676 (\TEDIT.KEY.NEST 40428 . 42674)) (42730 50635 +(\TEDIT.KEY.FIND 42740 . 47775) (\TEDIT.KEY.FIND.SEARCHSTRING 47777 . 48917) (\TEDIT.GET.TARGET.STRING + 48919 . 50633)) (50666 53298 (\TEDIT.KEY.SUBSTITUTE 50676 . 50897) (\TEDIT.MANPAGE 50899 . 52146) ( +\TEDIT.CALL.ED 52148 . 52978) (\TEDIT.SELECT.ALL 52980 . 53296)) (53325 58905 (\TEDIT.CLIPBOARD 53335 + . 55090) (\TEDIT.COPYTOCLIPBOARD 55092 . 55872) (\TEDIT.EXTRACTTOCLIPBOARD 55874 . 56069) ( +\TEDIT.WRITE.SEL 56071 . 58903)) (59257 70862 (\TEDIT.READTABLE 59267 . 60093) ( +\TEDIT.WORDBOUND.READTABLE 60095 . 62724) (TEDIT.GETSYNTAX 62726 . 64245) (TEDIT.SETSYNTAX 64247 . +65452) (TEDIT.GETFUNCTION 65454 . 66626) (TEDIT.SETFUNCTION 66628 . 68614) (TEDIT.WORDGET 68616 . +68877) (TEDIT.WORDSET 68879 . 69510) (TEDIT.ATOMBOUND.READTABLE 69512 . 70860)) (81443 88578 ( +TEDIT.BUTTONS.BUILD 81453 . 86846) (TEDIT.BUTTONBITMAP.FILL 86848 . 88576))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 08ecd2c1cf506a81e902586841412fbdcdd05ad7..e7f7cacc196ff55b7955335d6f245ba5a68d7be4 100644 GIT binary patch delta 613 zcmZuv&rj4q7)^_TI7`4E#7H*cm&Rzv(578>r4&7M+v!?tyV{v<*o2MzR5!?ixR~e> zu7*hFsCTX=_2R|o)&IbwG5i6Zy*OQ0#DvSt_kHu;%X?quXkY%iFTa_;Xlc>XwpKDq z6)+5Y%CODK!MZ(eVL*yG{qNDV?5VPCR1Q8}TIp(w*}z5c95m|hKHFNkY^7LJAWm{5knzMqgrP*17mi9lSF90~KeRx$e^9}Q&h z1`lQKpZ&on(VgrmdM)u^g=a&3HU4V2`M1u#4^K@1+{W9v}v(H<@)qj|yKZ^AWk_q+n5Ol&;@mJ`(nspA21Nz6!sd2wqzD{M6` zoJ(DY5(x7%M3z2mc^Ig-*)kp&`D|}0U9}BD2SlW?L6hGx3HiAB0b21cd|Mut`5KuNg*Y%BsB%Ac4Gr2O)d>LPajw3AXmo_SC`3&Opa^{7M5nl zmXk9WWmw$&f)zlrl%Cv^%%Ki+u2n#gYnZ2hXt1se&}an=*PB?GnoX?MWHB(&>2>Nj~$z66)Et6zv~ z5Kt-C=6m_MLZZ%&!LACSV3NxRL;*(VHHp?Y7EwMDGq*%el)y*-~CnOkXNN`4eIhVp_#b!+w0M^ln AM*si- From 5ec8235c54859d7f75f8e9f589c2a5670cee0057 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Tue, 18 Mar 2025 00:44:29 -0700 Subject: [PATCH 08/26] Documentation first draft --- library/tedit/TEDIT-RELEASENOTES.TEDIT | Bin 21011 -> 32440 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/library/tedit/TEDIT-RELEASENOTES.TEDIT b/library/tedit/TEDIT-RELEASENOTES.TEDIT index 0281e2d6da9a9959c913baf44187df89ca49fbe8..8b8c58c70dcbb67719287f38ee1a1acdd3f56d38 100644 GIT binary patch literal 32440 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 delta 2499 zcmZvcJ!n)x5XX1#Of;96^VAqk!g;5}Z_S4hL?jZu7>t@|JVdZi1w6PHjI|U0XE5X7>uuyRRdpCQ#^HRLW?r;Ayvokxpum9=jxn8Q| z$13x|%(dV~uD`c`;6N%>3`*s>+{yCf+*EF&a&xw{oXocrbUMmR4lEafWFq=;{d;qR z+Nc`Oju(a}#-guNeNndD9$lTzcBYk5jr6Go`r0ti_^E_SNAIS)ns~N0KI`DMR?=^R z(JK7NwAF}tW=wl{)v`j{XLBs&?@B-H<%j99asfpv492}=$!u##A8?X@iF>X*qH zjiUcdF-$?w#$VX8C5Q?0y}ZKaiPcP4V(%|YG;+3=0AB1HSd}3D3#r+~fZfDn`!5nU zz79qh*t5m1a865DF|-QwlR5~ilE-yofZoc$D+77cUSA;I4oESm#nawni30Rs4UTL+ z-OZ|f0Cik~PZB&7Kzpw=O0iieR2aL~-BNN&g3l6oVX*h#QgK@V%}0#$ zuU_k;t^`$!J$>4H+EY2$;iCMxGeLH{HWWsCR}7PvuA-49#+-dn0xMi|yAzwAX;&DT{)5#q`uraK!-P-h zkpTLF0LlZ15xX1rTodZZ)B2Vm>aPGA<+fEq7Y7CuhKj>S%I!mRy9R&i{KA|6AE;wR From 4cf857f12b812eabe7686207aba179660785ef8d Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Tue, 18 Mar 2025 21:37:58 -0700 Subject: [PATCH 09/26] Replace "KEY" with "CHAR", added TEDIT.GET.ALL.CHARACTIONS TEDIT.GET.ALLCHARBINDINGS --- library/tedit/TEDIT-FNKEYS | 364 +++++++++++++++++-------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 34634 -> 37154 bytes library/tedit/TEDIT-RELEASENOTES.TEDIT | Bin 32440 -> 34296 bytes 3 files changed, 247 insertions(+), 117 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 47c2debd5..9c5e67efb 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,12 +1,15 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "18-Mar-2025 00:30:15" {WMEDLEY}tedit>TEDIT-FNKEYS.;218 89642 +(FILECREATED "18-Mar-2025 20:55:26" {WMEDLEY}tedit>TEDIT-FNKEYS.;225 97662 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT.BUTTONS.SPEC TEDIT-FNKEYSCOMS TEDIT.KEYACTIONS) - (FNS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.KEYACTION TEDIT.GET.ACTIONBINDINGS - TEDIT.GET.ACTION TEDIT.BUTTONS.BUILD TEDIT.GET.BINDING \TEDIT.KEY.NEST) + :CHANGES-TO (FNS CHARNAME TEDIT.GET.CHARBINDING TEDIT.GET.ALL.CHARBINDINGS + TEDIT.GET.ALL.CHARACTIONS TEDIT.GET.CHARACTION TEDIT.BUTTONS.BUILD + \TEDIT.KEY.SIZE TEDIT.INSTALL.CHARBINDINGS TEDIT.GET.BINDING TEDIT.GET.ACTION + \TEDIT.READTABLE TEDIT.CLEAR.CHARBINDINGS TEDIT.CLEAR.KEYBINDINGS + TEDIT.GET.KEYACTION TEDIT.GET.ACTIONBINDINGS \TEDIT.KEY.NEST) + (VARS TEDIT-FNKEYSCOMS TEDIT.CHARACTIONS TEDIT.BUTTONS.SPEC TEDIT.KEYACTIONS) :PREVIOUS-DATE "17-Mar-2025 18:29:50" {WMEDLEY}tedit>TEDIT-FNKEYS.;215) @@ -14,10 +17,11 @@ (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) (RPAQQ TEDIT-FNKEYSCOMS - ((COMS (* ; + ((FNS CHARNAME) + (COMS (* ;  "Public functions (binding data below)") - (FNS TEDIT.INSTALL.KEYBINDINGS TEDIT.CLEAR.KEYBINDINGS TEDIT.GET.ACTION - TEDIT.GET.BINDING)) + (FNS TEDIT.INSTALL.CHARBINDINGS TEDIT.CLEAR.CHARBINDINGS TEDIT.GET.CHARACTION + TEDIT.GET.CHARBINDING TEDIT.GET.ALL.CHARBINDINGS TEDIT.GET.ALL.CHARACTIONS)) (COMS (* ;; "Functions that implement the key actions:") @@ -50,7 +54,7 @@ (* ; "Keybindings") (DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (CONSTANTS \TEDIT.TTCCODES) (MACROS \TEDIT.TTC))) - (VARS TEDIT.KEYACTIONS TEDIT.KEYBINDINGS TEDIT.DORADO.KEYBINDINGS) + (VARS TEDIT.CHARACTIONS TEDIT.CHARBINDINGS TEDIT.DORADO.CHARBINDINGS) (* ; "Installation") [DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (TEDIT.READTABLE (\TEDIT.READTABLE)) (TEDIT.WORDBOUND.READTABLE (\TEDIT.WORDBOUND.READTABLE] @@ -61,6 +65,74 @@ (FNS TEDIT.BUTTONS.BUILD TEDIT.BUTTONBITMAP.FILL) (INITVARS (TEDIT.BUTTONS.WINDOW NIL)) (VARS TEDIT.BUTTONBITMAP))) +(DEFINEQ + +(CHARNAME + [LAMBDA (CODE OCTALCHARS) (* ; "Edited 18-Mar-2025 20:55 by rmk") + (* ; "Edited 6-Dec-2023 20:30 by rmk") + (* ; "Edited 20-Sep-2021 15:03 by rmk:") + + (* ;; "Tries to produce a character name for CODE, of the form charset,char. ^ is prefixed to chars in the control range, # to chars in the upper panel of each charset.") + + (* ;; "If OCTALCHARS, the character set part is returned as its octal string") + + (if (LISTP CODE) + then (CONS (CHARNAME (CAR CODE) + OCTALCHARS) + (AND (CDR CODE) + (CHARNAME (CDR CODE) + OCTALCHARS))) + elseif (NOT (CHARCODEP CODE)) + then (\ILLEGAL.ARG CODE) + elseif [CAR (find CN in CHARACTERNAMES suchthat (if (CHARCODEP (CADR CN)) + then (IEQP CODE (CADR CN)) + else (IEQP CODE (CHARCODE.DECODE (CADR CN] + else (LET ((CHARSET (LRSH CODE 8)) + (CHAR (LOGAND CODE 255)) + CSETNAME CHARNAME PANEL0NAME STRING (PANEL0CODE (LOGAND CODE 127))) + (SETQ CSETNAME (if [CAR (find CN in CHARACTERSETNAMES + suchthat (STRING.EQUAL CHARSET (CADR CN] + elseif (OCTALSTRING CHARSET))) + [SETQ CHARNAME (IF OCTALCHARS + THEN (OCTALSTRING CHAR) + ELSE (CAR (for CC in CHARACTERNAMES when (EQ CHAR (CADR CC)) + smallest (NCHARS (CAR CC] + (CL:WHEN (STREQUAL CHARNAME "Tenexeol") + (SETQ CHARNAME "^_")) + + (* ;; "Didn't find the special character name, let's find a corresponding name in panel 0 to prefix with #") + + (CL:UNLESS CHARNAME + [SETQ PANEL0NAME (IF [CAR (FOR CC IN CHARACTERNAMES + WHEN (EQ PANEL0CODE (CADR CC)) + SMALLEST (NCHARS (CAR CC] + ELSEIF (ILEQ PANEL0CODE (CHARCODE SPACE)) + THEN [CONCAT "^" (CHARACTER (IPLUS PANEL0CODE (CHARCODE + @] + ELSEIF (AND (IGEQ PANEL0CODE (CHARCODE 0)) + (ILEQ PANEL0CODE (CHARCODE 9))) + THEN (IF (EQ CHARSET 0) + THEN + (* ;; + "We won't do the comma thing, don't do octal") + + (CONCAT (IDIFFERENCE PANEL0CODE (CHARCODE + 0))) + ELSE (OCTALSTRING PANEL0CODE)) + ELSE + (* ;; "Not a control, not a digit") + + (CONCAT (CHARACTER PANEL0CODE] + (SETQ CHARNAME (IF (IGEQ CHAR 128) + THEN (CONCAT "#" PANEL0NAME) + ELSE PANEL0NAME))) + (SETQ STRING (if CSETNAME + then (CONCAT CSETNAME "," CHARNAME) + else CHARNAME)) + (CL:UNLESS (EQ CODE (CHARCODE.DECODE STRING)) + (HELP "Character name doesn't map to code" (LIST STRING CODE))) + STRING]) +) @@ -68,17 +140,18 @@ (DEFINEQ -(TEDIT.INSTALL.KEYBINDINGS - [LAMBDA (KEYBINDINGS RDTBL KEYACTIONS) (* ; "Edited 17-Mar-2025 09:34 by rmk") +(TEDIT.INSTALL.CHARBINDINGS + [LAMBDA (CHARBINDINGS RDTBL CHARACTIONS) (* ; "Edited 18-Mar-2025 11:15 by rmk") + (* ; "Edited 17-Mar-2025 09:34 by rmk") (* ; "Edited 15-Mar-2025 15:20 by rmk") (* ; "Edited 13-Mar-2025 23:25 by rmk") (* ; "Edited 11-Mar-2025 22:03 by rmk") - (* ;; "Installs KEYBINDINGS in the Tedit RDTBL. A binding is an action-name followed by a list of character-name strings or Tedit built-in action items (like NEXT, UNDO). The implementation of the action is taken from entries in the TEDIT.KEYACTIONS list.") + (* ;; "Installs CHARBINDINGS in the Tedit RDTBL. A binding is an action-name followed by a list of character-name strings or Tedit built-in action items (like NEXT, UNDO). The implementation of the action is taken from entries in CHARACTIONS or the TEDIT.CHARACTIONS list.") (* ;; "This will overwrite previous assignments in RDTBL, possibly add new ones. ") - (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) + (CL:UNLESS CHARBINDINGS (SETQ CHARBINDINGS TEDIT.CHARBINDINGS)) (SETQ RDTBL (if (NULL RDTBL) then TEDIT.READTABLE elseif (TEXTSTREAM RDTBL T) @@ -88,16 +161,16 @@ elseif (type? READTABLEP RDTBL) then RDTBL else (\ILLEGAL.ARG RDTBL))) - (CL:UNLESS KEYACTIONS (SETQ KEYACTIONS TEDIT.KEYACTIONS)) - [for KB A ACTION in KEYBINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) - when (AND [SETQ ACTION (find PAIR in TEDIT.KEYACTIONS suchthat + (CL:UNLESS CHARACTIONS (SETQ CHARACTIONS TEDIT.CHARACTIONS)) + [for CB A ACTION in CHARBINDINGS when (LISTP CB) unless (EQ '* (CAR CB)) + when (AND [SETQ ACTION (find PAIR in CHARACTIONS suchthat - (* ;; - "An ASSOC that allows synonym keys") + (* ;; + "An ASSOC that allows synonym keys") - (EQMEMB (CAR KB) - (CAR PAIR] - (SETQ A (CADR ACTION))) do (for CHAR in (CDR KB) + (EQMEMB (CAR CB) + (CAR PAIR] + (SETQ A (CADR ACTION))) do (for CHAR in (CDR CB) do (CL:UNLESS (CHARCODEP CHAR) (SETQ CHAR (CHARCODE.DECODE CHAR))) (CL:WHEN (EQ (CAR ACTION) @@ -113,11 +186,11 @@ RDTBL))] RDTBL]) -(TEDIT.CLEAR.KEYBINDINGS - [LAMBDA (RDTBL BINDINGS) (* ; "Edited 17-Mar-2025 23:47 by rmk") +(TEDIT.CLEAR.CHARBINDINGS + [LAMBDA (RDTBL BINDINGS) (* ; "Edited 18-Mar-2025 11:10 by rmk") (* ; "Edited 15-Mar-2025 12:02 by rmk") - (* ;; "Removes the Tedit function bindings to the keys in BINDINGS, or all current bindings if BINDINGS is NIL") + (* ;; "Removes the Tedit function bindings to the characters in BINDINGS, or all current bindings if BINDINGS is NIL") (SETQ RDTBL (if (NULL RDTBL) then TEDIT.READTABLE @@ -141,30 +214,31 @@  "A tag like NEXT, UNDO. Setup the termtable FWIW ") (TEDIT.SETSYNTAX CHARCODE CHARCODE RDTBL)))] BINDINGS - else (for KB in BINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) - do (for CHARCODE in (CDR KB) do (CL:UNLESS (CHARCODEP CHARCODE) + else (for CB in BINDINGS when (LISTP CB) unless (EQ '* (CAR CB)) + do (for CHARCODE in (CDR CB) do (CL:UNLESS (CHARCODEP CHARCODE) (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) (TEDIT.SETFUNCTION CHARCODE NIL RDTBL) - (CL:WHEN (ASSOC (CAR KB) + (CL:WHEN (ASSOC (CAR CB) \TEDIT.TTCCODES) (* ;  "A tag like NEXT, UNDO. Setup the termtable FWIW ") - (TEDIT.SETSYNTAX CHARCODE (CAR KB) + (TEDIT.SETSYNTAX CHARCODE (CAR CB) RDTBL))])]) -(TEDIT.GET.ACTION - [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 17-Mar-2025 09:43 by rmk") +(TEDIT.GET.CHARACTION + [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 18-Mar-2025 11:07 by rmk") + (* ; "Edited 17-Mar-2025 09:43 by rmk") (* ;; "Returns the keyaction that CHARCODE binds to in BINDINGS. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") (CL:UNLESS (CHARCODEP CHARCODE) (SETQ CHARCODE (CHARCODE.DECODE CHARCODE))) (if (LISTP BINDINGS) - then [for KB in BINDINGS when (LISTP KB) unless (EQ '* (CAR KB)) - when [thereis K in (CDR KB) suchthat (EQ CHARCODE (CL:IF (CHARCODEP K) - K - (CHARCODE.DECODE K))] - collect (CAR KB) finally + then [for CB in BINDINGS when (LISTP CB) unless (EQ '* (CAR CB)) + when [thereis C in (CDR CB) suchthat (EQ CHARCODE (CL:IF (CHARCODEP C) + C + (CHARCODE.DECODE C))] + collect (CAR CB) finally (* ;; "Maybe cause an error if a character is assigned twice?") @@ -185,23 +259,23 @@ (EQ (\TEDIT.TTC FUNCTIONCALL) (\SYNCODE (fetch READSA of RDTBL) CHARCODE))) - (for KA in TEDIT.KEYACTIONS when (EQUAL (CADR KA) + (for CA in TEDIT.KEYACTIONS when (EQUAL (CADR CA) (CADR VAL)) - do (RETFROM (FUNCTION TEDIT.GET.ACTION) - (CAR KA))))] + do (RETFROM (FUNCTION TEDIT.GET.CHARACTION) + (CAR CA))))] NIL]) -(TEDIT.GET.BINDING - [LAMBDA (ACTION BINDINGS) (* ; "Edited 17-Mar-2025 15:21 by rmk") +(TEDIT.GET.CHARBINDING + [LAMBDA (ACTION BINDINGS RETURNCODES) (* ; "Edited 18-Mar-2025 20:40 by rmk") (* ;; "Returns the bindings for ACTION in BINDINGS, a binding list or a read-table specification. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") (if (LISTP BINDINGS) - then (for KB in BINDINGS when (EQ ACTION (CAR KB)) join + then (for CB in BINDINGS when (EQ ACTION (CAR CB)) join (* ;;  "Allow for duplicate bindings for the same action?") - (APPEND (CDR KB))) + (APPEND (CDR CB))) else (LET ((RDTBL (if (NULL BINDINGS) then TEDIT.READTABLE elseif (TEXTSTREAM BINDINGS T) @@ -210,15 +284,77 @@ TEDIT.READTABLE) elseif (type? READTABLEP BINDINGS) else (\ILLEGAL.ARG BINDINGS))) - (IMPL (CADR (ASSOC ACTION TEDIT.KEYACTIONS))) - KEYS) + [IMPL (CADR (find CA in TEDIT.CHARACTIONS suchthat (EQMEMB ACTION (CAR CA] + CHARS) (CL:WHEN IMPL [MAPHASH (fetch READMACRODEFS of RDTBL) (FUNCTION (LAMBDA (VAL CCODE) (CL:WHEN (EQUAL IMPL (CADR VAL)) (* ; "charcode, not charname") - (push KEYS CCODE))] - KEYS)]) + (push CHARS (CL:IF RETURNCODES + CCODE + (CHARNAME CCODE))))] + CHARS)]) + +(TEDIT.GET.ALL.CHARBINDINGS + [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 18-Mar-2025 20:41 by rmk") + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (GETTSTR RDTBL TEXTOBJ) + TXTRTBL) + TEDIT.READTABLE) + elseif (type? READTABLEP RDTBL) + else (\ILLEGAL.ARG RDTBL))) + (LET (BINDINGS) + [MAPHASH (fetch READMACRODEFS of RDTBL) + (FUNCTION (LAMBDA (VAL CCODE) + (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of RDTBL) + CCODE)) + [for CA in TEDIT.CHARACTIONS when (LISTP CA) + unless (EQ '* (CAR CA)) when (EQUAL (CADR CA) + (CADR VAL)) + do (PUSH BINDINGS (LIST (CL:IF RETURNCODES + CCODE + (CHARNAME CCODE)) + (CAR (CL:IF (LISTP (CAR CA)) + (CAR CA) + CA)])] + (SORT BINDINGS T) + BINDINGS]) + +(TEDIT.GET.ALL.CHARACTIONS + [LAMBDA (RDTBL RETURNCODES) (* ; "Edited 18-Mar-2025 20:51 by rmk") + (SETQ RDTBL (if (NULL RDTBL) + then TEDIT.READTABLE + elseif (TEXTSTREAM RDTBL T) + then (OR (GETTOBJ (GETTSTR RDTBL TEXTOBJ) + TXTRTBL) + TEDIT.READTABLE) + elseif (type? READTABLEP RDTBL) + else (\ILLEGAL.ARG RDTBL))) + (LET (ACTIONS) + [MAPHASH (fetch READMACRODEFS of RDTBL) + (FUNCTION (LAMBDA (VAL CCODE) + (CL:WHEN (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of RDTBL) + CCODE)) + (for CA ANAME in TEDIT.CHARACTIONS when (LISTP CA) + unless (EQ '* (CAR CA)) when (EQUAL (CADR CA) + (CADR VAL)) + do (SETQ ANAME (CAR (CL:IF (LISTP (CAR CA)) + (CAR CA) + CA))) + (PUSH [CDR (OR (ASSOC ANAME ACTIONS) + (CAR (PUSH ACTIONS (CONS ANAME] + CCODE)))] + (SORT ACTIONS T) + [for A S in ACTIONS do (SETQ S (SORT (CDR A))) + (RPLACD A (CL:IF RETURNCODES + S + (CHARNAME S))] + ACTIONS]) ) @@ -295,13 +431,15 @@ NIL TEXTOBJ]) (\TEDIT.KEY.SIZE - [LAMBDA (TSTREAM SMALLER) (* ; "Edited 16-Mar-2025 13:19 by rmk") + [LAMBDA (TSTREAM SMALLER) (* ; "Edited 18-Mar-2025 16:41 by rmk") + (* ; "Edited 16-Mar-2025 13:19 by rmk") (* jds "21-Sep-85 08:58") (* ;; "Changes the font size, 2 points smaller if SMALLER, otherwise larger.") - (TEDIT.LOOKS TSTREAM (LIST 'SIZEINCREMENT (CL:IF SMALLER -2) - 2)) + (TEDIT.LOOKS TSTREAM (LIST 'SIZEINCREMENT (CL:IF SMALLER + -2 + 2))) (\TEDIT.SHOWCARETLOOKS TSTREAM]) (\TEDIT.SUBSCRIPTSEL @@ -1054,7 +1192,8 @@ (DEFINEQ (\TEDIT.READTABLE - [LAMBDA NIL (* ; "Edited 15-Mar-2025 13:51 by rmk") + [LAMBDA NIL (* ; "Edited 18-Mar-2025 11:08 by rmk") + (* ; "Edited 15-Mar-2025 13:51 by rmk") (* ; "Edited 11-Mar-2025 22:49 by rmk") (* ; "Edited 24-Dec-2023 09:54 by rmk") (* ; "Edited 20-Apr-2018 07:59 by rmk:") @@ -1064,7 +1203,7 @@ (LET [(RTBL (create READTABLEP READMACRODEFS _ (HASHARRAY 50] - (TEDIT.INSTALL.KEYBINDINGS NIL RTBL) + (TEDIT.INSTALL.CHARBINDINGS NIL RTBL) RTBL]) (\TEDIT.WORDBOUND.READTABLE @@ -1297,7 +1436,7 @@ ) -(RPAQQ TEDIT.KEYACTIONS +(RPAQQ TEDIT.CHARACTIONS ( (* ;; "This defines the implementation of the named actions. They are activated by keybinding specifications given to TEDIT.INSTALL.KEYBINDINGS.") @@ -1431,7 +1570,7 @@ (WHEELSCROLL-LEFT (WHEELSCROLL 'HORIZONTAL)) (WHEELSCROLL-RIGHT (WHEELSCROLL 'HORIZONTAL T)))) -(RPAQQ TEDIT.KEYBINDINGS +(RPAQQ TEDIT.CHARBINDINGS ( (* ;; "Establishes key bindings for particular Tedit key actions. Function,xxx roughly correspond to Koto release notes, but this preserves the immediately preceding assignments if those drifted away from the Koto notes. There is no obvious way of typing Function. Maybe Meta,^xxx instead, as in DORADO.KEYBINDINGS. (But CTRL collapses upper and lower case).") @@ -1557,7 +1696,7 @@ (CLIPBOARD-COPY "Meta,C" "Meta,c") (CLIPBOARD-EXTRACT "Meta,X" "Meta,x"))) -(RPAQQ TEDIT.DORADO.KEYBINDINGS +(RPAQQ TEDIT.DORADO.CHARBINDINGS ( (* ;; "Taken from lispusers>TKDORADO, these make the indicatedd Tedit commands available from the Dorado keyboard.") @@ -1613,7 +1752,7 @@ (DEFINEQ (TEDIT.BUTTONS.BUILD - [LAMBDA (BUTTONSPEC TITLE NROWS KEYBINDINGS) (* ; "Edited 17-Mar-2025 18:29 by rmk") + [LAMBDA (BUTTONSPEC TITLE NROWS KEYBINDINGS) (* ; "Edited 18-Mar-2025 15:47 by rmk") (* ; "Edited 15-Mar-2025 15:24 by rmk") (* ; "Edited 5-Nov-85 15:35 by lmm") @@ -1624,11 +1763,11 @@ (CL:UNLESS BUTTONSPEC (SETQ BUTTONSPEC TEDIT.BUTTONS.SPEC)) (CL:UNLESS TITLE (SETQ TITLE '(Tedit Buttons))) (* ; "List for the Shrink button label") - (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.KEYBINDINGS)) + (CL:UNLESS KEYBINDINGS (SETQ KEYBINDINGS TEDIT.CHARBINDINGS)) (* ;; "The constructed menu will bksysbuf a character bound to action1 if the shift is not down, otherwise a character bound to action2. action2 is action1 if it is not specified. Buttons with no actions are skipped.") - (LET (ICONWINDOW ITEMS) + [LET (ITEMS) (SETQ ITEMS (for BUTTON CHARS in BUTTONSPEC eachtime (CL:WHEN (AND (CDR BUTTON) (NULL (CDDR BUTTON))) @@ -1640,47 +1779,37 @@ (CHARCODE.DECODE CHAR))] collect (LIST (TEDIT.BUTTONBITMAP.FILL (CAR BUTTON)) CHARS))) - [SETQ ICONWINDOW (SHRINKW (ADDMENU [create MENU - ITEMS _ ITEMS - TITLE _ (CL:IF (LISTP TITLE) - (SUBSTRING TITLE 2 -2) - TITLE) - MENUROWS _ (OR NROWS 1) - WHENSELECTEDFN _ - (FUNCTION (LAMBDA (X) - (CL:WHEN - (EQ '\TEDIT.PROCENTRYFN - (FETCH (PROCESS + (SETQ TEDIT.BUTTONS.WINDOW (ADDMENU [create MENU + ITEMS _ ITEMS + TITLE _ (CL:IF (LISTP TITLE) + (SUBSTRING TITLE 2 -2) + TITLE) + MENUROWS _ (OR NROWS 1) + WHENSELECTEDFN _ + (FUNCTION (LAMBDA (X) + (CL:WHEN + (EQ '\TEDIT.PROCENTRYFN + (FETCH (PROCESS PROCTTYENTRYFN - ) - OF (TTY.PROCESS))) - [BKSYSCHARCODE - (CL:IF (SHIFTDOWNP - 'SHIFT) - (CADR (CADR X)) - (CAR (CADR X)))])] - NIL - (create POSITION - XCOORD _ - (PLUS (DIFFERENCE (QUOTIENT SCREENWIDTH 2) - (QUOTIENT (TIMES (BITMAPWIDTH - + ) + OF (TTY.PROCESS))) + [BKSYSCHARCODE + (CL:IF (SHIFTDOWNP + 'SHIFT) + (CADR (CADR X)) + (CAR (CADR X)))])] + NIL + (create POSITION + XCOORD _ + (PLUS (DIFFERENCE (QUOTIENT SCREENWIDTH 2) + (QUOTIENT (TIMES (BITMAPWIDTH + TEDIT.BUTTONBITMAP - ) - (LENGTH ITEMS)) - 2)) - (TIMES 2 WBorder)) - YCOORD _ 0)) - (TEDIT.BUTTONBITMAP.FILL TITLE) - '(0 . 0] - [WINDOWPROP ICONWINDOW 'BUTTONEVENTFN (FUNCTION (LAMBDA (ICONW) - (CL:WHEN (LASTMOUSESTATE (OR LEFT - MIDDLE)) - (CURSOR (PROG1 (CURSOR - WAITINGCURSOR - ) - (EXPANDW ICONW))))] - (SETQ TEDIT.BUTTONS.WINDOW ICONWINDOW)))]) + ) + (LENGTH ITEMS)) + 2)) + (TIMES 2 WBorder)) + YCOORD _ 0])]) (TEDIT.BUTTONBITMAP.FILL [LAMBDA (X) (* ; "Edited 16-Mar-2025 21:12 by rmk") @@ -1719,26 +1848,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3873 13684 (TEDIT.INSTALL.KEYBINDINGS 3883 . 6956) (TEDIT.CLEAR.KEYBINDINGS 6958 . 9542 -) (TEDIT.GET.ACTION 9544 . 11963) (TEDIT.GET.BINDING 11965 . 13682)) (13744 21534 ( -\TEDIT.KEY.CHARLOOKS 13754 . 14696) (\TEDIT.KEY.QUAD 14698 . 16791) (\TEDIT.DEFAULTSSEL 16793 . 17404) - (\TEDIT.SETDEFAULT.FROM.SEL 17406 . 18083) (\TEDIT.KEY.SIZE 18085 . 18535) (\TEDIT.SUBSCRIPTSEL 18537 - . 18740) (\TEDIT.SUPERSCRIPTSEL 18742 . 18946) (\TEDIT.KEY.TRANSFORM 18948 . 20523) ( -\TEDIT.KEY.OPENLINE 20525 . 20979) (\TEDIT.KEY.FAMILYN 20981 . 21532)) (21535 21824 (CAP-CASECODE -21545 . 21822)) (21858 24484 (\TEDIT.SHOWCARETLOOKS 21868 . 23577) (\TEDIT.DESCRIBEFONT 23579 . 24482) -) (24515 38572 (\TEDIT.ONECHAR.BACKWARD 24525 . 25654) (\TEDIT.ONECHAR.FORWARD 25656 . 26874) ( -\TEDIT.ONELINE.UP 26876 . 29837) (\TEDIT.ONELINE.DOWN 29839 . 31496) (\TEDIT.ONELINE.MOVE 31498 . -33712) (\TEDIT.ONEWORD.BACKWARD 33714 . 34751) (\TEDIT.ONEWORD.FORWARD 34753 . 35789) ( -\TEDIT.LINE.BEGIN 35791 . 36721) (\TEDIT.LINE.END 36723 . 37811) (\TEDIT.DOCUMENT.BEGIN 37813 . 38172) - (\TEDIT.DOCUMENT.END 38174 . 38570)) (38573 40417 (\TEDIT.LINEDELETE.FORWARD 38583 . 39483) ( -\TEDIT.LINEDELETE.BACKWARD 39485 . 40415)) (40418 42676 (\TEDIT.KEY.NEST 40428 . 42674)) (42730 50635 -(\TEDIT.KEY.FIND 42740 . 47775) (\TEDIT.KEY.FIND.SEARCHSTRING 47777 . 48917) (\TEDIT.GET.TARGET.STRING - 48919 . 50633)) (50666 53298 (\TEDIT.KEY.SUBSTITUTE 50676 . 50897) (\TEDIT.MANPAGE 50899 . 52146) ( -\TEDIT.CALL.ED 52148 . 52978) (\TEDIT.SELECT.ALL 52980 . 53296)) (53325 58905 (\TEDIT.CLIPBOARD 53335 - . 55090) (\TEDIT.COPYTOCLIPBOARD 55092 . 55872) (\TEDIT.EXTRACTTOCLIPBOARD 55874 . 56069) ( -\TEDIT.WRITE.SEL 56071 . 58903)) (59257 70862 (\TEDIT.READTABLE 59267 . 60093) ( -\TEDIT.WORDBOUND.READTABLE 60095 . 62724) (TEDIT.GETSYNTAX 62726 . 64245) (TEDIT.SETSYNTAX 64247 . -65452) (TEDIT.GETFUNCTION 65454 . 66626) (TEDIT.SETFUNCTION 66628 . 68614) (TEDIT.WORDGET 68616 . -68877) (TEDIT.WORDSET 68879 . 69510) (TEDIT.ATOMBOUND.READTABLE 69512 . 70860)) (81443 88578 ( -TEDIT.BUTTONS.BUILD 81453 . 86846) (TEDIT.BUTTONBITMAP.FILL 86848 . 88576))))) + (FILEMAP (NIL (4186 8407 (CHARNAME 4196 . 8405)) (8463 22229 (TEDIT.INSTALL.CHARBINDINGS 8473 . 11656) + (TEDIT.CLEAR.CHARBINDINGS 11658 . 14249) (TEDIT.GET.CHARACTION 14251 . 16787) (TEDIT.GET.CHARBINDING +16789 . 18713) (TEDIT.GET.ALL.CHARBINDINGS 18715 . 20369) (TEDIT.GET.ALL.CHARACTIONS 20371 . 22227)) ( +22289 30257 (\TEDIT.KEY.CHARLOOKS 22299 . 23241) (\TEDIT.KEY.QUAD 23243 . 25336) (\TEDIT.DEFAULTSSEL +25338 . 25949) (\TEDIT.SETDEFAULT.FROM.SEL 25951 . 26628) (\TEDIT.KEY.SIZE 26630 . 27258) ( +\TEDIT.SUBSCRIPTSEL 27260 . 27463) (\TEDIT.SUPERSCRIPTSEL 27465 . 27669) (\TEDIT.KEY.TRANSFORM 27671 + . 29246) (\TEDIT.KEY.OPENLINE 29248 . 29702) (\TEDIT.KEY.FAMILYN 29704 . 30255)) (30258 30547 ( +CAP-CASECODE 30268 . 30545)) (30581 33207 (\TEDIT.SHOWCARETLOOKS 30591 . 32300) (\TEDIT.DESCRIBEFONT +32302 . 33205)) (33238 47295 (\TEDIT.ONECHAR.BACKWARD 33248 . 34377) (\TEDIT.ONECHAR.FORWARD 34379 . +35597) (\TEDIT.ONELINE.UP 35599 . 38560) (\TEDIT.ONELINE.DOWN 38562 . 40219) (\TEDIT.ONELINE.MOVE +40221 . 42435) (\TEDIT.ONEWORD.BACKWARD 42437 . 43474) (\TEDIT.ONEWORD.FORWARD 43476 . 44512) ( +\TEDIT.LINE.BEGIN 44514 . 45444) (\TEDIT.LINE.END 45446 . 46534) (\TEDIT.DOCUMENT.BEGIN 46536 . 46895) + (\TEDIT.DOCUMENT.END 46897 . 47293)) (47296 49140 (\TEDIT.LINEDELETE.FORWARD 47306 . 48206) ( +\TEDIT.LINEDELETE.BACKWARD 48208 . 49138)) (49141 51399 (\TEDIT.KEY.NEST 49151 . 51397)) (51453 59358 +(\TEDIT.KEY.FIND 51463 . 56498) (\TEDIT.KEY.FIND.SEARCHSTRING 56500 . 57640) (\TEDIT.GET.TARGET.STRING + 57642 . 59356)) (59389 62021 (\TEDIT.KEY.SUBSTITUTE 59399 . 59620) (\TEDIT.MANPAGE 59622 . 60869) ( +\TEDIT.CALL.ED 60871 . 61701) (\TEDIT.SELECT.ALL 61703 . 62019)) (62048 67628 (\TEDIT.CLIPBOARD 62058 + . 63813) (\TEDIT.COPYTOCLIPBOARD 63815 . 64595) (\TEDIT.EXTRACTTOCLIPBOARD 64597 . 64792) ( +\TEDIT.WRITE.SEL 64794 . 67626)) (67980 79695 (\TEDIT.READTABLE 67990 . 68926) ( +\TEDIT.WORDBOUND.READTABLE 68928 . 71557) (TEDIT.GETSYNTAX 71559 . 73078) (TEDIT.SETSYNTAX 73080 . +74285) (TEDIT.GETFUNCTION 74287 . 75459) (TEDIT.SETFUNCTION 75461 . 77447) (TEDIT.WORDGET 77449 . +77710) (TEDIT.WORDSET 77712 . 78343) (TEDIT.ATOMBOUND.READTABLE 78345 . 79693)) (90279 96598 ( +TEDIT.BUTTONS.BUILD 90289 . 94866) (TEDIT.BUTTONBITMAP.FILL 94868 . 96596))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index e7f7cacc196ff55b7955335d6f245ba5a68d7be4..95f6663e6d04d2b741a3f156d25ca79d5e9f6c85 100644 GIT binary patch delta 4066 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 diff --git a/library/tedit/TEDIT-RELEASENOTES.TEDIT b/library/tedit/TEDIT-RELEASENOTES.TEDIT index 8b8c58c70dcbb67719287f38ee1a1acdd3f56d38..0804a5969e17ef0ae30ed79c8fbfcca69811d51a 100644 GIT binary patch delta 8131 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 delta 6297 zcmai2TWlOx8QxjPY3(+N@3-8J-CXS2F+|)-NE(QL0Au?O4`OJ6s@UXRdy@am0tt` zL-AAeD{3WBD^Ww@)FV~js0K&EiYl&)`(iz)#Y(N!qB29o)u0&muZ2bWYbJT-T!uy}6y z;%v7?^t(HzI%H>aa_3!7|7_R3&Zwrs`nN9(=(l%0^B~2L5_Gj^kG|70eXJZwjI~m5 zD_jXnVSU5I@oU!`P&6$=)sN#K(P3Txs%LB%>ieZq^mMG&BoN%kemT&8=-H>e-h-X; zQZ4E6{{HT*Z1suWA*86E>Yd|`c3Dd(kI${LOc2ee}9u^xVU-YR|8`A2nmP#;RQJQLF zr4$x9F|uE|9{6a~)BZ+Ttw5}}?mtl~acq=~<`HxoZ|GC2y^?_6C}AY)NKaU*#ggf* z$$SqgmU48kf4|6ba&dWnaryMct}B=PT8MC0yBGZ8It=xV!7q~g_F%=krOQM6`1Z}A zH+U|d9NysfpNBtx$?XN$EEfU4(Q_8Fu&6=c7FBE3=+U~b@wg@W8O*eK==;ofTK2?lX#oc5js;i33UOc5= z*mHdUERWVrztjknc=Wg0O9TDv-ossJ2d(wXdw-*Uz5h(_+4*x9=H}1MBu5MdD>XjB z_D3smR0@(CC6aLuOF=9LPlgSRsi;$|@iq0*=$3vo+&ZrM#`rkZ`_A|sus07(yyJ~H zav@WDls9J&EG~Lo`mg0-{q^!8{r&QEN07U$e_0vO4_EH#z0p^@yK=eQpgg$_eJ?uT zb?A4^XI}^4Tt3$;pF>!7>Z8>IUMDEcP5`pGOFnmEY1j|Rdd2`A7TfS4RP3|?4`a_b zgO5G{uE~=CT<>qmdozXHbt%Z^(Jb(>EO0&x{4fiA+69n%!vT``3W$?y{;ESkz4=61 zposw94VQtc4g)Ygc8Ee&JV;BySbQFDEfssD{#Jo2>&PD(AUn z{p}W%Zny>VgFry;#sbLWSir&}*iPzabdUg%^Z*t>{)Pq2EP`~?2*ZPehgO%dNLjUe zCeloq9WrK2AK|GTI2L)$aF8t$R|cSDsVWQwAoH5Q0tHYgSu~TrxzH9uGuG4!#r6WQ z8onP6fp9=z@Btw3M=}te3LsX(EAm3l1L!|9i?DEG*~(2>-bq8jL8cKs8zYQ1cMu9M z?4~W{h*oqkxrZe&|4LD`WCk&DlVdkGC zlcLReAILTzEYgz>M9GupjJF}Yi$JDlBN&FK`2~=Xyb1onWZ4=$7<|+qqgVhT-!-CN z1RxiS_ig}C?!e$9@-*qoHq>^4odxNPJmgqp#31%wp*hmAV=4DfVr84OW)R>=f!2BG zPfb&?Y(5Feu)+D?rSmADbQ6Jz0=Dr*q$N<#BkA87Uu%TNkM39eM?>_ ziM_79=OO@to;$3BBJM>9cZTLD3WDC5w;1{ zQcWP_vVL)gZHj9E7{4J;Vkis%98P*_0bfZoL?2$;hSKI0a=zo*0HAor1o1hcE#)Km&DXU~f@ zvf3qA1j_!C@tnE{U_NbjjCr27vzazf?8q95hnnrQfx`OvAldD#hDa@faSEs zPG36k$Dh4zNi**n2ha<>`)&rvy_f;K{RT+Y4cpWpAkraFp_TETx&XWJd%(XVQdRy1 zbRaDw`Q4EJ3?SaT{tS>inFW5I1-_O6Jl?!^m?Zn;m&OUxesB+Foa7d>z#p?f>Vik^ z|8yBmX!D$lfMS~p0l+x!GB77?*O`~Pt>2T9`%>1+Ab*chv7MgVS&o(3Qhw)Bke!`V zq>De3R$T`ESI?;|@K_7L?@c}j%1oA$x|_h5av2iFOPwjayy`Nx%L@n8bW{pxJJ%B5 zq_U*}4P2`e#;?`jzClcfzL5dEiy0u70^l8IV?A{^zU Date: Tue, 18 Mar 2025 21:58:28 -0700 Subject: [PATCH 10/26] When the initial region isn't provided or can't be inferred --- library/tedit/TEDIT-RELEASENOTES.TEDIT | Bin 34296 -> 34644 bytes library/tedit/TEDIT-WINDOW | 119 +++++++++++++------------ library/tedit/TEDIT-WINDOW.LCOM | Bin 65850 -> 65869 bytes 3 files changed, 60 insertions(+), 59 deletions(-) diff --git a/library/tedit/TEDIT-RELEASENOTES.TEDIT b/library/tedit/TEDIT-RELEASENOTES.TEDIT index 0804a5969e17ef0ae30ed79c8fbfcca69811d51a..45083bd29a2f6b4f493f32ba0645845f85f0abba 100644 GIT binary patch delta 365 zcmY*Vu}Z{15Y3&OkXYK-h*Md~34VjYq`A8yV7-@}T!veA!|vw733|N;f>`+zBBZnN zC;S*oXQPb^!#?Ic-kX{4{rKx?{0{N1s1Zt`6k7f?2;~g821}~8Ajx9s)fPO9NRua_ zpd;yP5L!Zww5mOrYT!H4(sZ!gLSxN_B>qizWx!42~R#5}4s7LTecYuFzVP7ejXIc*BmA z3Y2hbR(syGLu|mb9t2oik>LwCR`A3)O=kT*xvI~j`-tC&D-Ph0YZ5@{BmsoZ!ONRH Wog6WG=s)e{aq{{YMF`{PyN@4DlyhDH delta 39 vcmcc8$MmC{X@dgi<{g|_jGGs58)r=BDB;_zUZO0_HE9n6LkbsDXVoqMDuWHd diff --git a/library/tedit/TEDIT-WINDOW b/library/tedit/TEDIT-WINDOW index 85a845575..514b957ef 100644 --- a/library/tedit/TEDIT-WINDOW +++ b/library/tedit/TEDIT-WINDOW @@ -1,13 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "17-Mar-2025 17:50:21" {WMEDLEY}tedit>TEDIT-WINDOW.;781 235788 +(FILECREATED "18-Mar-2025 21:56:50" {WMEDLEY}tedit>TEDIT-WINDOW.;782 236106 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT-WINDOWCOMS) - (FNS TEDIT.DEFAULT.MENUFN) + :CHANGES-TO (FNS \TEDIT.WINDOW.CREATE \TEDIT.WINDOW.GETREGION) - :PREVIOUS-DATE "16-Mar-2025 21:45:12" {WMEDLEY}TEDIT>TEDIT-WINDOW.;777) + :PREVIOUS-DATE "17-Mar-2025 17:50:21" {WMEDLEY}tedit>TEDIT-WINDOW.;781) (PRETTYCOMPRINT TEDIT-WINDOWCOMS) @@ -458,7 +457,8 @@ WINDOW]) (\TEDIT.WINDOW.GETREGION - [LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 19-Feb-2025 16:48 by rmk") + [LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 18-Mar-2025 21:52 by rmk") + (* ; "Edited 19-Feb-2025 16:48 by rmk") (* ; "Edited 18-Feb-2025 10:09 by rmk") (LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) WIDTH HEIGHT) @@ -468,28 +468,29 @@ (CL:WHEN (TXTFILE TSTREAM) (printout PROMPTWINDOW " for " 2 (GETTEXTPROP TSTREAM 'FILENAME))) (TERPRI PROMPTWINDOW) - [SETQ WIDTH (OR (GETTEXTPROP TEXTOBJ 'OPENWIDTH) - (for PARALOOKS in (FGETTOBJ TEXTOBJ TXTPARALOOKSLIST) - largest (GETPLOOKS PARALOOKS RIGHTMAR) - finally (RETURN (CL:IF (AND $$EXTREME (IGREATERP $$EXTREME 0)) - $$EXTREME - (TIMES 6 PTSPERINCH))] - [SETQ HEIGHT (if (GETTEXTPROP TEXTOBJ 'OPENHEIGHT) - elseif (ZEROP (TEXTLEN TEXTOBJ)) - then 50 - else (for I L (TEXTLEN _ (TEXTLEN TEXTOBJ)) - (CHNO _ 1) from 1 to 20 while (ILEQ CHNO TEXTLEN) - sum (SETQ L (\TEDIT.FORMATLINE TSTREAM CHNO)) - (SETQ CHNO (FGETLD L LCHARLIM)) - (FGETLD L LHEIGHT] (* ; "36 for right margin selection") - (add WIDTH \TEDIT.LINEREGION.WIDTH 36 (CL:IF (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE) - 0 - \TEDIT.OP.WIDTH)) - (add HEIGHT PHEIGHT (TIMES 3 WBorder) - (FONTPROP WindowTitleDisplayStream 'HEIGHT)) (if (IGREATERP (TEXTLEN TEXTOBJ) 0) - then (GETBOXREGION WIDTH HEIGHT) + then [SETQ WIDTH (OR (GETTEXTPROP TEXTOBJ 'OPENWIDTH) + (for PARALOOKS in (FGETTOBJ TEXTOBJ TXTPARALOOKSLIST) + largest (GETPLOOKS PARALOOKS RIGHTMAR) + finally (RETURN (CL:IF (AND $$EXTREME (IGREATERP $$EXTREME 0)) + $$EXTREME + (TIMES 6 PTSPERINCH))] + [SETQ HEIGHT (if (GETTEXTPROP TEXTOBJ 'OPENHEIGHT) + elseif (ZEROP (TEXTLEN TEXTOBJ)) + then 50 + else (for I L (TEXTLEN _ (TEXTLEN TEXTOBJ)) + (CHNO _ 1) from 1 to 20 while (ILEQ CHNO TEXTLEN) + sum (SETQ L (\TEDIT.FORMATLINE TSTREAM CHNO)) + (SETQ CHNO (FGETLD L LCHARLIM)) + (FGETLD L LHEIGHT] + (* ; "36 for right margin selection") + (add WIDTH \TEDIT.LINEREGION.WIDTH 36 (CL:IF (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE) + 0 + \TEDIT.OP.WIDTH)) + (add HEIGHT PHEIGHT (TIMES 3 WBorder) + (FONTPROP WindowTitleDisplayStream 'HEIGHT)) + (GETBOXREGION WIDTH HEIGHT) else (GETREGION WIDTH HEIGHT]) (\TEDIT.WINDOW.SETUP @@ -3709,38 +3710,38 @@ (RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _ TEDIT.ICON.TITLE.REGION)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (18676 19572 (TEDIT.DEFER.UPDATES 18686 . 19570)) (19573 44699 (\TEDIT.WINDOW.CREATE -19583 . 26195) (\TEDIT.WINDOW.GETREGION 26197 . 28382) (\TEDIT.WINDOW.SETUP 28384 . 32497) ( -\TEDIT.MINIMAL.WINDOW.SETUP 32499 . 40701) (\TEDIT.CLEARPANE 40703 . 41420) (\TEDIT.FILL.PANES 41422 - . 44697)) (44700 67607 (\TEDIT.CURSORMOVEDFN 44710 . 49583) (\TEDIT.CURSOROUTFN 49585 . 50030) ( -\TEDIT.ACTIVE.WINDOWP 50032 . 51083) (\TEDIT.EXPANDFN 51085 . 51648) (\TEDIT.MAINW 51650 . 52930) ( -\TEDIT.MAINSTREAM 52932 . 53199) (\TEDIT.PRIMARYPANE 53201 . 53971) (\TEDIT.PANELIST 53973 . 54469) ( -\TEDIT.NEWREGIONFN 54471 . 56987) (\TEDIT.SET.WINDOW.EXTENT 56989 . 62243) (\TEDIT.SHRINK.ICONCREATE -62245 . 64978) (\TEDIT.SHRINKFN 64980 . 65389) (\TEDIT.PANEREGION 65391 . 67605)) (67639 99103 ( -\TEDIT.BUTTONEVENTFN 67649 . 80211) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80213 . 86936) ( -\TEDIT.BUTTONEVENTFN.GETOPERATION 86938 . 88780) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 88782 . 92019) ( -\TEDIT.BUTTONEVENTFN.INACTIVE 92021 . 94363) (\TEDIT.BUTTONEVENTFN.INTITLE 94365 . 96200) ( -\TEDIT.COPYINSERTFN 96202 . 97334) (\TEDIT.FOREIGN.COPY 97336 . 99101)) (99104 116213 ( -\TEDIT.PANE.SPLIT 99114 . 103593) (\TEDIT.SPLITW 103595 . 111054) (\TEDIT.UNSPLITW 111056 . 114870) ( -\TEDIT.LINKPANES 114872 . 115635) (\TEDIT.UNLINKPANE 115637 . 116211)) (117570 118461 (TEDITWINDOWP -117580 . 118459)) (118498 121601 (TEDIT.GETINPUT 118508 . 120951) (\TEDIT.MAKEFILENAME 120953 . 121599 -)) (121650 129951 (TEDIT.PROMPTWINDOW 121660 . 121974) (TEDIT.PROMPTPRINT 121976 . 124603) ( -TEDIT.PROMPTCLEAR 124605 . 126324) (TEDIT.PROMPTFLASH 126326 . 128258) (\TEDIT.PROMPT.PAGEFULLFN -128260 . 129949)) (130189 139673 (\TEDIT.FILENAME 130199 . 130971) (\TEDIT.DEFAULT.TITLE 130973 . -133352) (\TEDIT.WINDOW.TITLE 133354 . 135523) (\TEDIT.LIKELY.FILENAME 135525 . 137312) ( -\TEDIT.UPDATE.TITLE 137314 . 139671)) (139716 148244 (TEDIT.DEACTIVATE.WINDOW 139726 . 145844) ( -\TEDIT.RESHAPEFN 145846 . 148016) (\TEDIT.REPAINTFN 148018 . 148242)) (148245 190624 (\TEDIT.SCROLLFN -148255 . 150500) (\TEDIT.SCROLLCH.TOP 150502 . 152613) (\TEDIT.SCROLLCH.BOTTOM 152615 . 156945) ( -\TEDIT.SCROLLUP 156947 . 162564) (\TEDIT.TOPLINE.YTOP 162566 . 164235) (\TEDIT.SCROLLDOWN 164237 . -171167) (\TEDIT.SCROLL.CARET 171169 . 174007) (\TEDIT.VISIBLECARETP 174009 . 176303) ( -\TEDIT.VISIBLECHARP 176305 . 177396) (\TEDIT.BITMAPLINES 177398 . 181318) (\TEDIT.SETPANE.TOPLINE -181320 . 182111) (\TEDIT.SHIFTLINES 182113 . 190622)) (190625 201494 (\TEDIT.ONSCREEN? 190635 . 195186 -) (\TEDIT.ONSCREEN.REGION 195188 . 198839) (\TEDIT.AFTERMOVEFN 198841 . 199738) (OFFSCREENP 199740 . -201492)) (201536 204153 (\TEDIT.PROCIDLEFN 201546 . 203083) (\TEDIT.PROCENTRYFN 203085 . 203530) ( -\TEDIT.PROCEXITFN 203532 . 204151)) (204232 217386 (\TEDIT.DOWNCARET 204242 . 205035) ( -\TEDIT.FLASHCARET 205037 . 207148) (\TEDIT.UPCARET 207150 . 208254) (TEDIT.NORMALIZECARET 208256 . -211474) (\TEDIT.SETCARET 211476 . 216756) (\TEDIT.CARET 216758 . 217384)) (217420 229747 ( -TEDIT.ADD.MENUITEM 217430 . 219721) (TEDIT.DEFAULT.MENUFN 219723 . 226959) (TEDIT.REMOVE.MENUITEM -226961 . 227958) (\TEDIT.CREATEMENU 227960 . 228525) (\TEDIT.MENU.WHENHELDFN 228527 . 229432) ( -\TEDIT.MENU.WHENSELECTEDFN 229434 . 229745))))) + (FILEMAP (NIL (18658 19554 (TEDIT.DEFER.UPDATES 18668 . 19552)) (19555 45017 (\TEDIT.WINDOW.CREATE +19565 . 26177) (\TEDIT.WINDOW.GETREGION 26179 . 28700) (\TEDIT.WINDOW.SETUP 28702 . 32815) ( +\TEDIT.MINIMAL.WINDOW.SETUP 32817 . 41019) (\TEDIT.CLEARPANE 41021 . 41738) (\TEDIT.FILL.PANES 41740 + . 45015)) (45018 67925 (\TEDIT.CURSORMOVEDFN 45028 . 49901) (\TEDIT.CURSOROUTFN 49903 . 50348) ( +\TEDIT.ACTIVE.WINDOWP 50350 . 51401) (\TEDIT.EXPANDFN 51403 . 51966) (\TEDIT.MAINW 51968 . 53248) ( +\TEDIT.MAINSTREAM 53250 . 53517) (\TEDIT.PRIMARYPANE 53519 . 54289) (\TEDIT.PANELIST 54291 . 54787) ( +\TEDIT.NEWREGIONFN 54789 . 57305) (\TEDIT.SET.WINDOW.EXTENT 57307 . 62561) (\TEDIT.SHRINK.ICONCREATE +62563 . 65296) (\TEDIT.SHRINKFN 65298 . 65707) (\TEDIT.PANEREGION 65709 . 67923)) (67957 99421 ( +\TEDIT.BUTTONEVENTFN 67967 . 80529) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80531 . 87254) ( +\TEDIT.BUTTONEVENTFN.GETOPERATION 87256 . 89098) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 89100 . 92337) ( +\TEDIT.BUTTONEVENTFN.INACTIVE 92339 . 94681) (\TEDIT.BUTTONEVENTFN.INTITLE 94683 . 96518) ( +\TEDIT.COPYINSERTFN 96520 . 97652) (\TEDIT.FOREIGN.COPY 97654 . 99419)) (99422 116531 ( +\TEDIT.PANE.SPLIT 99432 . 103911) (\TEDIT.SPLITW 103913 . 111372) (\TEDIT.UNSPLITW 111374 . 115188) ( +\TEDIT.LINKPANES 115190 . 115953) (\TEDIT.UNLINKPANE 115955 . 116529)) (117888 118779 (TEDITWINDOWP +117898 . 118777)) (118816 121919 (TEDIT.GETINPUT 118826 . 121269) (\TEDIT.MAKEFILENAME 121271 . 121917 +)) (121968 130269 (TEDIT.PROMPTWINDOW 121978 . 122292) (TEDIT.PROMPTPRINT 122294 . 124921) ( +TEDIT.PROMPTCLEAR 124923 . 126642) (TEDIT.PROMPTFLASH 126644 . 128576) (\TEDIT.PROMPT.PAGEFULLFN +128578 . 130267)) (130507 139991 (\TEDIT.FILENAME 130517 . 131289) (\TEDIT.DEFAULT.TITLE 131291 . +133670) (\TEDIT.WINDOW.TITLE 133672 . 135841) (\TEDIT.LIKELY.FILENAME 135843 . 137630) ( +\TEDIT.UPDATE.TITLE 137632 . 139989)) (140034 148562 (TEDIT.DEACTIVATE.WINDOW 140044 . 146162) ( +\TEDIT.RESHAPEFN 146164 . 148334) (\TEDIT.REPAINTFN 148336 . 148560)) (148563 190942 (\TEDIT.SCROLLFN +148573 . 150818) (\TEDIT.SCROLLCH.TOP 150820 . 152931) (\TEDIT.SCROLLCH.BOTTOM 152933 . 157263) ( +\TEDIT.SCROLLUP 157265 . 162882) (\TEDIT.TOPLINE.YTOP 162884 . 164553) (\TEDIT.SCROLLDOWN 164555 . +171485) (\TEDIT.SCROLL.CARET 171487 . 174325) (\TEDIT.VISIBLECARETP 174327 . 176621) ( +\TEDIT.VISIBLECHARP 176623 . 177714) (\TEDIT.BITMAPLINES 177716 . 181636) (\TEDIT.SETPANE.TOPLINE +181638 . 182429) (\TEDIT.SHIFTLINES 182431 . 190940)) (190943 201812 (\TEDIT.ONSCREEN? 190953 . 195504 +) (\TEDIT.ONSCREEN.REGION 195506 . 199157) (\TEDIT.AFTERMOVEFN 199159 . 200056) (OFFSCREENP 200058 . +201810)) (201854 204471 (\TEDIT.PROCIDLEFN 201864 . 203401) (\TEDIT.PROCENTRYFN 203403 . 203848) ( +\TEDIT.PROCEXITFN 203850 . 204469)) (204550 217704 (\TEDIT.DOWNCARET 204560 . 205353) ( +\TEDIT.FLASHCARET 205355 . 207466) (\TEDIT.UPCARET 207468 . 208572) (TEDIT.NORMALIZECARET 208574 . +211792) (\TEDIT.SETCARET 211794 . 217074) (\TEDIT.CARET 217076 . 217702)) (217738 230065 ( +TEDIT.ADD.MENUITEM 217748 . 220039) (TEDIT.DEFAULT.MENUFN 220041 . 227277) (TEDIT.REMOVE.MENUITEM +227279 . 228276) (\TEDIT.CREATEMENU 228278 . 228843) (\TEDIT.MENU.WHENHELDFN 228845 . 229750) ( +\TEDIT.MENU.WHENSELECTEDFN 229752 . 230063))))) STOP diff --git a/library/tedit/TEDIT-WINDOW.LCOM b/library/tedit/TEDIT-WINDOW.LCOM index 3a75a4695f6f22ceb5a1f69e5f003e0ef7b98264..c0580944dfbe2325a6d087d54b0c6c684e82ed65 100644 GIT binary patch delta 424 zcmdnh#B#QYWkQ6og|2U6k*<+}k*R`_p_Qqbm8rqRY%574O$9C`LsUs)Ln{O0iTlKS zV?tbAJVW%tJ^ft#!}Z)Ia+(LbP6p%IQ>FFscq$HN4reHPEaIzqy zFjiMoYjGGU7#W)x8kkMaWR#hlbHzYFQ^6`A$TiHK zp%CL1!q~DnnD#$y~gZnx>`-ZvK8D zF0R4OL7o92{y_@H#^x~n{sF-7atZNJFgCQD9B@NIQNajkOn_sMqmRG8cQDXUV+H>J VS3eI|Pj` delta 510 zcmZvYyGz4B9LKE)Vx^$?LJ|C#$qWs>yQXR51ERUKr)e%+uC|Ixr9P@sp@<+Ng1ew( z@DFiw(80;U)!lzU5En;NAE@YWxZnL=pYPr8{-opTq~om8XC#Z&W)i2c4#+U|l!?*# zwmFPch$|@bUBt*t=S-YFzaE@!?Cx#W8yiq>fZ~)~7k)Nsnx;Uly0=#Qmq5btSl_@u zstSZpF|`vg(T!|2Jcx~sE?Oc0No^*RW#-wuJjaWH3KNbOK-hcRFH|snK^GY>1xeeI z6#hI}HxX7KepoJ2+oelKQ#@R^N#&EKjGS>VHlS~?W8NVA1-vChL7D3$A!E0 zt>+6iA8(7S=gYTE5CcJ;NX9DXvSaFuA;67j+-QVRjhl`>mUFOkf z*}2w;q!sD6x==dvJ0^Pc^)QuKSEGu7o$M#dtp cZwbrgd?AQb(!hP{6)4LWWF&$vUlXO5H`e)u*Z=?k From 90fdbf7dea9c769ca7c965a9b3aeb394aedab9e1 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Tue, 18 Mar 2025 23:17:40 -0700 Subject: [PATCH 11/26] Scrolling glitch when copying a line --- library/tedit/TEDIT | 56 ++++++++++++++++++++------------------- library/tedit/TEDIT.LCOM | Bin 33908 -> 33955 bytes 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/library/tedit/TEDIT b/library/tedit/TEDIT index f9b817491..cd42b2f99 100644 --- a/library/tedit/TEDIT +++ b/library/tedit/TEDIT @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "16-Mar-2025 21:48:26" {WMEDLEY}tedit>TEDIT.;783 151695 +(FILECREATED "18-Mar-2025 23:13:17" {WMEDLEY}TEDIT>TEDIT.;784 151865 :EDIT-BY rmk - :CHANGES-TO (FNS TDRIBBLE) + :CHANGES-TO (FNS \TEDIT.COPY \TEDIT.MOVE) - :PREVIOUS-DATE "16-Mar-2025 00:16:31" {WMEDLEY}tedit>TEDIT.;782) + :PREVIOUS-DATE "16-Mar-2025 21:48:26" {WMEDLEY}TEDIT>TEDIT.;783) (PRETTYCOMPRINT TEDITCOMS) @@ -1576,7 +1576,8 @@ (CL:IF BPD (\TEDIT.POPEVENT TOOBJ])]) (\TEDIT.COPY - [LAMBDA (FROMSEL TOSEL FROMTSTREAM TOTSTREAM) (* ; "Edited 23-Nov-2024 22:45 by rmk") + [LAMBDA (FROMSEL TOSEL FROMTSTREAM TOTSTREAM) (* ; "Edited 18-Mar-2025 23:13 by rmk") + (* ; "Edited 23-Nov-2024 22:45 by rmk") (* ; "Edited 22-Nov-2024 15:44 by rmk") (* ; "Edited 13-Sep-2024 22:28 by rmk") (* ; "Edited 27-Aug-2024 13:37 by rmk") @@ -1643,6 +1644,7 @@ (\TEDIT.SHOWSEL TOSEL NIL TOOBJ) (* ;  "Take down anything that might thave appeared") (\TEDIT.FIXSEL TOSEL TOOBJ) + (\TEDIT.SHOWSEL TOSEL T TOOBJ) (\TEDIT.SCROLL.CARET TOTSTREAM)))]) (\TEDIT.REPLACE.SELPIECES @@ -2431,7 +2433,7 @@ (* ; "TEDIT Support information") -(RPAQQ TEDITSYSTEMDATE "16-Mar-2025 21:48:26") +(RPAQQ TEDITSYSTEMDATE "18-Mar-2025 23:13:17") @@ -2441,26 +2443,26 @@ (ADDTOVAR PRINTFILETYPES (TEDIT (TEST \TEDIT.GET.TRAILER) (EXTENSION (TEDIT)))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4820 7214 (MAKE-TEDIT-EXPORTS.ALL 4830 . 5376) (UPDATE-TEDIT 5378 . 6307) (EDIT-TEDIT -6309 . 7212)) (8722 36188 (TEDIT 8732 . 11310) (TEXTSTREAM 11312 . 13232) (TEXTSTREAMP 13234 . 13618) -(COERCETEXTSTREAM 13620 . 17831) (TEDIT.CONCAT 17833 . 21139) (TEDITSTRING 21141 . 22055) (TEDIT-SEE -22057 . 22616) (TEDIT.COPY 22618 . 24763) (TEDIT.DELETE 24765 . 26017) (TEDIT.INSERT 26019 . 28977) ( -TEDIT.TERPRI 28979 . 30093) (TEDIT.KILL 30095 . 31011) (TEDIT.QUIT 31013 . 32379) (TEDIT.MOVE 32381 . -33269) (TEDIT.STRINGWIDTH 33271 . 33942) (TEDIT.CHARWIDTH 33944 . 36186)) (36189 38130 (TEXTOBJ 36199 - . 36664) (COERCETEXTOBJ 36666 . 38128)) (39530 41300 (TDRIBBLE 39540 . 41298)) (41341 53449 ( -TEDIT.INSERT.OBJECT 41351 . 46192) (TEDIT.EDIT.OBJECT 46194 . 48535) (TEDIT.OBJECT.CHANGED 48537 . -51404) (TEDIT.MAP.OBJECTS 51406 . 52977) (\TEDIT.FIRST.OBJPIECE 52979 . 53212) (\TEDIT.NEXT.OBJPIECE -53214 . 53447)) (53472 60915 (\TEDIT.CONCAT.PAGEFRAMES 53482 . 58549) (\TEDIT.GET.PAGE.HEADINGS 58551 - . 59580) (\TEDIT.CONCAT.INSTALL.HEADINGS 59582 . 60913)) (60916 64345 (\TEDIT.MOVE.MSG 60926 . 63007) - (\TEDIT.READONLY 63009 . 64343)) (64346 79182 (TEDIT.NCHARS 64356 . 64729) (TEDIT.RPLCHARCODE 64731 - . 72746) (TEDIT.NTHCHARCODE 72748 . 75105) (TEDIT.NTHCHAR 75107 . 75365) (\TEDIT.PIECE.NTHCHARCODE -75367 . 79180)) (79228 133680 (\TEDIT1 79238 . 81315) (\TEDIT.INSERT 81317 . 87294) (\TEDIT.MOVE 87296 - . 94646) (\TEDIT.COPY 94648 . 98626) (\TEDIT.REPLACE.SELPIECES 98628 . 102608) ( -\TEDIT.INSERT.SELPIECES 102610 . 105495) (\TEDIT.RESTARTFN 105497 . 108002) (\TEDIT.CHARDELETE 108004 - . 110831) (\TEDIT.COPYPIECE 110833 . 115681) (\TEDIT.APPLY.OBJFN 115683 . 118880) (\TEDIT.DELETE -118882 . 123810) (\TEDIT.DIFFUSE.PARALOOKS 123812 . 126083) (\TEDIT.WORDDELETE 126085 . 127641) ( -\TEDIT.WORDDELETE.FORWARD 127643 . 129315) (\TEDIT.FINISHEDIT? 129317 . 133678)) (133681 134340 ( -\TEDIT.THELP 133691 . 134338)) (134374 143158 (\TEDIT.PARAPIECES 134384 . 136358) (\TEDIT.PARACHNOS -136360 . 137252) (\TEDIT.PARA.FIRST 137254 . 140121) (\TEDIT.PARA.LAST 140123 . 143156)) (143159 -151198 (\TEDIT.WORD.FIRST 143169 . 146925) (\TEDIT.WORD.LAST 146927 . 151196))))) + (FILEMAP (NIL (4835 7229 (MAKE-TEDIT-EXPORTS.ALL 4845 . 5391) (UPDATE-TEDIT 5393 . 6322) (EDIT-TEDIT +6324 . 7227)) (8737 36203 (TEDIT 8747 . 11325) (TEXTSTREAM 11327 . 13247) (TEXTSTREAMP 13249 . 13633) +(COERCETEXTSTREAM 13635 . 17846) (TEDIT.CONCAT 17848 . 21154) (TEDITSTRING 21156 . 22070) (TEDIT-SEE +22072 . 22631) (TEDIT.COPY 22633 . 24778) (TEDIT.DELETE 24780 . 26032) (TEDIT.INSERT 26034 . 28992) ( +TEDIT.TERPRI 28994 . 30108) (TEDIT.KILL 30110 . 31026) (TEDIT.QUIT 31028 . 32394) (TEDIT.MOVE 32396 . +33284) (TEDIT.STRINGWIDTH 33286 . 33957) (TEDIT.CHARWIDTH 33959 . 36201)) (36204 38145 (TEXTOBJ 36214 + . 36679) (COERCETEXTOBJ 36681 . 38143)) (39545 41315 (TDRIBBLE 39555 . 41313)) (41356 53464 ( +TEDIT.INSERT.OBJECT 41366 . 46207) (TEDIT.EDIT.OBJECT 46209 . 48550) (TEDIT.OBJECT.CHANGED 48552 . +51419) (TEDIT.MAP.OBJECTS 51421 . 52992) (\TEDIT.FIRST.OBJPIECE 52994 . 53227) (\TEDIT.NEXT.OBJPIECE +53229 . 53462)) (53487 60930 (\TEDIT.CONCAT.PAGEFRAMES 53497 . 58564) (\TEDIT.GET.PAGE.HEADINGS 58566 + . 59595) (\TEDIT.CONCAT.INSTALL.HEADINGS 59597 . 60928)) (60931 64360 (\TEDIT.MOVE.MSG 60941 . 63022) + (\TEDIT.READONLY 63024 . 64358)) (64361 79197 (TEDIT.NCHARS 64371 . 64744) (TEDIT.RPLCHARCODE 64746 + . 72761) (TEDIT.NTHCHARCODE 72763 . 75120) (TEDIT.NTHCHAR 75122 . 75380) (\TEDIT.PIECE.NTHCHARCODE +75382 . 79195)) (79243 133850 (\TEDIT1 79253 . 81330) (\TEDIT.INSERT 81332 . 87309) (\TEDIT.MOVE 87311 + . 94661) (\TEDIT.COPY 94663 . 98796) (\TEDIT.REPLACE.SELPIECES 98798 . 102778) ( +\TEDIT.INSERT.SELPIECES 102780 . 105665) (\TEDIT.RESTARTFN 105667 . 108172) (\TEDIT.CHARDELETE 108174 + . 111001) (\TEDIT.COPYPIECE 111003 . 115851) (\TEDIT.APPLY.OBJFN 115853 . 119050) (\TEDIT.DELETE +119052 . 123980) (\TEDIT.DIFFUSE.PARALOOKS 123982 . 126253) (\TEDIT.WORDDELETE 126255 . 127811) ( +\TEDIT.WORDDELETE.FORWARD 127813 . 129485) (\TEDIT.FINISHEDIT? 129487 . 133848)) (133851 134510 ( +\TEDIT.THELP 133861 . 134508)) (134544 143328 (\TEDIT.PARAPIECES 134554 . 136528) (\TEDIT.PARACHNOS +136530 . 137422) (\TEDIT.PARA.FIRST 137424 . 140291) (\TEDIT.PARA.LAST 140293 . 143326)) (143329 +151368 (\TEDIT.WORD.FIRST 143339 . 147095) (\TEDIT.WORD.LAST 147097 . 151366))))) STOP diff --git a/library/tedit/TEDIT.LCOM b/library/tedit/TEDIT.LCOM index 7b41dd3a612a99c79e1a350cc75c6a49dce1396c..373423ec11b41fdd7571ce29a8c0570b6d9c2a9a 100644 GIT binary patch delta 399 zcmey;!L+!OX+ngsg|2U6k*<+}k*R`_v6UeZnNQ4C2@P>|@eHv8lX}+X7ABesTuO$> zY7MQ74Xq4}l@yYSQj_y@3o>(3QxsAw3W|zVtrTJ)8lC+EA{8?86qMXTeS8!QEhavc zu)r|G&_GF(OT*36$JIH=)e)#s0o5X?qb3_Niin}RO2N?7(86qTG^1h?vXxM_uYZ`U zrh-*KkZYKye`v6-3($0+;buraHncLaure}JQsAl%_jPsgagD6C$;nJAN-U~`cpec1 z#+%PE{_$qKJo&V*GUMjS?|m1FIc9ouGXTMUXHF26A;6$vWMDqoK~+@9$iM&=3c()! U;lZvxn>YGJnqmv?$+9is07va=@Bjb+ delta 378 zcmZ47$@HazX+ngsnXYeQk*<+}k*R`_p_Pe+m66%RY?bfl z1ui8+RJF#&RtAsPi2(XF)*+)G_x``B*F-z%?}y>cr%`we9u>zan)od vzlDm Date: Wed, 19 Mar 2025 16:29:26 -0700 Subject: [PATCH 12/26] Making sure that the selection is updated, dealing with empty document --- library/tedit/TEDIT | 78 +++++------ library/tedit/TEDIT-FIND | 38 +++--- library/tedit/TEDIT-FIND.LCOM | Bin 9154 -> 9257 bytes library/tedit/TEDIT-FNKEYS | 172 ++++++++++++++----------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 37154 -> 37456 bytes library/tedit/TEDIT-LOOKS | 100 +++++++------- library/tedit/TEDIT-LOOKS.LCOM | Bin 37595 -> 37687 bytes library/tedit/TEDIT-MENU | 40 +++--- library/tedit/TEDIT-MENU.LCOM | Bin 47289 -> 47326 bytes library/tedit/TEDIT-RELEASENOTES.PDF | Bin 0 -> 47321 bytes library/tedit/TEDIT-RELEASENOTES.TEDIT | Bin 34644 -> 34699 bytes library/tedit/TEDIT-SELECTION | 83 +++++++----- library/tedit/TEDIT-SELECTION.LCOM | Bin 30118 -> 30293 bytes library/tedit/TEDIT.LCOM | Bin 33955 -> 34011 bytes 14 files changed, 283 insertions(+), 228 deletions(-) create mode 100644 library/tedit/TEDIT-RELEASENOTES.PDF diff --git a/library/tedit/TEDIT b/library/tedit/TEDIT index cd42b2f99..cf6d446bb 100644 --- a/library/tedit/TEDIT +++ b/library/tedit/TEDIT @@ -1,10 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "18-Mar-2025 23:13:17" {WMEDLEY}TEDIT>TEDIT.;784 151865 +(FILECREATED "19-Mar-2025 15:47:23" {WMEDLEY}tedit>TEDIT.;786 152198 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.COPY \TEDIT.MOVE) + :CHANGES-TO (FNS \TEDIT.REPLACE.SELPIECES \TEDIT.DELETE \TEDIT.COPY \TEDIT.MOVE) :PREVIOUS-DATE "16-Mar-2025 21:48:26" {WMEDLEY}TEDIT>TEDIT.;783) @@ -1648,7 +1648,8 @@ (\TEDIT.SCROLL.CARET TOTSTREAM)))]) (\TEDIT.REPLACE.SELPIECES - [LAMBDA (INSERTSELPIECES TEXTOBJ SEL) (* ; "Edited 8-Dec-2024 13:46 by rmk") + [LAMBDA (INSERTSELPIECES TEXTOBJ SEL) (* ; "Edited 19-Mar-2025 15:46 by rmk") + (* ; "Edited 8-Dec-2024 13:46 by rmk") (* ; "Edited 26-Nov-2024 17:37 by rmk") (* ; "Edited 29-Sep-2024 00:24 by rmk") (* ; "Edited 21-Sep-2024 22:12 by rmk") @@ -1670,11 +1671,10 @@  "On return, the pieces, lines, selection, and display are complete, correct, and consistent ") (CL:UNLESS (\TEDIT.READONLY TEXTOBJ) - (PROG ((POINT (GETSEL SEL POINT)) + [PROG ((POINT (GETSEL SEL POINT)) (CH# (FGETSEL SEL CH#)) (DCH (FGETSEL SEL DCH)) - (ILEN (GETSPC INSERTSELPIECES SPLEN)) - DELEVENT) + DELEVENT ILEN) (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) (* ;; "We first delete, then insert, updating the display after the second operation.") @@ -1694,7 +1694,8 @@ (* ;; "") - (CL:WHEN (AND (IGEQ ILEN 0) + (CL:WHEN (AND INSERTSELPIECES (IGEQ (SETQ ILEN (GETSPC INSERTSELPIECES SPLEN)) + 0) (\TEDIT.INSERT.SELPIECES INSERTSELPIECES TEXTOBJ SEL T)) (* ;; "If both delete and insert happened, foush the insert event and upgrade the DELEVENT to a single :Replace. The insert has not updated the lines or the selection") @@ -1704,12 +1705,12 @@ (SETTH DELEVENT THACTION :Replace) (SETTH DELEVENT THLEN ILEN) (SETTH DELEVENT THPOINT POINT)) - (\TEDIT.UPDATE.SEL SEL CH# ILEN POINT)) - (if (IGREATERP ILEN DCH) - then (\TEDIT.UPDATE.LINES TEXTOBJ 'INSERTION CH# (IDIFFERENCE ILEN DCH)) - elseif (ILESSP ILEN DCH) - then (\TEDIT.UPDATE.LINES TEXTOBJ 'DELETION CH# (IDIFFERENCE DCH ILEN)) - else (\TEDIT.UPDATE.LINES TEXTOBJ 'LOOKS CH# DCH))))]) + (\TEDIT.UPDATE.SEL SEL CH# ILEN POINT) + (if (IGREATERP ILEN DCH) + then (\TEDIT.UPDATE.LINES TEXTOBJ 'INSERTION CH# (IDIFFERENCE ILEN DCH)) + elseif (ILESSP ILEN DCH) + then (\TEDIT.UPDATE.LINES TEXTOBJ 'DELETION CH# (IDIFFERENCE DCH ILEN)) + else (\TEDIT.UPDATE.LINES TEXTOBJ 'LOOKS CH# DCH)))])]) (\TEDIT.INSERT.SELPIECES [LAMBDA (SELPIECES TEXTOBJ TARGETSEL DONTUPDATE) (* ; "Edited 26-Nov-2024 11:04 by rmk") @@ -1944,7 +1945,8 @@ OBJ]) (\TEDIT.DELETE - [LAMBDA (TEXTOBJ TARGETSEL/CHAR LEN POINT DONTCHECK) (* ; "Edited 6-Feb-2025 00:14 by rmk") + [LAMBDA (TEXTOBJ TARGETSEL/CHAR LEN POINT DONTCHECK) (* ; "Edited 19-Mar-2025 11:22 by rmk") + (* ; "Edited 6-Feb-2025 00:14 by rmk") (* ; "Edited 8-Dec-2024 21:39 by rmk") (* ; "Edited 28-Nov-2024 10:13 by rmk") (* ; "Edited 27-Nov-2024 09:18 by rmk") @@ -2008,12 +2010,12 @@ (* ;; "This is to the right of the last remaining character so that FIXSEL sees starting character in its proper line.") + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (\TEDIT.UPDATE.SEL SEL (SUB1 FIRSTCHAR) 0 'RIGHT) (\TEDIT.FIXSEL SEL TEXTOBJ) (\TEDIT.SHOWSEL SEL T TEXTOBJ) - (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) T)]) (\TEDIT.DIFFUSE.PARALOOKS @@ -2433,7 +2435,7 @@ (* ; "TEDIT Support information") -(RPAQQ TEDITSYSTEMDATE "18-Mar-2025 23:13:17") +(RPAQQ TEDITSYSTEMDATE "19-Mar-2025 15:47:23") @@ -2443,26 +2445,26 @@ (ADDTOVAR PRINTFILETYPES (TEDIT (TEST \TEDIT.GET.TRAILER) (EXTENSION (TEDIT)))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4835 7229 (MAKE-TEDIT-EXPORTS.ALL 4845 . 5391) (UPDATE-TEDIT 5393 . 6322) (EDIT-TEDIT -6324 . 7227)) (8737 36203 (TEDIT 8747 . 11325) (TEXTSTREAM 11327 . 13247) (TEXTSTREAMP 13249 . 13633) -(COERCETEXTSTREAM 13635 . 17846) (TEDIT.CONCAT 17848 . 21154) (TEDITSTRING 21156 . 22070) (TEDIT-SEE -22072 . 22631) (TEDIT.COPY 22633 . 24778) (TEDIT.DELETE 24780 . 26032) (TEDIT.INSERT 26034 . 28992) ( -TEDIT.TERPRI 28994 . 30108) (TEDIT.KILL 30110 . 31026) (TEDIT.QUIT 31028 . 32394) (TEDIT.MOVE 32396 . -33284) (TEDIT.STRINGWIDTH 33286 . 33957) (TEDIT.CHARWIDTH 33959 . 36201)) (36204 38145 (TEXTOBJ 36214 - . 36679) (COERCETEXTOBJ 36681 . 38143)) (39545 41315 (TDRIBBLE 39555 . 41313)) (41356 53464 ( -TEDIT.INSERT.OBJECT 41366 . 46207) (TEDIT.EDIT.OBJECT 46209 . 48550) (TEDIT.OBJECT.CHANGED 48552 . -51419) (TEDIT.MAP.OBJECTS 51421 . 52992) (\TEDIT.FIRST.OBJPIECE 52994 . 53227) (\TEDIT.NEXT.OBJPIECE -53229 . 53462)) (53487 60930 (\TEDIT.CONCAT.PAGEFRAMES 53497 . 58564) (\TEDIT.GET.PAGE.HEADINGS 58566 - . 59595) (\TEDIT.CONCAT.INSTALL.HEADINGS 59597 . 60928)) (60931 64360 (\TEDIT.MOVE.MSG 60941 . 63022) - (\TEDIT.READONLY 63024 . 64358)) (64361 79197 (TEDIT.NCHARS 64371 . 64744) (TEDIT.RPLCHARCODE 64746 - . 72761) (TEDIT.NTHCHARCODE 72763 . 75120) (TEDIT.NTHCHAR 75122 . 75380) (\TEDIT.PIECE.NTHCHARCODE -75382 . 79195)) (79243 133850 (\TEDIT1 79253 . 81330) (\TEDIT.INSERT 81332 . 87309) (\TEDIT.MOVE 87311 - . 94661) (\TEDIT.COPY 94663 . 98796) (\TEDIT.REPLACE.SELPIECES 98798 . 102778) ( -\TEDIT.INSERT.SELPIECES 102780 . 105665) (\TEDIT.RESTARTFN 105667 . 108172) (\TEDIT.CHARDELETE 108174 - . 111001) (\TEDIT.COPYPIECE 111003 . 115851) (\TEDIT.APPLY.OBJFN 115853 . 119050) (\TEDIT.DELETE -119052 . 123980) (\TEDIT.DIFFUSE.PARALOOKS 123982 . 126253) (\TEDIT.WORDDELETE 126255 . 127811) ( -\TEDIT.WORDDELETE.FORWARD 127813 . 129485) (\TEDIT.FINISHEDIT? 129487 . 133848)) (133851 134510 ( -\TEDIT.THELP 133861 . 134508)) (134544 143328 (\TEDIT.PARAPIECES 134554 . 136528) (\TEDIT.PARACHNOS -136530 . 137422) (\TEDIT.PARA.FIRST 137424 . 140291) (\TEDIT.PARA.LAST 140293 . 143326)) (143329 -151368 (\TEDIT.WORD.FIRST 143339 . 147095) (\TEDIT.WORD.LAST 147097 . 151366))))) + (FILEMAP (NIL (4874 7268 (MAKE-TEDIT-EXPORTS.ALL 4884 . 5430) (UPDATE-TEDIT 5432 . 6361) (EDIT-TEDIT +6363 . 7266)) (8776 36242 (TEDIT 8786 . 11364) (TEXTSTREAM 11366 . 13286) (TEXTSTREAMP 13288 . 13672) +(COERCETEXTSTREAM 13674 . 17885) (TEDIT.CONCAT 17887 . 21193) (TEDITSTRING 21195 . 22109) (TEDIT-SEE +22111 . 22670) (TEDIT.COPY 22672 . 24817) (TEDIT.DELETE 24819 . 26071) (TEDIT.INSERT 26073 . 29031) ( +TEDIT.TERPRI 29033 . 30147) (TEDIT.KILL 30149 . 31065) (TEDIT.QUIT 31067 . 32433) (TEDIT.MOVE 32435 . +33323) (TEDIT.STRINGWIDTH 33325 . 33996) (TEDIT.CHARWIDTH 33998 . 36240)) (36243 38184 (TEXTOBJ 36253 + . 36718) (COERCETEXTOBJ 36720 . 38182)) (39584 41354 (TDRIBBLE 39594 . 41352)) (41395 53503 ( +TEDIT.INSERT.OBJECT 41405 . 46246) (TEDIT.EDIT.OBJECT 46248 . 48589) (TEDIT.OBJECT.CHANGED 48591 . +51458) (TEDIT.MAP.OBJECTS 51460 . 53031) (\TEDIT.FIRST.OBJPIECE 53033 . 53266) (\TEDIT.NEXT.OBJPIECE +53268 . 53501)) (53526 60969 (\TEDIT.CONCAT.PAGEFRAMES 53536 . 58603) (\TEDIT.GET.PAGE.HEADINGS 58605 + . 59634) (\TEDIT.CONCAT.INSTALL.HEADINGS 59636 . 60967)) (60970 64399 (\TEDIT.MOVE.MSG 60980 . 63061) + (\TEDIT.READONLY 63063 . 64397)) (64400 79236 (TEDIT.NCHARS 64410 . 64783) (TEDIT.RPLCHARCODE 64785 + . 72800) (TEDIT.NTHCHARCODE 72802 . 75159) (TEDIT.NTHCHAR 75161 . 75419) (\TEDIT.PIECE.NTHCHARCODE +75421 . 79234)) (79282 134183 (\TEDIT1 79292 . 81369) (\TEDIT.INSERT 81371 . 87348) (\TEDIT.MOVE 87350 + . 94700) (\TEDIT.COPY 94702 . 98835) (\TEDIT.REPLACE.SELPIECES 98837 . 103002) ( +\TEDIT.INSERT.SELPIECES 103004 . 105889) (\TEDIT.RESTARTFN 105891 . 108396) (\TEDIT.CHARDELETE 108398 + . 111225) (\TEDIT.COPYPIECE 111227 . 116075) (\TEDIT.APPLY.OBJFN 116077 . 119274) (\TEDIT.DELETE +119276 . 124313) (\TEDIT.DIFFUSE.PARALOOKS 124315 . 126586) (\TEDIT.WORDDELETE 126588 . 128144) ( +\TEDIT.WORDDELETE.FORWARD 128146 . 129818) (\TEDIT.FINISHEDIT? 129820 . 134181)) (134184 134843 ( +\TEDIT.THELP 134194 . 134841)) (134877 143661 (\TEDIT.PARAPIECES 134887 . 136861) (\TEDIT.PARACHNOS +136863 . 137755) (\TEDIT.PARA.FIRST 137757 . 140624) (\TEDIT.PARA.LAST 140626 . 143659)) (143662 +151701 (\TEDIT.WORD.FIRST 143672 . 147428) (\TEDIT.WORD.LAST 147430 . 151699))))) STOP diff --git a/library/tedit/TEDIT-FIND b/library/tedit/TEDIT-FIND index 981f165bc..400bc8988 100644 --- a/library/tedit/TEDIT-FIND +++ b/library/tedit/TEDIT-FIND @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "15-Mar-2025 00:35:11" {WMEDLEY}tedit>TEDIT-FIND.;151 43417 +(FILECREATED "19-Mar-2025 11:25:45" {WMEDLEY}tedit>TEDIT-FIND.;153 43667 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.SUBSTITUTE TEDIT.FIND) + :CHANGES-TO (FNS TEDIT.SUBSTITUTE) - :PREVIOUS-DATE "14-Mar-2025 23:16:31" {WMEDLEY}TEDIT>TEDIT-FIND.;148) + :PREVIOUS-DATE "15-Mar-2025 00:35:11" {WMEDLEY}tedit>TEDIT-FIND.;151) (PRETTYCOMPRINT TEDIT-FINDCOMS) @@ -67,16 +67,14 @@ (CAR RESULT)))]) (TEDIT.SUBSTITUTE - [LAMBDA (TSTREAM PATTERN REPLACEMENT CONFIRM?) (* ; "Edited 15-Mar-2025 00:23 by rmk") + [LAMBDA (TSTREAM PATTERN REPLACEMENT CONFIRM? NEWCHARLOOKS)(* ; "Edited 19-Mar-2025 11:20 by rmk") + (* ; "Edited 15-Mar-2025 00:23 by rmk") (* ; "Edited 6-Mar-2025 20:17 by rmk") (* ; "Edited 8-Dec-2024 15:47 by rmk") (* ; "Edited 26-Nov-2024 23:49 by rmk") (* ; "Edited 15-Aug-2024 09:20 by rmk") (* ; "Edited 14-Jul-2024 00:24 by rmk") - (* ; "Edited 7-Jul-2024 11:46 by rmk") - (* ; "Edited 29-Jun-2024 10:49 by rmk") (* ; "Edited 18-May-2024 23:03 by rmk") - (* ; "Edited 9-Mar-2024 11:36 by rmk") (* ; "Edited 12-May-2024 21:11 by rmk") (* ; "Edited 15-Mar-2024 14:09 by rmk") (* ; "Edited 6-Jan-2024 11:09 by rmk") @@ -93,7 +91,8 @@ (PROG ((TEXTOBJ (TEXTOBJ TSTREAM)) (NREPLACEMENTS 0) (YESLIST '("Y" "y" "yes" "YES" "T" "Yes")) - SEARCHSTRING ABORTFLG ENDCHAR# STARTCHAR# CONFIRMFLG SEL REPLACE-LEN ACTIONSTRING) + SEARCHSTRING ABORTFLG ENDCHAR# STARTCHAR# CONFIRMFLG SEL REPLACE-LEN ACTIONSTRING + CHARLOOKS) (* ;; "Don't call \TEDIT.GET.TARGET.STRING because it might pick the search-domain (current selection) as the search string. If the search pattern is empty, bail out.") @@ -138,7 +137,6 @@ "ing...") T) (SETQ SEL (FGETTOBJ TEXTOBJ SEL)) - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (* ; "Turn off any blue pending delete") @@ -173,6 +171,9 @@ 1)) (Q (GO $$OUT)) (Y (* ; "Do this one") + (CL:UNLESS NEWCHARLOOKS + (SETQ CHARLOOKS (PCHARLOOKS (\TEDIT.CHTOPC (CAR HIT) + TEXTOBJ)))) (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.COPY REPLACEMENT 'COPY TEXTOBJ) TEXTOBJ SEL) @@ -192,17 +193,20 @@ else (* ;; "No confirmation required. Do the substitutions without showing intermediate work, collect all of the replacement events") - (bind FIRSTHIT HIT HITLAST HITDIFF (TOTALDIFF _ 0) + (bind FIRSTHIT HIT HITLAST HITDIFF CHARLOOKS (TOTALDIFF _ 0) EVENTS while (SETQ HIT (\TEDIT.FIND TEXTOBJ SEARCHSTRING T NIL STARTCHAR# ENDCHAR#)) do (CL:UNLESS FIRSTHIT (* ; "For final line updating.") (SETQ FIRSTHIT (CAR HIT))) + (CL:UNLESS NEWCHARLOOKS + (SETQ CHARLOOKS (PCHARLOOKS (\TEDIT.CHTOPC (CAR HIT) + TEXTOBJ)))) (\TEDIT.UPDATE.SEL SEL (CAR HIT) (CADR HIT) 'RIGHT) (\TEDIT.FIXSEL SEL TEXTOBJ) (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.COPY REPLACEMENT - 'COPY TEXTOBJ) + 'COPY TEXTOBJ NIL CHARLOOKS) TEXTOBJ SEL) (push EVENTS (\TEDIT.POPEVENT TEXTOBJ)) (* ; @@ -683,10 +687,10 @@ (DREVERSE $$VAL))]) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (978 19777 (TEDIT.FIND 988 . 1572) (TEDIT.FIND.SETSEL 1574 . 2039) (TEDIT.FIND.BACKWARD -2041 . 2620) (TEDIT.SUBSTITUTE 2622 . 15180) (TEDIT.NEXT 15182 . 19775)) (19778 23207 ( -TEDIT.FIND.OBJECT 19788 . 21288) (TEDIT.FIND.OBJECT.BACKWARD 21290 . 23205)) (23240 43394 (\TEDIT.FIND - 23250 . 26186) (\TEDIT.FIND.BACKWARD 26188 . 28706) (\TEDIT.WCFIND 28708 . 32227) (\TEDIT.BASICFIND -32229 . 34588) (\TEDIT.WCFIND.BACKWARD 34590 . 38054) (\TEDIT.BASICFIND.BACKWARD 38056 . 40313) ( -\TEDIT.PARSE.SEARCHSTRING 40315 . 43392))))) + (FILEMAP (NIL (967 20027 (TEDIT.FIND 977 . 1561) (TEDIT.FIND.SETSEL 1563 . 2028) (TEDIT.FIND.BACKWARD +2030 . 2609) (TEDIT.SUBSTITUTE 2611 . 15430) (TEDIT.NEXT 15432 . 20025)) (20028 23457 ( +TEDIT.FIND.OBJECT 20038 . 21538) (TEDIT.FIND.OBJECT.BACKWARD 21540 . 23455)) (23490 43644 (\TEDIT.FIND + 23500 . 26436) (\TEDIT.FIND.BACKWARD 26438 . 28956) (\TEDIT.WCFIND 28958 . 32477) (\TEDIT.BASICFIND +32479 . 34838) (\TEDIT.WCFIND.BACKWARD 34840 . 38304) (\TEDIT.BASICFIND.BACKWARD 38306 . 40563) ( +\TEDIT.PARSE.SEARCHSTRING 40565 . 43642))))) STOP diff --git a/library/tedit/TEDIT-FIND.LCOM b/library/tedit/TEDIT-FIND.LCOM index 3966583a70021e9f35859d6a19e6a1e99e21b086..3242cd767542681741e256b34a1d4c3f16b5a573 100644 GIT binary patch delta 1933 zcmZuyOK%%h6!s*I)4HiOX=obUq#O+;B*qEzez+3U*yGGJ_T0fUsT0&d1>!wfzkK=oYMc}6L@Yu zHCMJPX0c`#e6s|c@IUCmYs_3y0$Ebk;07bi&qLm=nU`#`;w_Xg4YQO!EzjpAB`*jZ zq=E~~%k94zai}Q@U|upE-vbv!9*S0>Rv~1Wnt}nA?U(FwnHoAZDh1D{hDHrKQK4+t zJU_A&@QGij#3^zdB>_$J%nD5r21$ZjM}BOIP&3_1p=ef72$VsT!1sJCyh;rj+=B0$ zHHR7scy>OYt(l(bmr1SaW$CI4j#=+Z#}y5V#6fA**XLpQhsk7usV^Q&;AeZ6j^kgB zEw^Xt{Jkk_HxYa{a_UU3J%>~LSntv?MTg^bxS9+87~!&F=BilF{YqCbF&AQeUC(Vu z7Y@Gvy`HnegsZua>$%{S@t$Q0wq|DE{ECQiTH(^o>lI-LZEb{S<3RJ*bkCWO|6%e{{cf z_#$C9t+4P80_;3~&^lzd$Jb9iC5pSqhnF|$J zn`G|92rbznY!}@M<&$itk$qau+l_M_6vUyR#%!lbW*^-rXK`$t?X(WJ?Cpd0#qJ&v zAnd~wIs2Hv{usqZ;+}REz2^vI_e1{J-EBz6BH3;qCJ4LLt+u`x+&P+Ia=~v$uQz2C z@Xp!(qFWp`4i0jHt})nz=QwzC8VZ^Y}muJ)#?0PYH&+f_^_F6fF1 zm%E^N4_wxd9#(SVhOV!<;(#wW({E&6_djEcLvv}F3WgF6T^FGNdD zU{9pir9M?GS<-v#Q9mS2it8Haha~s9UAD1$2}Q*HiFApo68v@irS|;TC^IB$!TIzH z!@8sdm(w#%(C~cK>?O+w4UufeGi$z09MDiAHpDE3ma5PLNw-PTqHqPzZa+ZbMsrW+MOC0h_xC4D45$hhXG%+}tzVVJE z1GlyN{!Msqed8L3mqh~({|x-G2)~h?`Xje)P`7~px{l*OqOM^eIJ-E=f&|>!wVOEO a_4bpr&!lnB2HyPORrVq?(*BUOCjJF;g5*g6 delta 1694 zcmZWp-BVjt5YOc!KnOJ$2$&+>#uftunfr0>NAQa@x#8ZD+;d4T4Z&(er~;*BhK>*F zRNDVQJTuNX(^tpQQAZkII%COf__c6oFdpDXkeI5#>{42L3M>( zs_3|a;tK8`8M0=f=rkk(4s}wwri;`>iQqaG^&ET9@o18Vf^O$hX+4ibkOffyr|4kO zc~=m@PC1TVuv|f6_d5q)CXl8U^5owbhxX40I(=MeqQ{4yjV<@=XT5XP7fX}u*Uo5r zyc%b}cShP);;h3Tn@B`g5~cVrE({@Y&+DsFd{vq``ti3?+z7aqmH7QqoZ0@dj!9PH z*+>3N_v)I_>zdfUKiU)7IQneQ_brXELx1!o-`_Ok#p&Hn-s7&Yov!okuOZ3zT|?zzPhB%_9z3EU&-F=QKTn^h(Khbc!Q;JS zLPHJu8iu?1bbs&o;zs{`_!JvF{D6*rNr9`3){quB3QXu8+KIpKCR5Mepdqh{n&Bl( z$D)<7)4Xq2Vl`w2WUgGQ<>{q^$8-eG%1CYR_@23ORK03=0qH0WJqgf}r*!mL&}Bf< zR+1sK#?XMsF`ut#t~a-4(6M^KVH#Sm=T(|u|8z&WI1Bc?#|i9Sa9}3MYwj(lQx0fJ z9`bWI5vDZ@nyR++vNs4GL`;IcfMc@g*ad2XCbGj|nElbyyThNhs7bZ4G!`x7Q#o@< zPp1mH1FELM_4+y$4O+tC1Qod&D#I)~v`|iEGKnx|REy%LcL^gS3+~7tHX=<0SIwgZ3E$0=Kq6NDA4%ic+PTelcoAajTet7Pt>x7lF`RfAV))fGQvX%!_NE!H qECzxLAj#8?1c6{};X&{jjg@cQ!GD5MCC@n=`yw>UbyN>SM)+UOs;UG4 diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 9c5e67efb..f57e3742f 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,17 +1,14 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "18-Mar-2025 20:55:26" {WMEDLEY}tedit>TEDIT-FNKEYS.;225 97662 +(FILECREATED "19-Mar-2025 15:47:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;231 99729 :EDIT-BY rmk - :CHANGES-TO (FNS CHARNAME TEDIT.GET.CHARBINDING TEDIT.GET.ALL.CHARBINDINGS - TEDIT.GET.ALL.CHARACTIONS TEDIT.GET.CHARACTION TEDIT.BUTTONS.BUILD - \TEDIT.KEY.SIZE TEDIT.INSTALL.CHARBINDINGS TEDIT.GET.BINDING TEDIT.GET.ACTION - \TEDIT.READTABLE TEDIT.CLEAR.CHARBINDINGS TEDIT.CLEAR.KEYBINDINGS - TEDIT.GET.KEYACTION TEDIT.GET.ACTIONBINDINGS \TEDIT.KEY.NEST) - (VARS TEDIT-FNKEYSCOMS TEDIT.CHARACTIONS TEDIT.BUTTONS.SPEC TEDIT.KEYACTIONS) + :CHANGES-TO (FNS \TEDIT.KEY.TRANSFORM TEDIT.GET.CHARACTION \TEDIT.ONEWORD.BACKWARD + \TEDIT.ONEWORD.FORWARD \TEDIT.KEY.FAMILYN \TEDIT.KEY.SIZE \TEDIT.LINE.BEGIN + \TEDIT.LINE.END \TEDIT.DOCUMENT.END \TEDIT.KEY.FIND) - :PREVIOUS-DATE "17-Mar-2025 18:29:50" {WMEDLEY}tedit>TEDIT-FNKEYS.;215) + :PREVIOUS-DATE "18-Mar-2025 20:55:26" {WMEDLEY}tedit>TEDIT-FNKEYS.;225) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -226,7 +223,8 @@ RDTBL))])]) (TEDIT.GET.CHARACTION - [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 18-Mar-2025 11:07 by rmk") + [LAMBDA (CHARCODE BINDINGS) (* ; "Edited 19-Mar-2025 14:51 by rmk") + (* ; "Edited 18-Mar-2025 11:07 by rmk") (* ; "Edited 17-Mar-2025 09:43 by rmk") (* ;; "Returns the keyaction that CHARCODE binds to in BINDINGS. If BINDINGS is a readtable, looks at all currently installed bindings in that readtable. If NIL, uses TEDIT.READTABLE.") @@ -259,8 +257,8 @@ (EQ (\TEDIT.TTC FUNCTIONCALL) (\SYNCODE (fetch READSA of RDTBL) CHARCODE))) - (for CA in TEDIT.KEYACTIONS when (EQUAL (CADR CA) - (CADR VAL)) + (for CA in TEDIT.CHARACTIONS when (EQUAL (CADR CA) + (CADR VAL)) do (RETFROM (FUNCTION TEDIT.GET.CHARACTION) (CAR CA))))] NIL]) @@ -431,16 +429,22 @@ NIL TEXTOBJ]) (\TEDIT.KEY.SIZE - [LAMBDA (TSTREAM SMALLER) (* ; "Edited 18-Mar-2025 16:41 by rmk") + [LAMBDA (TSTREAM SMALLER) (* ; "Edited 19-Mar-2025 13:07 by rmk") (* ; "Edited 16-Mar-2025 13:19 by rmk") (* jds "21-Sep-85 08:58") (* ;; "Changes the font size, 2 points smaller if SMALLER, otherwise larger.") - (TEDIT.LOOKS TSTREAM (LIST 'SIZEINCREMENT (CL:IF SMALLER - -2 - 2))) - (\TEDIT.SHOWCARETLOOKS TSTREAM]) + (CL:UNLESS (\TEDIT.READONLY TSTREAM) + (if (\TEDIT.CHANGE.CHARLOOKS TSTREAM (LIST 'SIZEINCREMENT (CL:IF SMALLER + -2 + 2))) + then (\TEDIT.SHOWCARETLOOKS TSTREAM) + else (TEDIT.PROMPTPRINT TSTREAM (CONCAT (CL:IF SMALLER + "Smaller" + "Larger") + " font is not available") + T T)))]) (\TEDIT.SUBSCRIPTSEL [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 20-Oct-87 11:12 by jds") @@ -453,7 +457,8 @@ SEL]) (\TEDIT.KEY.TRANSFORM - [LAMBDA (TSTREAM CHARFN) (* ; "Edited 16-Mar-2025 18:49 by rmk") + [LAMBDA (TSTREAM CHARFN) (* ; "Edited 19-Mar-2025 14:57 by rmk") + (* ; "Edited 16-Mar-2025 18:49 by rmk") (* ; "Edited 7-Jul-2024 09:04 by rmk") (* ; "Edited 15-Mar-2024 13:57 by rmk") (* ; "Edited 3-Mar-2024 12:56 by rmk") @@ -465,18 +470,20 @@ (LET* ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) (SEL (TEXTSEL TEXTOBJ))) - (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.CHARTRANSFORM (\TEDIT.SELPIECES.COPY - (\TEDIT.SELPIECES SEL NIL - TEXTOBJ)) - CHARFN NIL TEXTOBJ) - TEXTOBJ SEL) - (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) - (\TEDIT.SHOWSEL SEL T TEXTOBJ) - (CL:UNLESS (FGETTOBJ TEXTOBJ TXTHISTORYINACTIVE) - (SETTH (\TEDIT.LASTEVENT TEXTOBJ) - THACTION :Transform) - (SETTH (\TEDIT.LASTEVENT TEXTOBJ) - THOLDINFO CHARFN))]) + (CL:WHEN (IGREATERP (TEXTLEN TEXTOBJ) + 0) + (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.CHARTRANSFORM (\TEDIT.SELPIECES.COPY + (\TEDIT.SELPIECES SEL NIL + TEXTOBJ)) + CHARFN NIL TEXTOBJ) + TEXTOBJ SEL) + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) + (\TEDIT.SHOWSEL SEL T TEXTOBJ) + (CL:UNLESS (FGETTOBJ TEXTOBJ TXTHISTORYINACTIVE) + (SETTH (\TEDIT.LASTEVENT TEXTOBJ) + THACTION :Transform) + (SETTH (\TEDIT.LASTEVENT TEXTOBJ) + THOLDINFO CHARFN)))]) (\TEDIT.KEY.OPENLINE [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 9-Mar-2025 14:39 by rmk") @@ -488,15 +495,25 @@ (\TEDIT.ONECHAR.BACKWARD TSTREAM TEXTOBJ SEL]) (\TEDIT.KEY.FAMILYN - [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 16-Mar-2025 13:13 by rmk") + [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 19-Mar-2025 13:08 by rmk") + (* ; "Edited 16-Mar-2025 13:13 by rmk") (* ;; "CHARCODE is Meta,nn for nn from One..., changes the family to the nn-th entry on TEDIT.FONTFAMILIES.") (CL:WHEN (CHARCODEP CHARCODE) - (LET [(NEWFAMILY (CAR (NTH TEDIT.FONTFAMILIES (IDIFFERENCE CHARCODE (CHARCODE "Meta,Zero"] - (CL:WHEN NEWFAMILY - (\TEDIT.CHANGE.CHARLOOKS TSTREAM (LIST 'FAMILY NEWFAMILY)) - (\TEDIT.SHOWCARETLOOKS TSTREAM))))]) + [LET [(NEWFAMILY (CAR (NTH TEDIT.FONTFAMILIES (IDIFFERENCE CHARCODE (CHARCODE "Meta,Zero"] + (CL:UNLESS (\TEDIT.READONLY TSTREAM) + (if (NOT NEWFAMILY) + then (TEDIT.PROMPTPRINT TSTREAM (CONCAT "Font family " (IDIFFERENCE CHARCODE + (CHARCODE + "Meta,Zero" + )) + " is not specified") + T T) + elseif (\TEDIT.CHANGE.CHARLOOKS TSTREAM (LIST 'FAMILY NEWFAMILY)) + then (\TEDIT.SHOWCARETLOOKS TSTREAM) + else (TEDIT.PROMPTPRINT TSTREAM (CONCAT "Cannot switch to font family " NEWFAMILY) + T T)))])]) ) (DEFINEQ @@ -716,17 +733,18 @@ (\TEDIT.SCROLL.CARET TSTREAM))]) (\TEDIT.ONEWORD.BACKWARD - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 5-Mar-2025 17:37 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 19-Mar-2025 13:47 by rmk") + (* ; "Edited 5-Mar-2025 17:37 by rmk") (* gbn "20-Mar-85 00:49") (* ;;; "moves the caret one word back Refers to the syntax classes of the characters according to the TEDIT.WORDBOUND.READTABLE") - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) - (LET ((HERE (SUB1 (TEDIT.GETPOINT TEXTSTREAM))) + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) + (LET ((HERE (SUB1 (TEDIT.GETPOINT TSTREAM))) LAST FIRST) - (SETQ FIRST (\TEDIT.WORD.FIRST TEXTSTREAM HERE)) (* ; + (SETQ FIRST (\TEDIT.WORD.FIRST TSTREAM HERE)) (* ;  "End of word, maybe after whitespace") - (SETQ LAST (IMIN HERE (\TEDIT.WORD.LAST TEXTSTREAM FIRST))) + (SETQ LAST (IMIN HERE (\TEDIT.WORD.LAST TSTREAM FIRST))) (* ; "In case we started in white space") (\TEDIT.UPDATE.SEL SEL FIRST (ADD1 (IDIFFERENCE LAST FIRST)) 'LEFT) @@ -735,17 +753,18 @@ (TEDIT.NORMALIZECARET TEXTOBJ]) (\TEDIT.ONEWORD.FORWARD - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 5-Mar-2025 17:33 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 19-Mar-2025 13:47 by rmk") + (* ; "Edited 5-Mar-2025 17:33 by rmk") (* gbn "20-Mar-85 00:48") (* ;;; "moves the caret one word forward. Refers to the syntax classes of the characters according to the TEDIT.WORDBOUND.READTABLE") - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) - (LET ((HERE (TEDIT.GETPOINT TEXTSTREAM)) + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) + (LET ((HERE (TEDIT.GETPOINT TSTREAM)) LAST FIRST) - (SETQ LAST (\TEDIT.WORD.LAST TEXTSTREAM HERE)) (* ; + (SETQ LAST (\TEDIT.WORD.LAST TSTREAM HERE)) (* ;  "End of word, maybe after whitespace") - (SETQ FIRST (IMAX HERE (\TEDIT.WORD.FIRST TEXTSTREAM LAST))) + (SETQ FIRST (IMAX HERE (\TEDIT.WORD.FIRST TSTREAM LAST))) (* ; "In case we started in white space") (\TEDIT.UPDATE.SEL SEL FIRST (ADD1 (IDIFFERENCE LAST FIRST)) 'RIGHT) @@ -754,7 +773,8 @@ (TEDIT.NORMALIZECARET TEXTOBJ]) (\TEDIT.LINE.BEGIN - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 22:55 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 19-Mar-2025 13:16 by rmk") + (* ; "Edited 15-Mar-2025 22:55 by rmk") (* ; "Edited 9-Mar-2025 19:50 by rmk") (* ; "Edited 5-Mar-2025 00:05 by rmk") (* gbn "11-Mar-85 15:04") @@ -764,7 +784,7 @@ (LET ((L1 (\TEDIT.SEL.L1 SEL (GETTOBJ TEXTOBJ SELPANE) TEXTOBJ))) (CL:WHEN L1 - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (\TEDIT.UPDATE.SEL SEL (FGETLD L1 LCHAR1) 0 'LEFT) @@ -772,7 +792,8 @@ (\TEDIT.SHOWSEL SEL T TEXTOBJ))]) (\TEDIT.LINE.END - [LAMBDA (TEXTSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 22:54 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 19-Mar-2025 13:16 by rmk") + (* ; "Edited 15-Mar-2025 22:54 by rmk") (* ; "Edited 9-Mar-2025 19:49 by rmk") (* ; "Edited 5-Mar-2025 14:07 by rmk") (* gbn " 7-Jun-85 15:47") @@ -781,7 +802,7 @@ (LET ((LN (\TEDIT.SEL.LN SEL NIL TEXTOBJ))) (CL:WHEN LN - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (* ;; "Put the caret in front of the terminating EOL so it stays on LN.") @@ -803,11 +824,14 @@ (TEDIT.NORMALIZECARET TEXTOBJ]) (\TEDIT.DOCUMENT.END - [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 15-Mar-2025 23:09 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 19-Mar-2025 13:19 by rmk") + (* ; "Edited 15-Mar-2025 23:09 by rmk") (* gbn " 7-Jun-85 16:32") (* ;; "Positions at the end of a document") + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) + (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (TEDIT.SETSEL TSTREAM (ADD1 (TEXTLEN TEXTOBJ)) 0 'LEFT) @@ -894,7 +918,8 @@ (DEFINEQ (\TEDIT.KEY.FIND - [LAMBDA (TSTREAM AGAIN BACKWARD SEARCHSTRING) (* ; "Edited 16-Mar-2025 21:42 by rmk") + [LAMBDA (TSTREAM AGAIN BACKWARD SEARCHSTRING) (* ; "Edited 19-Mar-2025 11:20 by rmk") + (* ; "Edited 16-Mar-2025 21:42 by rmk") (* ; "Edited 11-Mar-2025 15:09 by rmk") (* ; "Edited 26-Nov-2024 23:47 by rmk") (* ; "Edited 23-Nov-2024 16:25 by rmk") @@ -944,7 +969,6 @@ (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (* ;  "Set up SELECTION to be the found text") - (\TEDIT.SHOWSEL SEL NIL TEXTOBJ) (\TEDIT.UPDATE.SEL SEL (CAR CH) (CADR CH) (CL:IF BACKWARD @@ -1848,27 +1872,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4186 8407 (CHARNAME 4196 . 8405)) (8463 22229 (TEDIT.INSTALL.CHARBINDINGS 8473 . 11656) - (TEDIT.CLEAR.CHARBINDINGS 11658 . 14249) (TEDIT.GET.CHARACTION 14251 . 16787) (TEDIT.GET.CHARBINDING -16789 . 18713) (TEDIT.GET.ALL.CHARBINDINGS 18715 . 20369) (TEDIT.GET.ALL.CHARACTIONS 20371 . 22227)) ( -22289 30257 (\TEDIT.KEY.CHARLOOKS 22299 . 23241) (\TEDIT.KEY.QUAD 23243 . 25336) (\TEDIT.DEFAULTSSEL -25338 . 25949) (\TEDIT.SETDEFAULT.FROM.SEL 25951 . 26628) (\TEDIT.KEY.SIZE 26630 . 27258) ( -\TEDIT.SUBSCRIPTSEL 27260 . 27463) (\TEDIT.SUPERSCRIPTSEL 27465 . 27669) (\TEDIT.KEY.TRANSFORM 27671 - . 29246) (\TEDIT.KEY.OPENLINE 29248 . 29702) (\TEDIT.KEY.FAMILYN 29704 . 30255)) (30258 30547 ( -CAP-CASECODE 30268 . 30545)) (30581 33207 (\TEDIT.SHOWCARETLOOKS 30591 . 32300) (\TEDIT.DESCRIBEFONT -32302 . 33205)) (33238 47295 (\TEDIT.ONECHAR.BACKWARD 33248 . 34377) (\TEDIT.ONECHAR.FORWARD 34379 . -35597) (\TEDIT.ONELINE.UP 35599 . 38560) (\TEDIT.ONELINE.DOWN 38562 . 40219) (\TEDIT.ONELINE.MOVE -40221 . 42435) (\TEDIT.ONEWORD.BACKWARD 42437 . 43474) (\TEDIT.ONEWORD.FORWARD 43476 . 44512) ( -\TEDIT.LINE.BEGIN 44514 . 45444) (\TEDIT.LINE.END 45446 . 46534) (\TEDIT.DOCUMENT.BEGIN 46536 . 46895) - (\TEDIT.DOCUMENT.END 46897 . 47293)) (47296 49140 (\TEDIT.LINEDELETE.FORWARD 47306 . 48206) ( -\TEDIT.LINEDELETE.BACKWARD 48208 . 49138)) (49141 51399 (\TEDIT.KEY.NEST 49151 . 51397)) (51453 59358 -(\TEDIT.KEY.FIND 51463 . 56498) (\TEDIT.KEY.FIND.SEARCHSTRING 56500 . 57640) (\TEDIT.GET.TARGET.STRING - 57642 . 59356)) (59389 62021 (\TEDIT.KEY.SUBSTITUTE 59399 . 59620) (\TEDIT.MANPAGE 59622 . 60869) ( -\TEDIT.CALL.ED 60871 . 61701) (\TEDIT.SELECT.ALL 61703 . 62019)) (62048 67628 (\TEDIT.CLIPBOARD 62058 - . 63813) (\TEDIT.COPYTOCLIPBOARD 63815 . 64595) (\TEDIT.EXTRACTTOCLIPBOARD 64597 . 64792) ( -\TEDIT.WRITE.SEL 64794 . 67626)) (67980 79695 (\TEDIT.READTABLE 67990 . 68926) ( -\TEDIT.WORDBOUND.READTABLE 68928 . 71557) (TEDIT.GETSYNTAX 71559 . 73078) (TEDIT.SETSYNTAX 73080 . -74285) (TEDIT.GETFUNCTION 74287 . 75459) (TEDIT.SETFUNCTION 75461 . 77447) (TEDIT.WORDGET 77449 . -77710) (TEDIT.WORDSET 77712 . 78343) (TEDIT.ATOMBOUND.READTABLE 78345 . 79693)) (90279 96598 ( -TEDIT.BUTTONS.BUILD 90289 . 94866) (TEDIT.BUTTONBITMAP.FILL 94868 . 96596))))) + (FILEMAP (NIL (3907 8128 (CHARNAME 3917 . 8126)) (8184 22061 (TEDIT.INSTALL.CHARBINDINGS 8194 . 11377) + (TEDIT.CLEAR.CHARBINDINGS 11379 . 13970) (TEDIT.GET.CHARACTION 13972 . 16619) (TEDIT.GET.CHARBINDING +16621 . 18545) (TEDIT.GET.ALL.CHARBINDINGS 18547 . 20201) (TEDIT.GET.ALL.CHARACTIONS 20203 . 22059)) ( +22121 31595 (\TEDIT.KEY.CHARLOOKS 22131 . 23073) (\TEDIT.KEY.QUAD 23075 . 25168) (\TEDIT.DEFAULTSSEL +25170 . 25781) (\TEDIT.SETDEFAULT.FROM.SEL 25783 . 26460) (\TEDIT.KEY.SIZE 26462 . 27514) ( +\TEDIT.SUBSCRIPTSEL 27516 . 27719) (\TEDIT.SUPERSCRIPTSEL 27721 . 27925) (\TEDIT.KEY.TRANSFORM 27927 + . 29737) (\TEDIT.KEY.OPENLINE 29739 . 30193) (\TEDIT.KEY.FAMILYN 30195 . 31593)) (31596 31885 ( +CAP-CASECODE 31606 . 31883)) (31919 34545 (\TEDIT.SHOWCARETLOOKS 31929 . 33638) (\TEDIT.DESCRIBEFONT +33640 . 34543)) (34576 49312 (\TEDIT.ONECHAR.BACKWARD 34586 . 35715) (\TEDIT.ONECHAR.FORWARD 35717 . +36935) (\TEDIT.ONELINE.UP 36937 . 39898) (\TEDIT.ONELINE.DOWN 39900 . 41557) (\TEDIT.ONELINE.MOVE +41559 . 43773) (\TEDIT.ONEWORD.BACKWARD 43775 . 44927) (\TEDIT.ONEWORD.FORWARD 44929 . 46080) ( +\TEDIT.LINE.BEGIN 46082 . 47133) (\TEDIT.LINE.END 47135 . 48344) (\TEDIT.DOCUMENT.BEGIN 48346 . 48705) + (\TEDIT.DOCUMENT.END 48707 . 49310)) (49313 51157 (\TEDIT.LINEDELETE.FORWARD 49323 . 50223) ( +\TEDIT.LINEDELETE.BACKWARD 50225 . 51155)) (51158 53416 (\TEDIT.KEY.NEST 51168 . 53414)) (53470 61425 +(\TEDIT.KEY.FIND 53480 . 58565) (\TEDIT.KEY.FIND.SEARCHSTRING 58567 . 59707) (\TEDIT.GET.TARGET.STRING + 59709 . 61423)) (61456 64088 (\TEDIT.KEY.SUBSTITUTE 61466 . 61687) (\TEDIT.MANPAGE 61689 . 62936) ( +\TEDIT.CALL.ED 62938 . 63768) (\TEDIT.SELECT.ALL 63770 . 64086)) (64115 69695 (\TEDIT.CLIPBOARD 64125 + . 65880) (\TEDIT.COPYTOCLIPBOARD 65882 . 66662) (\TEDIT.EXTRACTTOCLIPBOARD 66664 . 66859) ( +\TEDIT.WRITE.SEL 66861 . 69693)) (70047 81762 (\TEDIT.READTABLE 70057 . 70993) ( +\TEDIT.WORDBOUND.READTABLE 70995 . 73624) (TEDIT.GETSYNTAX 73626 . 75145) (TEDIT.SETSYNTAX 75147 . +76352) (TEDIT.GETFUNCTION 76354 . 77526) (TEDIT.SETFUNCTION 77528 . 79514) (TEDIT.WORDGET 79516 . +79777) (TEDIT.WORDSET 79779 . 80410) (TEDIT.ATOMBOUND.READTABLE 80412 . 81760)) (92346 98665 ( +TEDIT.BUTTONS.BUILD 92356 . 96933) (TEDIT.BUTTONBITMAP.FILL 96935 . 98663))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 95f6663e6d04d2b741a3f156d25ca79d5e9f6c85..618062ace8936692ba2c02e983b006bc79c9b0b6 100644 GIT binary patch delta 1820 zcmZvc&2Jk;6u`X>C5@Aov`O65D$VPXgt#>B&djdY>qH?Nd!5~~@w)aVO-QB6G6uBGWNXpcHYPD zz4!QW@W)Ss_ZR!L@wwv0IF_&iNJ+|S63M%_vGV^0N#rpCkQl6#Tu;&!2E^# zjI`y(W(_x%GWEQkaxEuI?dn+}M8CTmrr+K@-u;HL6wByymc5jvf2QAp-_$qcY24XudeiPac`wJFcw$o zlSp4rT!NI7P3bNWgh(N)5)3CCvf^$aJWg<`% z5TRVJZ9#PtYV|EBZWpU-#kbZ}2lgIHKEuC1|4G(?3;f1~F-5`=9! zHFT!yYx8OF?PvST7F`&+-k0!w7fk0`!LT7N(eHHXIa|JX7lI}*awpp%ktb-;UVV=Nk zYeYYTe|OdeArRC(DEpfNk2 ze9OkTxOjqs-PL*Zg+QP~@1mbv&QTNH=(P2M3z*QH)PK4~iceh5u^1+W;eX{A3r4~8 zBWc-tz-c}3kK_n(IwgmPRjCc$?;Gq(GS(t*B!zxC);~$whS!{YI+n5W+&A)VJ)swm z-!n%=BGKQ_43Fg8guqgn(O=|HpI*^DxQxHKKg#lR@#t{ef7$P6xy_*!myGD%SYHsw zd7nqn!48huh$T+qU>g~iets@Y|H3iucVNo%TRGrRVh+>f@`&<$Hd>WX+S&OYWzQqh zxW|{(c7%oo3Y1UWGJy$SXUS@>& zt3n$aCXK)4d&h(Vy`7vMJaenyz4PqBo)EGsrdP1}ucCBsVvzPsoS=UuF9{#>ThQ#H zGZPO74vcgwAA%L$+b0Rq{N^T-#DnR;8lt0<=U-*R+SXHw7Od g!ib6^qPHK*_1iT*8&ZOcL_n(Q>B^0XsbBN|1JI|%hX4Qo delta 1703 zcmZuxO>f*p7+!B^P<9*Auq0_VGM zXfH^ps^AB-9reh8iVL@*?X5u0MM6T{IKv;{!T|}yjK7j9xme?O-jC;b=9&5R+x+9l z`TLut+G1ztU=fK(1td09wSlw;H|u4jR-nL3)uUah){vEks6O~LwHkI5z zH^u?sN@cR&Ez{M`@EBR?zC7Jr4@1`pgyyaqziWq8|yx6lhg%pR7az6Y2jEfj%3-#a5y*! zE3mMk`$?0Ea8QAU=i?2_T@MypR8K1Bi^qoQ z4ONWfoadzecllR~1GKt-IQ+`U+=W~&mtVa>zd8Nkt^e+QlJAzw1@^l-#J=Zp3rHjG z=i?WtJratx>s|@y5vssswH$hk9qfcO(*OCw8aLU?vz~*j{Q3FOQO=B)6{wo76v za$vgG0&Ihd$Tu?=rxh*T@Uds>1{Ub1XJG>eAlJzsGqZQ4G$Y#)4ASq7sQX0E$T7;U{OM8aSZ|DzMWw+!ppIU|E8;-m&a0 zrsSXe<}mqi>g-VPQZ6^p?CM2gi(bAa5=kAOqqq`Rr7CKf25oCIlC@5DmP&8SS>`p@ zZwa;@gh20lQXR$GmQRC{Oh&8aVtgnRfvONsdOw12HG}X>a>>`?2d~E^NPeMD)cZsm zM1Dj~*5=I>jxo_=H(b_>%pj3!3ydE7Ynso;$!uk6KDVIO(%vaUHFHkFP>~r!@~>8U zEh9;p3%10>tdSpNi_M)_jpimJqJb#V^9^NbPCN2cYR8OJI!0q-me7gJYKD*vb?8t< z0^eFQLy%SSi}Kr6MN-HF(uWMhN;kL=)yQ{-+Gl-n^ z*Te6*5;?oP%{?OTEuSx%QS{L2nnm*E@*_>jFs9TEDIT>TEDIT-LOOKS.;392 151574 +(FILECREATED "19-Mar-2025 13:20:52" {WMEDLEY}tedit>TEDIT-LOOKS.;395 152229 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.CARETLOOKS) + :CHANGES-TO (FNS \TEDIT.CHANGE.PARALOOKS TEDIT.CARETLOOKS \TEDIT.CHANGE.CHARLOOKS + \TEDIT.CHARLOOKS.FROM.FONT) - :PREVIOUS-DATE "19-Feb-2025 12:00:37" {WMEDLEY}TEDIT>TEDIT-LOOKS.;390) + :PREVIOUS-DATE "21-Feb-2025 09:49:05" {WMEDLEY}tedit>TEDIT-LOOKS.;392) (PRETTYCOMPRINT TEDIT-LOOKSCOMS) @@ -537,7 +538,8 @@ (DEFINEQ (\TEDIT.CHARLOOKS.FROM.FONT - [LAMBDA (FONT) (* ; "Edited 2-Jan-2025 10:21 by rmk") + [LAMBDA (FONT NOERROR) (* ; "Edited 19-Mar-2025 12:47 by rmk") + (* ; "Edited 2-Jan-2025 10:21 by rmk") (* ; "Edited 31-Dec-2024 23:33 by rmk") (* ; "Edited 28-Dec-2024 12:28 by rmk") (* ; "Edited 21-Dec-2024 00:12 by rmk") @@ -555,7 +557,7 @@ (SETQ FONT (if (AND (LITATOM FONT) (type? FONTCLASS (GETATOMVAL FONT))) then (GETATOMVAL FONT) - else (FONTCREATE FONT)))) + else (FONTCREATE FONT NIL NIL NIL NIL NOERROR)))) (CL:WHEN (type? FONTCLASS FONT) (SETQ FONT (\TEDIT.COERCE.FONTCLASS FONT))) (create CHARLOOKS @@ -653,21 +655,27 @@ " is an unknown feature of character looks. Detected in SAMECLOOKS"]) (TEDIT.CARETLOOKS - [LAMBDA (STREAM LOOKS) (* ; "Edited 21-Feb-2025 09:48 by rmk") + [LAMBDA (TSTREAM LOOKS) (* ; "Edited 19-Mar-2025 11:51 by rmk") + (* ; "Edited 21-Feb-2025 09:48 by rmk") (* ; "Edited 15-Oct-2023 17:12 by rmk") (* ; "Edited 28-May-2023 14:15 by rmk") (* ; "Edited 6-Apr-2023 21:42 by rmk") (* ; "Edited 8-Sep-2022 11:25 by rmk") (* ; "Edited 30-May-91 21:40 by jds") - (* ;; "Set the 'Caret looks' for a TEdit document, i.e., the looks that will be applied to newly-typed characters from here on. Returns the previous caret looks") + (* ;; "Set the caret looks for a TEdit document, i.e., the looks that will be applied to newly-typed characters from here on. Returns the previous caret looks") - (LET ((TEXTOBJ (TEXTOBJ STREAM))) (* ; - "Parse up the looks he gave us, to make sure they're a valid CHARLOOKS") - (PROG1 (FGETTOBJ TEXTOBJ CARETLOOKS) - (change (FGETTOBJ TEXTOBJ CARETLOOKS) - (\TEDIT.CARETLOOKS.VERIFY TEXTOBJ (\TEDIT.PARSE.CHARLOOKS.LIST LOOKS DATUM - TEXTOBJ))))]) + (LET ((TEXTOBJ (TEXTOBJ TSTREAM))) + + (* ;; "Check to make sure the document allows the change.") + + (CL:WHEN (AND LOOKS (SETQ LOOKS (\TEDIT.PARSE.CHARLOOKS.LIST LOOKS (FGETTOBJ TEXTOBJ + CARETLOOKS) + TEXTOBJ)) + (SETQ LOOKS (\TEDIT.CARETLOOKS.VERIFY TEXTOBJ LOOKS))) + (PROG1 (FGETTOBJ TEXTOBJ CARETLOOKS) + (change (FGETTOBJ TEXTOBJ CARETLOOKS) + LOOKS)))]) (TEDIT.COPY.LOOKS [LAMBDA (STREAM SOURCE DEST) (* ; "Edited 25-Nov-2024 14:38 by rmk") @@ -1395,7 +1403,8 @@ (DEFINEQ (\TEDIT.CHANGE.CHARLOOKS - [LAMBDA (TSTREAM NEWLOOKS TARGETSEL) (* ; "Edited 31-Jan-2025 10:31 by rmk") + [LAMBDA (TSTREAM NEWLOOKS TARGETSEL) (* ; "Edited 19-Mar-2025 12:55 by rmk") + (* ; "Edited 31-Jan-2025 10:31 by rmk") (* ; "Edited 1-Jan-2025 18:11 by rmk") (* ; "Edited 29-Dec-2024 20:08 by rmk") (* ; "Edited 26-Nov-2024 23:50 by rmk") @@ -1417,7 +1426,7 @@ (* ;;; "Internal programmatic interface to changing character looks. DOES NOT CHANGE the current selection (unless it's the TARGETSEL).") (PROG ((TEXTOBJ (TEXTOBJ TSTREAM)) - SELPIECES NEWLOOKSLIST FONT) (* ; + SELPIECES NEWLOOKSLIST FONT DIRTY) (* ;  "Construct the set of new looks to apply:") (CL:UNLESS TARGETSEL (SETQ TARGETSEL (TEXTSEL TEXTOBJ))) @@ -1431,7 +1440,7 @@ (if (type? CHARLOOKS NEWLOOKS) then (SETQ NEWLOOKS (\TEDIT.UNIQUIFY.CHARLOOKS NEWLOOKS TEXTOBJ)) elseif (FONTP NEWLOOKS) - then (SETQ NEWLOOKS (\TEDIT.UNIQUIFY.CHARLOOKS (\TEDIT.CHARLOOKS.FROM.FONT NEWLOOKS) + then (SETQ NEWLOOKS (\TEDIT.UNIQUIFY.CHARLOOKS (\TEDIT.CHARLOOKS.FROM.FONT NEWLOOKS T) TEXTOBJ)) elseif (for PTAIL on NEWLOOKS by (CDDR PTAIL) unless (OR (\TEDIT.CHARLOOK.FEATUREP (CAR PTAIL)) @@ -1471,7 +1480,7 @@ (RETURN NIL] (CL:UNLESS NEWLOOKSLIST (* ; "At least one bad font?") (RETURN NIL)) - (for PC UNDOLIST NEWCHARLOOKS DIRTY (FIRSTCHAR _ (GETSPC SELPIECES SPFIRSTCHAR)) + [for PC UNDOLIST NEWCHARLOOKS (FIRSTCHAR _ (GETSPC SELPIECES SPFIRSTCHAR)) (ORIGFILEPTR _ (\TEDIT.TEXTGETFILEPTR TSTREAM)) OLDCHARLOOKS inselpieces SELPIECES as NEWCHARLOOKS in NEWLOOKSLIST do (SETQ OLDCHARLOOKS (PLOOKS PC)) @@ -1516,14 +1525,14 @@ (* ;; "Set caret looks to the looks of the last selected character--the looks of that piece may have been only partially modified") - (FSETTOBJ TEXTOBJ CARETLOOKS (PLOOKS (\TEDIT.CHTOPC - (IMAX 1 (SUB1 (TEDIT.GETPOINT - TEXTOBJ))) - TEXTOBJ))) + (TEDIT.CARETLOOKS TEXTOBJ (PCHARLOOKS (\TEDIT.CHTOPC + (IMAX 1 (SUB1 (TEDIT.GETPOINT + TEXTOBJ))) + TEXTOBJ))) (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (\TEDIT.UPDATE.LINES TEXTOBJ 'LOOKS SELPIECES) - (\TEDIT.SHOWSEL NIL T TEXTOBJ) - (\TEDIT.TEXTSETFILEPTR TSTREAM ORIGFILEPTR)))]) + (\TEDIT.TEXTSETFILEPTR TSTREAM ORIGFILEPTR)))] + (RETURN DIRTY]) (\TEDIT.CHANGE.CHARLOOKS.NEW [LAMBDA (NEWLOOKS OLDCHARLOOKS TEXTOBJ) (* ; "Edited 2-Jan-2025 15:49 by rmk") @@ -2060,7 +2069,8 @@ then (\TEDIT.CHANGE.PARALOOKS TSTREAM NEWLOOKS TARGETSEL)))]) (\TEDIT.CHANGE.PARALOOKS - [LAMBDA (TSTREAM NEWLOOKS TARGETSEL) (* ; "Edited 8-Feb-2025 22:30 by rmk") + [LAMBDA (TSTREAM NEWLOOKS TARGETSEL) (* ; "Edited 19-Mar-2025 13:09 by rmk") + (* ; "Edited 8-Feb-2025 22:30 by rmk") (* ; "Edited 31-Jan-2025 09:45 by rmk") (* ; "Edited 6-Jan-2025 23:41 by rmk") (* ; "Edited 5-Jan-2025 16:01 by rmk") @@ -2414,25 +2424,25 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (22500 24442 (\TEDIT.CHARLOOKS.DEFPRINT 22510 . 23646) (\TEDIT.PARALOOKS.DEFPRINT 23648 - . 24440)) (24546 25642 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24556 . 25264) (\TEDIT.CREATE.FACE.MENU 25266 - . 25438) (\TEDIT.CREATE.SIZE.MENU 25440 . 25640)) (26543 26732 (\TEDIT.CHARLOOK.FEATUREP 26553 . -26730)) (27034 49932 (\TEDIT.CHARLOOKS.FROM.FONT 27044 . 29124) (\TEDIT.EQCLOOKS 29126 . 31748) ( -\TEDIT.SAMECLOOKS 31750 . 34420) (TEDIT.CARETLOOKS 34422 . 35727) (TEDIT.COPY.LOOKS 35729 . 39012) ( -\TEDIT.UNPARSE.CHARLOOKS.LIST 39014 . 41981) (\TEDIT.MODIFYLOOKS 41983 . 43977) (TEDIT.NEW.FONT 43979 - . 44426) (\TEDIT.CARETLOOKS.VERIFY 44428 . 45265) (\TEDIT.CARETPIECE 45267 . 45572) ( -\TEDIT.GET.INSERT.CHARLOOKS 45574 . 48310) (\TEDIT.GET.TERMSA.WIDTHS 48312 . 48728) ( -\TEDIT.PARSE.CHARLOOKS.LIST 48730 . 49930)) (49933 66451 (\TEDIT.TRANSLATE.ASCIICHARS 49943 . 60429) ( -\TEDIT.CONVERT.TO.FORMATTED 60431 . 66449)) (67463 74574 (\TEDIT.UNIQUIFY.CHARLOOKS 67473 . 69133) ( -\TEDIT.UNIQUIFY.PARALOOKS 69135 . 70402) (\TEDIT.UNIQUIFY.ALL 70404 . 72379) ( -\TEDIT.FLUSH.UNUSED.LOOKS 72381 . 74572)) (74607 85703 (TEDIT.LOOKS 74617 . 77006) (TEDIT.GET.LOOKS -77008 . 79037) (TEDIT.SUBLOOKS 79039 . 83067) (TEDIT.FINDLOOKS 83069 . 85701)) (85778 112026 ( -\TEDIT.CHANGE.CHARLOOKS 85788 . 94784) (\TEDIT.CHANGE.CHARLOOKS.NEW 94786 . 98411) ( -\TEDIT.CHARLOOKS.CHANGE.FONT 98413 . 106037) (\TEDIT.LOOKS 106039 . 109368) (\TEDIT.FONTCOPY 109370 . -110871) (\TEDIT.COERCE.FONTCLASS 110873 . 112024)) (112069 143234 (\TEDIT.EQFMTSPEC 112079 . 115294) ( -TEDIT.GET.PARALOOKS 115296 . 119343) (\TEDIT.PARSE.PARALOOKS.LIST 119345 . 126687) (TEDIT.PARALOOKS -126689 . 127729) (\TEDIT.CHANGE.PARALOOKS 127731 . 134907) (\TEDIT.CHANGE.PARALOOKS.NEW 134909 . -138892) (TEDIT.COPY.PARALOOKS 138894 . 141568) (\TEDIT.PARABOUNDS 141570 . 143232)) (143294 150692 ( -TEDIT.SUBPARALOOKS 143304 . 147088) (SAMEPARALOOKS 147090 . 150690)) (150693 151380 ( -\TEDIT.MARK.REVISION 150703 . 151378))))) + (FILEMAP (NIL (22599 24541 (\TEDIT.CHARLOOKS.DEFPRINT 22609 . 23745) (\TEDIT.PARALOOKS.DEFPRINT 23747 + . 24539)) (24645 25741 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24655 . 25363) (\TEDIT.CREATE.FACE.MENU 25365 + . 25537) (\TEDIT.CREATE.SIZE.MENU 25539 . 25739)) (26642 26831 (\TEDIT.CHARLOOK.FEATUREP 26652 . +26829)) (27133 50405 (\TEDIT.CHARLOOKS.FROM.FONT 27143 . 29356) (\TEDIT.EQCLOOKS 29358 . 31980) ( +\TEDIT.SAMECLOOKS 31982 . 34652) (TEDIT.CARETLOOKS 34654 . 36200) (TEDIT.COPY.LOOKS 36202 . 39485) ( +\TEDIT.UNPARSE.CHARLOOKS.LIST 39487 . 42454) (\TEDIT.MODIFYLOOKS 42456 . 44450) (TEDIT.NEW.FONT 44452 + . 44899) (\TEDIT.CARETLOOKS.VERIFY 44901 . 45738) (\TEDIT.CARETPIECE 45740 . 46045) ( +\TEDIT.GET.INSERT.CHARLOOKS 46047 . 48783) (\TEDIT.GET.TERMSA.WIDTHS 48785 . 49201) ( +\TEDIT.PARSE.CHARLOOKS.LIST 49203 . 50403)) (50406 66924 (\TEDIT.TRANSLATE.ASCIICHARS 50416 . 60902) ( +\TEDIT.CONVERT.TO.FORMATTED 60904 . 66922)) (67936 75047 (\TEDIT.UNIQUIFY.CHARLOOKS 67946 . 69606) ( +\TEDIT.UNIQUIFY.PARALOOKS 69608 . 70875) (\TEDIT.UNIQUIFY.ALL 70877 . 72852) ( +\TEDIT.FLUSH.UNUSED.LOOKS 72854 . 75045)) (75080 86176 (TEDIT.LOOKS 75090 . 77479) (TEDIT.GET.LOOKS +77481 . 79510) (TEDIT.SUBLOOKS 79512 . 83540) (TEDIT.FINDLOOKS 83542 . 86174)) (86251 112572 ( +\TEDIT.CHANGE.CHARLOOKS 86261 . 95330) (\TEDIT.CHANGE.CHARLOOKS.NEW 95332 . 98957) ( +\TEDIT.CHARLOOKS.CHANGE.FONT 98959 . 106583) (\TEDIT.LOOKS 106585 . 109914) (\TEDIT.FONTCOPY 109916 . +111417) (\TEDIT.COERCE.FONTCLASS 111419 . 112570)) (112615 143889 (\TEDIT.EQFMTSPEC 112625 . 115840) ( +TEDIT.GET.PARALOOKS 115842 . 119889) (\TEDIT.PARSE.PARALOOKS.LIST 119891 . 127233) (TEDIT.PARALOOKS +127235 . 128275) (\TEDIT.CHANGE.PARALOOKS 128277 . 135562) (\TEDIT.CHANGE.PARALOOKS.NEW 135564 . +139547) (TEDIT.COPY.PARALOOKS 139549 . 142223) (\TEDIT.PARABOUNDS 142225 . 143887)) (143949 151347 ( +TEDIT.SUBPARALOOKS 143959 . 147743) (SAMEPARALOOKS 147745 . 151345)) (151348 152035 ( +\TEDIT.MARK.REVISION 151358 . 152033))))) STOP diff --git a/library/tedit/TEDIT-LOOKS.LCOM b/library/tedit/TEDIT-LOOKS.LCOM index 6e5303e43821d35c5c582caf79302c95079b62ed..fea1ad92137a63b359e126578311ed78c56ab187 100644 GIT binary patch delta 1878 zcmah~-EZ4e6nEUMU+YIwvNf}sab>!$DNC@g?R>avsgpX3hnt%v?z%Cg(9DH|3|eJ- zU_vO<_JV|j*sk~kHUSUgB~2FbGUNv&M0f(k0}>Cw8*jAY6#>_FOgA)%m*kvt&-tC- z`CXmspFW{K|CIi4Bgm(sYnzQIV4u(`d5bosBhhRaY;)d**7b(%5X=SpF~VahEsXB?w^( z@Av?|e>-%yA`IvDBf!_=OaKa6x9nFS}#RcNn^l5KAPRCxbko*Sxm{C z#DdZPZ|wAioqb>TFw28HQj0}Y1RCH#7Uhiypehta(JLe5m+Cx^9}OKJd4Hv9nx-;7 zh<_YPO{Soext=d5#gYo}q87$W!~8@XWO7Q;xe^dh;qT^xv?O-!4zq)}E{`lxqVHea zfR9ql_NiP?%pI}&ROp9HP8sc+lXiU2c9fuK`KfsU;{6GRhCJT8IfEmUip0P&Kbkg@;c02Q^f_O%s^q8*SxRx6eayVQ0CP%sotw@n@( zef0@Q&IJ*{s#Y{EksQGppBNC}lX9Us5u&I8SFgbN!|4Yu^&V3>WGN2^ZteOmr@skO zZ|vRO^%YjCX=kwBpffiKEqQ@lkKQMKwC)9L?^)$bTZcQ!2a0nc?TAuyWXko$veI(Z z)$o!T*c{7uNki)HF7=BN2#ljpnHlH~SEt%S)$em}^f|2G~G~N1I zdEIVv>T>&@SBEbzhMSCU+m1V2Yv!13Tea5r$gcUy8N|x>D90!ViAlR=$U?#1SoxUc zv42lN$6S_XJ6xW!kiQ#7Q&pzyFHewM6NUELK?_Yxy=-=;t9~>!SN2=2-o3M=^~ohN3?l zL356}%=nP4kppV!_T^LEoO5!2mwJGIJ(CzE^k(St%`~ z4UpjR?>k3nDUSDcjs{a+K`DneN~#XxTmru;1@VpLB}U-9(+!Pm*GA0H3|$2h$K!98 z!!L;5sd_%+5)iq#7csELGCIq}+er6iR$*Y0#8N~oll)#$0mL^M_ zu+Jv>6z84sBn^Y1;~^d zp*(q%l23RX(d43m(&s=tN%lUQ1@X8998eIKc%Z9U1H?t)AWaZ}jYHJb@)xv{mbPUe z+~iDkv!QQq*RKIl6hY0!5Czyr6Ct!a_xTDg56?@IXUZM~2vB_N2^Bam4pWJK1|+!$ pIFJ{xUpW`x0UM2OR<;}D8^Z!93AnB#XpzGoE3!}O{H*+0_y-9<;(Gu9 delta 1903 zcma)7O>7%Q6kc!A)JfCS308i#KYCiF!3l}A|Lb)~o3*p9x2!$e^|~fd;l_2qY1*cw zl>k8%R0*jUq&5Q*+$a(~aLP{u7hr{u0CVmQfz%_n^uz@TW_N88pa(8H@4cD#y>Gsm zdHdx9`sdH+yOp@WPvsVCQvxT*z-ehoOLOwQ<)-x)aK)i1=|dPD`on-=l2TOvxpB6-c?s2u0Chx&8>1Z%X+tzjR&?N8%sy z{T}}lm%JF25K}mIjG;vlUsaCdkB;;nCdc6#FS;mm7I=00!I4W7YjdXK&Vx-36N*M< zj|PdPpj@0omRWNBc@^xeKgxg{^NfFzw(Ix-338@Wa{W}_6~K0N)ACIYkTtg-QVTJ} zKpwI}0DLEHuMG`TR7Y!TdS~YI){dB3r>8&cxV;&vWPXZMmv`4UBi3vq6YRU$6>OJ; zw00ohq@NIfe7PO)y`%bfz9RSZ_x0eYwi4l(4}_}GUZ#-HKQ%ujW5i=YIcPZn*H^gLkM;bY*HTt6CQ##3D&n;EG9j~bnJ9) zT#Ho4Jj4=06COH7jIKx3V;-77V}V2;Hb{I!Ml2c&HH-IpD6u_?FHW4Wm#PUrXM#ba zOm&o?)Y0Vb)@3hW59Bc$^}3D{54+K5AU<>Wps!khOF;ayrM}JwQ-QsS^%=E?kYwm8 zv-#%;zC9zI{%YBJa^HG)Ijr97C6_x)@$zAj;39a9rBFd{7M%zRG{_TBQ!0M_xuF47 zO|{=(DUT{8!@>tnWfu1yX5K~QdaHug>UU=h*G6X1B_Y0@S+@OVk|fEX$lBAQg3yk( zs(`|!@VBSVF@oBjshH$ZRg$jhS_Vj(iXSJB4oNAlJ#U=LhK)et1pLbBk%){va;@&3 zK8SA@<7GjSA&ZJx-339CpkNd-wV zV4FtPATmi{895ge$!8dL9z|4u;3!0Evv}StnHeI4OcE2A%-Nh z(InE52#+A_w@zulM{0-bMM2!xO+}9Mt$>R_L~2tedit>TEDIT-MENU.;460 161531 +(FILECREATED "19-Mar-2025 10:01:40" {WMEDLEY}tedit>TEDIT-MENU.;461 161733 :EDIT-BY rmk :CHANGES-TO (FNS \TEDIT.EXPANDEDMENU.ACTIONFN) - :PREVIOUS-DATE "15-Mar-2025 23:41:24" {WMEDLEY}tedit>TEDIT-MENU.;459) + :PREVIOUS-DATE "16-Mar-2025 21:45:05" {WMEDLEY}tedit>TEDIT-MENU.;460) (PRETTYCOMPRINT TEDIT-MENUCOMS) @@ -1343,7 +1343,8 @@ (RETURN 'DON'T]) (\TEDIT.EXPANDEDMENU.ACTIONFN - [LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM MAINSTREAM) (* ; "Edited 16-Mar-2025 21:43 by rmk") + [LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM MAINSTREAM) (* ; "Edited 18-Mar-2025 23:54 by rmk") + (* ; "Edited 16-Mar-2025 21:43 by rmk") (* ; "Edited 14-Mar-2025 15:43 by rmk") (* ; "Edited 5-Mar-2025 20:51 by rmk") (* ; "Edited 7-Jan-2025 22:36 by rmk") @@ -1413,7 +1414,8 @@ REPLACEMENT))) [TEDIT.SUBSTITUTE MAINSTREAM PATTERN (OR REPLACEMENT "") - (EQ 'ON (LISTGET STATES 'CONFIRM])]) + (EQ 'ON (LISTGET STATES 'CONFIRM)) + (EQ 'ON (LISTGET STATES 'USENEWLOOKS])]) (QUIT (* ; "Is it OK to quit the main edit?") (\TEDIT.FINISHEDIT? MAINSTREAM)) (PAGELAYOUT (* ; "Page layout menu") @@ -2639,19 +2641,19 @@ MARGINBAR.INIT 48831 . 50224) (\TEDIT.PARALOOKS.TO.MARBAR 50226 . 51492)) (52319 TEDIT.MENUSTREAM 52329 . 53329) (TEDITMENUP 53331 . 54300) (\TEDIT.MENU.START 54302 . 58649) ( \TEDIT.MENU.BUTTONEVENTFN 58651 . 59223)) (59544 67466 (\TEDIT.MENU.CREATE 59554 . 61365) ( \TEDIT.MENU.PARSE 61367 . 65056) (\TEDIT.MENU.NEUTRALIZE 65058 . 67129) (\TEDITMENU.RECORD.UNFORMATTED - 67131 . 67464)) (67532 87322 (\TEDIT.EXPANDEDMENU.CREATE 67542 . 72944) (\TEDIT.EXPANDEDMENU.START -72946 . 74376) (\TEDIT.EXPANDEDMENU.FN 74378 . 77633) (\TEDIT.EXPANDEDMENU.ACTIONFN 77635 . 87320)) ( -87384 102941 (\TEDIT.PARAMENU.CREATE 87394 . 93415) (\TEDIT.PARAMENU.START 93417 . 94349) ( -\TEDIT.APPLY.PARALOOKS 94351 . 95403) (\TEDIT.SHOW.PARALOOKS 95405 . 98188) (\TEDIT.PARAMENU.FILLIN -98190 . 102939)) (103146 129070 (\TEDIT.CHARMENU.CREATE 103156 . 105760) (\TEDIT.CHARMENU.START 105762 - . 106859) (\TEDIT.CHARMENU.SPEC 106861 . 111392) (\TEDIT.CHARMENU.PARSE 111394 . 114562) ( -\TEDIT.CHARMENU.FILLIN 114564 . 118909) (\TEDIT.SHOW.CHARLOOKS 118911 . 122168) ( -\TEDIT.APPLY.CHARLOOKS 122170 . 123331) (\TEDIT.OFFSETTYPE.STATEFN 123333 . 125296) ( -\TEDIT.OTHER.STATECHANGEFN 125298 . 126943) (\TEDIT.OTHER.SELECTFN 126945 . 129068)) (129132 155571 ( -\TEDIT.PAGEMENU.CREATE 129142 . 136336) (\TEDIT.SHOW.PAGELOOKS 136338 . 138133) ( -\TEDIT.PAGEMENU.FILLIN 138135 . 139685) (\TEDIT.PAGEREGION.UNPARSE 139687 . 148877) ( -\TEDIT.APPLY.PAGELOOKS 148879 . 150806) (\TEDIT.CHANGE.PAGELOOKS 150808 . 154727) ( -\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 154729 . 155569)) (155572 161375 (\TEDIT.PAGEMENU.CREATE.HEADINGS -155582 . 158394) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 158396 . 159821) ( -\TEDIT.PAGEMENU.HEADINGS.STATEFN 159823 . 161373))))) + 67131 . 67464)) (67532 87524 (\TEDIT.EXPANDEDMENU.CREATE 67542 . 72944) (\TEDIT.EXPANDEDMENU.START +72946 . 74376) (\TEDIT.EXPANDEDMENU.FN 74378 . 77633) (\TEDIT.EXPANDEDMENU.ACTIONFN 77635 . 87522)) ( +87586 103143 (\TEDIT.PARAMENU.CREATE 87596 . 93617) (\TEDIT.PARAMENU.START 93619 . 94551) ( +\TEDIT.APPLY.PARALOOKS 94553 . 95605) (\TEDIT.SHOW.PARALOOKS 95607 . 98390) (\TEDIT.PARAMENU.FILLIN +98392 . 103141)) (103348 129272 (\TEDIT.CHARMENU.CREATE 103358 . 105962) (\TEDIT.CHARMENU.START 105964 + . 107061) (\TEDIT.CHARMENU.SPEC 107063 . 111594) (\TEDIT.CHARMENU.PARSE 111596 . 114764) ( +\TEDIT.CHARMENU.FILLIN 114766 . 119111) (\TEDIT.SHOW.CHARLOOKS 119113 . 122370) ( +\TEDIT.APPLY.CHARLOOKS 122372 . 123533) (\TEDIT.OFFSETTYPE.STATEFN 123535 . 125498) ( +\TEDIT.OTHER.STATECHANGEFN 125500 . 127145) (\TEDIT.OTHER.SELECTFN 127147 . 129270)) (129334 155773 ( +\TEDIT.PAGEMENU.CREATE 129344 . 136538) (\TEDIT.SHOW.PAGELOOKS 136540 . 138335) ( +\TEDIT.PAGEMENU.FILLIN 138337 . 139887) (\TEDIT.PAGEREGION.UNPARSE 139889 . 149079) ( +\TEDIT.APPLY.PAGELOOKS 149081 . 151008) (\TEDIT.CHANGE.PAGELOOKS 151010 . 154929) ( +\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 154931 . 155771)) (155774 161577 (\TEDIT.PAGEMENU.CREATE.HEADINGS +155784 . 158596) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 158598 . 160023) ( +\TEDIT.PAGEMENU.HEADINGS.STATEFN 160025 . 161575))))) STOP diff --git a/library/tedit/TEDIT-MENU.LCOM b/library/tedit/TEDIT-MENU.LCOM index fc61c94de8e69b7ea29b12c24e7f8aab19d28cad..c1ffdce377264b6c36d603b774e9f272b6226aa9 100644 GIT binary patch delta 752 zcmZut&x_MQ6gF8Zw6GMZDB|VOrR=V_aVD9WBn6eUoi=fkOwA;A7e%PFh`7kID2Nx2 zUab-QAH3!yc=Wh`g6O~C9=toL4X)4}GVjOtz4yKE%bEV;On-mSa`&R?$)1T!3K(?} z?h>?k?p(vW&}d`lU(>{03wM#V_LLptkWT zs9#WDA@UExZTe5kWPADlwOK1pMNhMB1UyMZ0yZO{^aQEld&!_L#)n`N3m*NgMczIy zRmWb$f!Q=)Ty8yPO5fT(MiBLk5l?|SXf;*xRPqogb5!9V6}@{viBs|WYH7sd%#f*< zD4JzL-ke^!NinM+=i7*a&x4Vl2E$1Z55xqBNJwq!8i5}0GDSosl@32`g-t+6j+ zz6H#3VTCkZsBl;ndGdfKz>o#%sFW)&82Cq(xzwf*@}atwQt(3Mj2cwh5DKv`ftnVK zy~JB(%F%HtnK*bEgx;aZQXq`N{VY&{5+-8xSdd8`^U0D|9H)+^+bI8>f$p;WG}~5B J@jLtW;i!hiav)Eea9qUW{TaPsL^egbwJrvbIm-qZ02PU$CJW23g-ixb(&q$p(fzox^D z4bVTVwF^KvL67Jcma5|kUS5ll7G?UIwQgfrowpYg+x}f$9^AI9S9+-MQW~FIco#38 zF{cvxjS8)c)mPQFeB>arOl9Ds3ub>@IFZP@9W~qqpN4Sn2usDLoUt5;R08KjPp;HE zocX8LG31c8oxUspIX|A7%OaNvATk5&6smm(&|~`7!SY!o0qBGGSDWb4zXRo-uD+2i*^E{}wr{$7k3|3e2xGQrbB{Z>78_yCC=dW)LBQ=mKz|FTGcM^nopKCywZOIHU z2*I!{B%n_rD(BWACy>aVF@O;eiP3Eab&Ru#QkyxT8^Taz;wWRrui=a`+}6ThmEfs diff --git a/library/tedit/TEDIT-RELEASENOTES.PDF b/library/tedit/TEDIT-RELEASENOTES.PDF new file mode 100644 index 0000000000000000000000000000000000000000..54c0e08cc7eb61386981dd6351f6e005eaa06b95 GIT binary patch literal 47321 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 Dl>9dm delta 247 zcmeC~XS&kIv>}s=v1)S`S6Tw2(B_L-OPMCm&*s>?HP?)pQE2j;0?Em(g|d@#3ON`B zCI=L%KuA_W1_lPP$@2tedit>TEDIT-SELECTION.;665 153653 +(FILECREATED "19-Mar-2025 16:27:02" {WMEDLEY}tedit>TEDIT-SELECTION.;674 154655 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.SELPIECES.CHARTRANSFORM) + :CHANGES-TO (FNS \TEDIT.SELPIECES.COPY \TEDIT.SELPIECES \TEDIT.RESET.EXTEND.PENDING.DELETE) + (I.S.OPRS inselpieces) - :PREVIOUS-DATE "15-Mar-2025 22:39:40" {WMEDLEY}tedit>TEDIT-SELECTION.;664) + :PREVIOUS-DATE "16-Mar-2025 10:06:15" {WMEDLEY}tedit>TEDIT-SELECTION.;665) (PRETTYCOMPRINT TEDIT-SELECTIONCOMS) @@ -1203,7 +1204,8 @@ (DEFINEQ (\TEDIT.RESET.EXTEND.PENDING.DELETE - [LAMBDA (TEXTOBJ) (* ; "Edited 26-Nov-2024 23:44 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 19-Mar-2025 13:24 by rmk") + (* ; "Edited 26-Nov-2024 23:44 by rmk") (* ; "Edited 9-Mar-2024 11:37 by rmk") (* ; "Edited 19-Feb-2024 23:10 by rmk") (* ; "Edited 24-Dec-2023 00:18 by rmk") @@ -1213,9 +1215,14 @@ (* ;; "Reset the 'Extend Pending Delete' status") - (\TEDIT.SET.SEL.LOOKS (TEXTSEL TEXTOBJ) - 'NORMAL) - (SETTOBJ TEXTOBJ BLUEPENDINGDELETE NIL]) + (LET [(TEXTOBJ (CL:IF (type? TEXTOBJ TSTREAM) + TSTREAM + (GETTSTR TSTREAM TEXTOBJ))] + (\TEDIT.SHOWSEL (TEXTSEL TEXTOBJ) + NIL TEXTOBJ) + (\TEDIT.SET.SEL.LOOKS (TEXTSEL TEXTOBJ) + 'NORMAL) + (SETTOBJ TEXTOBJ BLUEPENDINGDELETE NIL]) (\TEDIT.SET.SEL.LOOKS [LAMBDA (SEL OPERATION) (* ; "Edited 28-Feb-2025 17:45 by rmk") @@ -1834,7 +1841,8 @@ (DEFINEQ (\TEDIT.SELPIECES - [LAMBDA (SEL/FIRSTCHAR LASTCHAR TEXTOBJ) (* ; "Edited 26-Nov-2024 17:49 by rmk") + [LAMBDA (SEL/FIRSTCHAR LASTCHAR TEXTOBJ) (* ; "Edited 19-Mar-2025 16:10 by rmk") + (* ; "Edited 26-Nov-2024 17:49 by rmk") (* ; "Edited 22-Nov-2024 14:24 by rmk") (* ; "Edited 7-Jul-2024 09:10 by rmk") (* ; "Edited 29-Apr-2024 13:13 by rmk") @@ -1866,15 +1874,17 @@ (* ;; "") - (* ;; "For convenience the %"selection%" can be specified by FIRSTCHAR and LASTCHAR parameters, plus TEXTOBJ. ") + (* ;; "For convenience the %"selection%" can be specified by FIRSTCHAR and LASTCHAR parameters, plus TEXTOBJ.") + + (* ;; " Returns NIL on an empty selection rather than the empty SELPIECES (SPLEN 0, NIL for pieces). Somehow SELPIECES.COPY gets screwed up. To be debugged. Meanwhile, callers hopefully test for NIL.") (LET (FIRSTCHAR LEFTPC RIGHTPC) (if (type? SELECTION SEL/FIRSTCHAR) then (if (FGETSEL SEL/FIRSTCHAR SET) then (SETQ FIRSTCHAR (FGETSEL SEL/FIRSTCHAR CH#)) - [SETQ LASTCHAR (CL:IF (EQ 0 (FGETSEL SEL/FIRSTCHAR DCH)) - FIRSTCHAR - (SUB1 (FGETSEL SEL/FIRSTCHAR CHLIM)))] + [SETQ LASTCHAR (SUB1 (CL:IF (EQ 0 (FGETSEL SEL/FIRSTCHAR DCH)) + FIRSTCHAR + (FGETSEL SEL/FIRSTCHAR CHLIM))] else (SETQ FIRSTCHAR 0) (SETQ LASTCHAR -1)) elseif (type? TEDITHISTORYEVENT SEL/FIRSTCHAR) @@ -1897,7 +1907,9 @@ SPLASTCHAR _ LASTCHAR))]) (\TEDIT.SELPIECES.COPY - [LAMBDA (SELPIECES OPERATION TOTEXTOBJ FROMTEXTOBJ) (* ; "Edited 26-Nov-2024 23:31 by rmk") + [LAMBDA (SELPIECES OPERATION TOTEXTOBJ FROMTEXTOBJ CHARLOOKS) + (* ; "Edited 19-Mar-2025 16:26 by rmk") + (* ; "Edited 26-Nov-2024 23:31 by rmk") (* ; "Edited 22-Nov-2024 15:38 by rmk") (* ; "Edited 11-Dec-2023 08:16 by rmk") (* ; "Edited 2-Jun-2023 11:21 by rmk") @@ -1911,13 +1923,14 @@ (CL:WHEN SELPIECES (CL:UNLESS FROMTEXTOBJ (SETQ FROMTEXTOBJ TOTEXTOBJ)) - (for PC NPC PREVPC NEWFIRSTPIECE inselpieces SELPIECES + (for PC NPC PREVPC NEWFIRSTPIECE inselpieces (PROGN SELPIECES) do (SETQ NPC (\TEDIT.COPYPIECE PC FROMTEXTOBJ TOTEXTOBJ NIL OPERATION)) (CL:UNLESS NPC (* ; "Was an object-copy disallowed?") (RETURN)) (* ;; "Linke the new pieces together") + (CL:WHEN CHARLOOKS (FSETPC NPC PCHARLOOKS CHARLOOKS)) (if PREVPC then (SETPC PREVPC NEXTPIECE NPC) else (SETQ NEWFIRSTPIECE NPC)) @@ -2472,25 +2485,25 @@ (ADDTOVAR LAMA TEDIT.SELPROP) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (15592 17413 (\TEDIT.SELECTION.DEFPRINT 15602 . 17411)) (17450 18955 ( -\TEDIT.SET.GLOBAL.SELECTIONS 17460 . 18953)) (18956 24808 (\TEDIT.SELECTED.PIECES 18966 . 20486) ( -\TEDIT.FIND.PROTECTED.END 20488 . 22157) (\TEDIT.FIND.PROTECTED.START 22159 . 24017) ( -\TEDIT.WORD.BOUND 24019 . 24806)) (24942 59141 (\TEDIT.EXTEND.SEL 24952 . 32040) (\TEDIT.SCAN.LINE -32042 . 43820) (\TEDIT.SCAN.LINE.WORD 43822 . 49183) (\TEDIT.XYTOSEL 49185 . 56294) (\TEDIT.REGIONTYPE - 56296 . 57315) (\TEDIT.XYTOSEL.INLINEP 57317 . 57772) (\TEDIT.XYTOSEL.LINE 57774 . 59139)) (59142 -72766 (\TEDIT.FIXSEL 59152 . 68765) (\TEDIT.CHTOLINEX 68767 . 72764)) (72767 76414 ( -\TEDIT.RESET.EXTEND.PENDING.DELETE 72777 . 73750) (\TEDIT.SET.SEL.LOOKS 73752 . 76412)) (76415 94815 ( -\TEDIT.SHOWSEL 76425 . 80885) (\TEDIT.SHOWSEL.HILIGHT 80887 . 85508) (\TEDIT.UPDATE.SEL 85510 . 89009) - (\TEDIT.CARETLINE 89011 . 89725) (\TEDIT.SEL.L1 89727 . 90410) (\TEDIT.SEL.LN 90412 . 91095) ( -\TEDIT.SEL.DELETEDCHARS 91097 . 94813)) (94816 99522 (\TEDIT.COPYSEL 94826 . 97292) ( -\TEDIT.SEL.CHANGED? 97294 . 99520)) (99553 112282 (\TEDIT.SELECT.OBJECT 99563 . 104069) ( -\TEDIT.SHOWSEL.OBJECT 104071 . 106233) (\TEDIT.CLIP.OBJECT 106235 . 108239) (\TEDIT.OPERATE.OBJECT -108241 . 112280)) (112310 130908 (\TEDIT.SELPIECES 112320 . 116268) (\TEDIT.SELPIECES.COPY 116270 . -118308) (\TEDIT.SELPIECES.CONCAT 118310 . 120189) (\TEDIT.SELPIECES.CHARTRANSFORM 120191 . 123400) ( -\TEDIT.SELPIECES.FROM.STRING 123402 . 128543) (\TEDIT.SELPIECES.TO.STRING 128545 . 130906)) (130961 -153484 (TEDIT.XYTOCH 130971 . 133355) (TEDIT.SELPROP 133357 . 137387) (TEDIT.GETPOINT 137389 . 139309) - (TEDIT.GETSEL 139311 . 140045) (TEDIT.GETSEL.PARA 140047 . 140996) (TEDIT.SCANSEL 140998 . 141946) ( -TEDIT.SET.SEL.LOOKS 141948 . 143327) (TEDIT.SETSEL 143329 . 148093) (TEDIT.SHOWSEL 148095 . 149375) ( -TEDIT.SEL.AS.STRING 149377 . 151862) (TEDIT.SEL.AS.SEXPR 151864 . 153150) (TEDIT.SELECTALL 153152 . -153482))))) + (FILEMAP (NIL (15676 17497 (\TEDIT.SELECTION.DEFPRINT 15686 . 17495)) (17534 19039 ( +\TEDIT.SET.GLOBAL.SELECTIONS 17544 . 19037)) (19040 24892 (\TEDIT.SELECTED.PIECES 19050 . 20570) ( +\TEDIT.FIND.PROTECTED.END 20572 . 22241) (\TEDIT.FIND.PROTECTED.START 22243 . 24101) ( +\TEDIT.WORD.BOUND 24103 . 24890)) (25026 59225 (\TEDIT.EXTEND.SEL 25036 . 32124) (\TEDIT.SCAN.LINE +32126 . 43904) (\TEDIT.SCAN.LINE.WORD 43906 . 49267) (\TEDIT.XYTOSEL 49269 . 56378) (\TEDIT.REGIONTYPE + 56380 . 57399) (\TEDIT.XYTOSEL.INLINEP 57401 . 57856) (\TEDIT.XYTOSEL.LINE 57858 . 59223)) (59226 +72850 (\TEDIT.FIXSEL 59236 . 68849) (\TEDIT.CHTOLINEX 68851 . 72848)) (72851 76834 ( +\TEDIT.RESET.EXTEND.PENDING.DELETE 72861 . 74170) (\TEDIT.SET.SEL.LOOKS 74172 . 76832)) (76835 95235 ( +\TEDIT.SHOWSEL 76845 . 81305) (\TEDIT.SHOWSEL.HILIGHT 81307 . 85928) (\TEDIT.UPDATE.SEL 85930 . 89429) + (\TEDIT.CARETLINE 89431 . 90145) (\TEDIT.SEL.L1 90147 . 90830) (\TEDIT.SEL.LN 90832 . 91515) ( +\TEDIT.SEL.DELETEDCHARS 91517 . 95233)) (95236 99942 (\TEDIT.COPYSEL 95246 . 97712) ( +\TEDIT.SEL.CHANGED? 97714 . 99940)) (99973 112702 (\TEDIT.SELECT.OBJECT 99983 . 104489) ( +\TEDIT.SHOWSEL.OBJECT 104491 . 106653) (\TEDIT.CLIP.OBJECT 106655 . 108659) (\TEDIT.OPERATE.OBJECT +108661 . 112700)) (112730 131910 (\TEDIT.SELPIECES 112740 . 117021) (\TEDIT.SELPIECES.COPY 117023 . +119310) (\TEDIT.SELPIECES.CONCAT 119312 . 121191) (\TEDIT.SELPIECES.CHARTRANSFORM 121193 . 124402) ( +\TEDIT.SELPIECES.FROM.STRING 124404 . 129545) (\TEDIT.SELPIECES.TO.STRING 129547 . 131908)) (131963 +154486 (TEDIT.XYTOCH 131973 . 134357) (TEDIT.SELPROP 134359 . 138389) (TEDIT.GETPOINT 138391 . 140311) + (TEDIT.GETSEL 140313 . 141047) (TEDIT.GETSEL.PARA 141049 . 141998) (TEDIT.SCANSEL 142000 . 142948) ( +TEDIT.SET.SEL.LOOKS 142950 . 144329) (TEDIT.SETSEL 144331 . 149095) (TEDIT.SHOWSEL 149097 . 150377) ( +TEDIT.SEL.AS.STRING 150379 . 152864) (TEDIT.SEL.AS.SEXPR 152866 . 154152) (TEDIT.SELECTALL 154154 . +154484))))) STOP diff --git a/library/tedit/TEDIT-SELECTION.LCOM b/library/tedit/TEDIT-SELECTION.LCOM index 642a278e803096b980baa5bb1468ed249020a7eb..2fb5bba0289e51c53e9562c1c86565e3c9b767c9 100644 GIT binary patch delta 516 zcmZ4Xn(^uz#t9L^mb$))MY=`?My3jeW>!Y#Rt82Bvu&izO*9p_lngBpvPOnh#)eh~ z#uE=}#QO(CDrDv4rO)NlHt7ADT!^r zgJ2-5$5xgNE|a;u)Y)C8c)5u1?4NAtWy`vrLBrBya0v6pyhDw@T8g8CGuFgTOjv=ltllhoj*cA*- zjm=DrC)Y9>0Zr!7)Kstv2yzYc^bZZzbpfgZnq-P_hmnz$v89!X0nna_wOUMOCYytp za+R$-6$}(YTq8pKoxC&^7*rS-7#JPcfF#37sdNy<1tK6KS?Apt_GhJh$oL?@pkZh} zd9SX7sF5*Dw}PROf}ekoucME`*w$|GiG%U;&{2(4QQZO}Ahyi-kGepnXKOi!|)79A( d7zBofrV3!Tf}w#ilx1N!`C*XA<{a;rS^y82XUG5m diff --git a/library/tedit/TEDIT.LCOM b/library/tedit/TEDIT.LCOM index 373423ec11b41fdd7571ce29a8c0570b6d9c2a9a..f34cff203791309dfad0879155ee6482e66c74c3 100644 GIT binary patch delta 738 zcmZuv&ubGw7){n#snj3URBb{0jM56)l9~OHO)Mc~42glR}|cYtU$*5_^$Y zyogdzFwRX63LZtOrk;ApIsZT*c=6^r|3NpK1hHgJ-#7E#oA5h~5IB+^4|wbSkHEe%)~niKr9Gy!Cnm43zb1LHm)hNWl^ zR=drOR9dM_^nknN+|TQMb}Q!t9`v@ufk8*Zp+TjFxt5|))u**+w)-*dLp7T1e4ozJ z?uS92rJdKq(g#0epO-@%jIRC5u-eb_j+se2WWgpB5RZntreXTS0m5t}H^a%8 zRo#o%V*C)Wq!oJBLlvILrL6RY1z7<@OX zW;=$pGPqjAY{#0?c}Q60CslX7>^YQ20iz;#W=xITA~wX42Pry+k_9mix?$zh6hr|m z?Y8OwVs8F?Gilo=xYRg%TZ*t>rBm2eje?(mcz8f0NW+o;ON#B4W;raf7M)?T`;-$< P^PBr7GU^92`m%5UuH43K delta 714 zcmZuvJ#W)c6m?8m6%<6HT7nMHOF&H}l*rHD4omFhfnV&}#x^vSI$)s+3LOxCAWNmH z5(D9FWnf@r0GbUUWki`6m@0(C(jO4<2XOo$I^^jM_gtNGKhArR-Mt@5m-D(#*_z`v^@IeIPV3&UKasBrK!(1>fGRb-Sh52bN&Y}rtP8Q8c zrJbR2m7^;U@Zj5Xdphd04RfzDW1VQu$(>9(c2efkS(;;VWOL;_vN(2Z65C2;W4kwf zXQWhO_f9{r_U!3#j(hg$VG*X}XUoinfK=FtaF>3+yWBvkkOC4lANpM*!p#snfCR0` z`ktSyiI7Uyf>l=MX)CzCp`n6tkMw66RV)(c3duYjBpOMe$HDr52gmd55Rk6J%)W?t zE+8$j&kb>qAz6oHHWFDRjJ#kw?=8*G^3V!)U+%|Gb^(d<9AVNZ!u`lId!VRm;CjKP z;eaAQK<--+2s$LA`viAzG8O$}U8VJ)Iywx^%k;Aw>+h=;5wkIv%PwYfj=;9% Date: Thu, 20 Mar 2025 22:57:34 -0700 Subject: [PATCH 13/26] Reworking Tedit abbreviations --- library/tedit/TEDIT | 186 +++++++++---------- library/tedit/TEDIT-ABBREV | 244 +++++++++++++++++-------- library/tedit/TEDIT-ABBREV.LCOM | Bin 3580 -> 5024 bytes library/tedit/TEDIT-RELEASENOTES.TEDIT | Bin 34699 -> 36057 bytes library/tedit/TEDIT.LCOM | Bin 34011 -> 33991 bytes 5 files changed, 253 insertions(+), 177 deletions(-) diff --git a/library/tedit/TEDIT b/library/tedit/TEDIT index cf6d446bb..3695a22eb 100644 --- a/library/tedit/TEDIT +++ b/library/tedit/TEDIT @@ -1,10 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "19-Mar-2025 15:47:23" {WMEDLEY}tedit>TEDIT.;786 152198 +(FILECREATED "20-Mar-2025 21:17:50" {WMEDLEY}tedit>TEDIT.;787 151076 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.REPLACE.SELPIECES \TEDIT.DELETE \TEDIT.COPY \TEDIT.MOVE) + :CHANGES-TO (FNS \TEDIT.WORD.FIRST \TEDIT.WORD.LAST \TEDIT.REPLACE.SELPIECES \TEDIT.DELETE + \TEDIT.COPY \TEDIT.MOVE) :PREVIOUS-DATE "16-Mar-2025 21:48:26" {WMEDLEY}TEDIT>TEDIT.;783) @@ -2302,7 +2303,8 @@ (DEFINEQ (\TEDIT.WORD.FIRST - [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 13-Mar-2025 21:15 by rmk") + [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 20-Mar-2025 20:21 by rmk") + (* ; "Edited 13-Mar-2025 21:15 by rmk") (* ; "Edited 20-Dec-2024 07:51 by rmk") (* ; "Edited 29-Apr-2024 10:56 by rmk") (* ; "Edited 20-Mar-2024 10:54 by rmk") @@ -2322,109 +2324,87 @@ (if (ILEQ CHNO 1) then 1 - else (LET ((TEXTOBJ (TEXTOBJ! (GETTSTR TSTREAM TEXTOBJ))) - READSA CH) - (SETQ READSA (fetch READSA of (OR WORDBOUNDTABLE (FGETTOBJ TEXTOBJ TXTWTBL) - TEDIT.WORDBOUND.READTABLE))) - (SETQ CHNO (IMIN CHNO (FGETTOBJ TEXTOBJ TEXTLEN))) - (\TEDIT.TEXTSETFILEPTR TSTREAM (SUB1 CHNO)) (* ; "Fileptrs are one back") - (SETQ CH (BIN TSTREAM)) (* ; "The char at CHNO") + else (LET* ((TEXTOBJ (TEXTOBJ! (GETTSTR TSTREAM TEXTOBJ))) + (READSA (fetch READSA of (OR WORDBOUNDTABLE (FGETTOBJ TEXTOBJ TXTWTBL) + TEDIT.WORDBOUND.READTABLE))) + CH) + (SETQ CHNO (IMIN CHNO (FGETTOBJ TEXTOBJ TEXTLEN))) - (* ;; "Skip over any preceding whitespace characters. .") + (* ;; "Skip over any preceding whitespace characters. .") - (for old CHNO from CHNO to 1 by -1 while (AND (CHARCODEP CH) - (EQ (\TEDIT.TTC WHITESPACE) - (\SYNCODE READSA CH))) - until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) - CLPROTECTED) do (SETQ CH (\BACKBIN TSTREAM))) + [SETQ CHNO (find CN from CHNO by -1 eachtime (SETQ CH (TEDIT.NTHCHARCODE TSTREAM CN) + ) + suchthat (OR (NOT (CHARCODEP CH)) + (NEQ (\TEDIT.TTC WHITESPACE) + (\SYNCODE READSA CH)) + (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED] - (* ;; "") + (* ;; "") - (* ;; "We've reached the first unprotected non-white character, and CHNO is the number of the character BEFORE that one. Continue backwards through the text characters until reaching the first preceding non-text.") + (* ;; + "We've reached the first unprotected non-white character, and CHNO is its number. ") - (for old CHNO from CHNO to 1 by -1 while (AND (CHARCODEP CH) - (EQ (\TEDIT.TTC TEXT) - (\SYNCODE READSA CH))) - until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) - CLPROTECTED) do (SETQ CH (\BACKBIN TSTREAM))) + (* ;; + "If a punct, we treat it as a break: Return its position. Otherwise, scan for the first non-text") - (* ;; "We've reached the first non-text character before the word, and CHNO is the character number of the character BEFORE it, or 0 if you hit the front of the document. We add 1 for that, plus 1 to convert fileptr to charno.") + (* ;; "If CHNO is text, then look for the first previous non-text. If non-text, look for the first previous text.") - (IPLUS CHNO (CL:IF (EQ CHNO 0) - 1 - 2)]) + (if (EQ (\TEDIT.TTC TEXT) + (\SYNCODE READSA CH)) + then [ADD1 (find CN from CHNO by -1 eachtime (SETQ CH (TEDIT.NTHCHARCODE TSTREAM + CN)) + suchthat (OR (NOT (CHARCODEP CH)) + (NEQ (\TEDIT.TTC TEXT) + (\SYNCODE READSA CH)) + (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED] + else CHNO]) (\TEDIT.WORD.LAST - [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 13-Mar-2025 21:06 by rmk") + [LAMBDA (TSTREAM CHNO WORDBOUNDTABLE) (* ; "Edited 20-Mar-2025 20:21 by rmk") + (* ; "Edited 13-Mar-2025 21:06 by rmk") (* ; "Edited 29-Apr-2024 10:57 by rmk") (* ; "Edited 20-Mar-2024 10:54 by rmk") - (* ; "Edited 17-Mar-2024 12:05 by rmk") (* ; "Edited 25-Dec-2023 18:38 by rmk") (* ; "Edited 23-May-2023 16:37 by rmk") - (* ; "Edited 22-May-2023 10:52 by rmk") (* ; "Edited 29-May-91 18:22 by jds") - (* ;; "Returns the number of the last character of the word containing CHNO or of the word following CHNO if CHNO does not map to a text character. Unlike the paragraph case, we don't get much help from the pieces, because words are not piece-aligned. Caller can do the piece manipulation given the result. ") - - (* ;; "We don't need to worry about invisibles here,\BIN skips them.") - - (* ;; "Image objects are treated as text characters.") + (* ;; "Returns the number of the last character of the word containing CHNO or of the word following CHNO if CHNO is whitespace. Unlike the paragraph case, we don't get much help from the pieces, because words are not piece-aligned. . ") (* ;;  "Punctuation is tricky: It stops whitespace and text, and its immediate successor doesn't matter.") - (PROG* ((TEXTOBJ (TEXTOBJ! (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM))) + (SETQ CHNO (IMAX CHNO 1)) + (PROG* ((TEXTOBJ (TEXTOBJ! (GETTSTR TSTREAM TEXTOBJ))) (READSA (fetch READSA of (OR WORDBOUNDTABLE (FGETTOBJ TEXTOBJ TXTWTBL) TEDIT.WORDBOUND.READTABLE))) (TEXTLEN (FGETTOBJ TEXTOBJ TEXTLEN)) CH) (CL:WHEN (IGEQ CHNO TEXTLEN) (RETURN TEXTLEN)) - (SETQ CHNO (IMAX CHNO 1)) - (\TEDIT.TEXTSETFILEPTR TSTREAM (SUB1 CHNO)) (* ; "Fileptrs are one back") - (SETQ CH (BIN TSTREAM)) (* ; "The char at CHNO") - (CL:WHEN (AND (CHARCODEP CH) - (EQ PUNCT.TTC (\SYNCODE READSA CH))) - - (* ;; "Started on a punct, return") - - (RETURN CHNO)) - - (* ;; "Skip over any following separator characters. Objects are consider to be text characters--don't skip over them. We don't know when the stream's piece might have changed, so test at each iteration.") - - (for old CHNO from CHNO to (SUB1 TEXTLEN) while (AND (CHARCODEP CH) - (EQ (\TEDIT.TTC WHITESPACE) - (\SYNCODE READSA CH))) - until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) - CLPROTECTED) do (SETQ CH (BIN TSTREAM))) - - (* ;; "CH is either TEXT, PUNCT, or image object.") - - (CL:WHEN (AND (CHARCODEP CH) - (EQ (\TEDIT.TTC PUNCT) - (\SYNCODE READSA CH))) - - (* ;; "Punct after whitespace, look no further, punct is our guy.") - - (RETURN CHNO)) - - (* ;; "We reached the last unprotected non-separator character, and CHNO is the number of the character AFTER that one. Continue forwards through the text characters until reaching the first following separator.") - - (for old CHNO from CHNO to (SUB1 TEXTLEN) while (AND (CHARCODEP CH) - (EQ (\TEDIT.TTC TEXT) - (\SYNCODE READSA CH))) - until (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) - CLPROTECTED) do (SETQ CH (BIN TSTREAM))) - - (* ;; "CHNO is the number of the first non-TEXT character") - - (RETURN (if (IGEQ CHNO TEXTLEN) - then - (* ;; - "The last character of the word is the last character of the document.") - TEXTLEN - else (SUB1 CHNO]) + (* ;; "Skip over any following whitespace characters, arriving at first text/punct/object.") + + [SETQ CHNO (find CN from CHNO by 1 eachtime (SETQ CH (TEDIT.NTHCHARCODE TSTREAM CN)) + suchthat (OR (NOT (CHARCODEP CH)) + (NEQ (\TEDIT.TTC WHITESPACE) + (\SYNCODE READSA CH)) + (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED] + + (* ;; "Continue through the word characters. If CH is not text, we treat it as a break (stop and return its position). ") + + (RETURN (if (EQ (\TEDIT.TTC TEXT) + (\SYNCODE READSA CH)) + then [SUB1 (find CN from CHNO eachtime (SETQ CH (TEDIT.NTHCHARCODE TSTREAM CN) + ) + suchthat (OR (NOT (CHARCODEP CH)) + (NEQ (\TEDIT.TTC TEXT) + (\SYNCODE READSA CH)) + (GETCLOOKS (PCHARLOOKS (GETTSTR TSTREAM PIECE)) + CLPROTECTED] + else CHNO]) ) (FILESLOAD TEDIT-FIND TEDIT-HISTORY TEDIT-FILE TEDIT-OLDFILE TEDIT-WINDOW TEDIT-SELECTION @@ -2435,7 +2415,7 @@ (* ; "TEDIT Support information") -(RPAQQ TEDITSYSTEMDATE "19-Mar-2025 15:47:23") +(RPAQQ TEDITSYSTEMDATE "20-Mar-2025 21:17:50") @@ -2445,26 +2425,26 @@ (ADDTOVAR PRINTFILETYPES (TEDIT (TEST \TEDIT.GET.TRAILER) (EXTENSION (TEDIT)))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4874 7268 (MAKE-TEDIT-EXPORTS.ALL 4884 . 5430) (UPDATE-TEDIT 5432 . 6361) (EDIT-TEDIT -6363 . 7266)) (8776 36242 (TEDIT 8786 . 11364) (TEXTSTREAM 11366 . 13286) (TEXTSTREAMP 13288 . 13672) -(COERCETEXTSTREAM 13674 . 17885) (TEDIT.CONCAT 17887 . 21193) (TEDITSTRING 21195 . 22109) (TEDIT-SEE -22111 . 22670) (TEDIT.COPY 22672 . 24817) (TEDIT.DELETE 24819 . 26071) (TEDIT.INSERT 26073 . 29031) ( -TEDIT.TERPRI 29033 . 30147) (TEDIT.KILL 30149 . 31065) (TEDIT.QUIT 31067 . 32433) (TEDIT.MOVE 32435 . -33323) (TEDIT.STRINGWIDTH 33325 . 33996) (TEDIT.CHARWIDTH 33998 . 36240)) (36243 38184 (TEXTOBJ 36253 - . 36718) (COERCETEXTOBJ 36720 . 38182)) (39584 41354 (TDRIBBLE 39594 . 41352)) (41395 53503 ( -TEDIT.INSERT.OBJECT 41405 . 46246) (TEDIT.EDIT.OBJECT 46248 . 48589) (TEDIT.OBJECT.CHANGED 48591 . -51458) (TEDIT.MAP.OBJECTS 51460 . 53031) (\TEDIT.FIRST.OBJPIECE 53033 . 53266) (\TEDIT.NEXT.OBJPIECE -53268 . 53501)) (53526 60969 (\TEDIT.CONCAT.PAGEFRAMES 53536 . 58603) (\TEDIT.GET.PAGE.HEADINGS 58605 - . 59634) (\TEDIT.CONCAT.INSTALL.HEADINGS 59636 . 60967)) (60970 64399 (\TEDIT.MOVE.MSG 60980 . 63061) - (\TEDIT.READONLY 63063 . 64397)) (64400 79236 (TEDIT.NCHARS 64410 . 64783) (TEDIT.RPLCHARCODE 64785 - . 72800) (TEDIT.NTHCHARCODE 72802 . 75159) (TEDIT.NTHCHAR 75161 . 75419) (\TEDIT.PIECE.NTHCHARCODE -75421 . 79234)) (79282 134183 (\TEDIT1 79292 . 81369) (\TEDIT.INSERT 81371 . 87348) (\TEDIT.MOVE 87350 - . 94700) (\TEDIT.COPY 94702 . 98835) (\TEDIT.REPLACE.SELPIECES 98837 . 103002) ( -\TEDIT.INSERT.SELPIECES 103004 . 105889) (\TEDIT.RESTARTFN 105891 . 108396) (\TEDIT.CHARDELETE 108398 - . 111225) (\TEDIT.COPYPIECE 111227 . 116075) (\TEDIT.APPLY.OBJFN 116077 . 119274) (\TEDIT.DELETE -119276 . 124313) (\TEDIT.DIFFUSE.PARALOOKS 124315 . 126586) (\TEDIT.WORDDELETE 126588 . 128144) ( -\TEDIT.WORDDELETE.FORWARD 128146 . 129818) (\TEDIT.FINISHEDIT? 129820 . 134181)) (134184 134843 ( -\TEDIT.THELP 134194 . 134841)) (134877 143661 (\TEDIT.PARAPIECES 134887 . 136861) (\TEDIT.PARACHNOS -136863 . 137755) (\TEDIT.PARA.FIRST 137757 . 140624) (\TEDIT.PARA.LAST 140626 . 143659)) (143662 -151701 (\TEDIT.WORD.FIRST 143672 . 147428) (\TEDIT.WORD.LAST 147430 . 151699))))) + (FILEMAP (NIL (4933 7327 (MAKE-TEDIT-EXPORTS.ALL 4943 . 5489) (UPDATE-TEDIT 5491 . 6420) (EDIT-TEDIT +6422 . 7325)) (8835 36301 (TEDIT 8845 . 11423) (TEXTSTREAM 11425 . 13345) (TEXTSTREAMP 13347 . 13731) +(COERCETEXTSTREAM 13733 . 17944) (TEDIT.CONCAT 17946 . 21252) (TEDITSTRING 21254 . 22168) (TEDIT-SEE +22170 . 22729) (TEDIT.COPY 22731 . 24876) (TEDIT.DELETE 24878 . 26130) (TEDIT.INSERT 26132 . 29090) ( +TEDIT.TERPRI 29092 . 30206) (TEDIT.KILL 30208 . 31124) (TEDIT.QUIT 31126 . 32492) (TEDIT.MOVE 32494 . +33382) (TEDIT.STRINGWIDTH 33384 . 34055) (TEDIT.CHARWIDTH 34057 . 36299)) (36302 38243 (TEXTOBJ 36312 + . 36777) (COERCETEXTOBJ 36779 . 38241)) (39643 41413 (TDRIBBLE 39653 . 41411)) (41454 53562 ( +TEDIT.INSERT.OBJECT 41464 . 46305) (TEDIT.EDIT.OBJECT 46307 . 48648) (TEDIT.OBJECT.CHANGED 48650 . +51517) (TEDIT.MAP.OBJECTS 51519 . 53090) (\TEDIT.FIRST.OBJPIECE 53092 . 53325) (\TEDIT.NEXT.OBJPIECE +53327 . 53560)) (53585 61028 (\TEDIT.CONCAT.PAGEFRAMES 53595 . 58662) (\TEDIT.GET.PAGE.HEADINGS 58664 + . 59693) (\TEDIT.CONCAT.INSTALL.HEADINGS 59695 . 61026)) (61029 64458 (\TEDIT.MOVE.MSG 61039 . 63120) + (\TEDIT.READONLY 63122 . 64456)) (64459 79295 (TEDIT.NCHARS 64469 . 64842) (TEDIT.RPLCHARCODE 64844 + . 72859) (TEDIT.NTHCHARCODE 72861 . 75218) (TEDIT.NTHCHAR 75220 . 75478) (\TEDIT.PIECE.NTHCHARCODE +75480 . 79293)) (79341 134242 (\TEDIT1 79351 . 81428) (\TEDIT.INSERT 81430 . 87407) (\TEDIT.MOVE 87409 + . 94759) (\TEDIT.COPY 94761 . 98894) (\TEDIT.REPLACE.SELPIECES 98896 . 103061) ( +\TEDIT.INSERT.SELPIECES 103063 . 105948) (\TEDIT.RESTARTFN 105950 . 108455) (\TEDIT.CHARDELETE 108457 + . 111284) (\TEDIT.COPYPIECE 111286 . 116134) (\TEDIT.APPLY.OBJFN 116136 . 119333) (\TEDIT.DELETE +119335 . 124372) (\TEDIT.DIFFUSE.PARALOOKS 124374 . 126645) (\TEDIT.WORDDELETE 126647 . 128203) ( +\TEDIT.WORDDELETE.FORWARD 128205 . 129877) (\TEDIT.FINISHEDIT? 129879 . 134240)) (134243 134902 ( +\TEDIT.THELP 134253 . 134900)) (134936 143720 (\TEDIT.PARAPIECES 134946 . 136920) (\TEDIT.PARACHNOS +136922 . 137814) (\TEDIT.PARA.FIRST 137816 . 140683) (\TEDIT.PARA.LAST 140685 . 143718)) (143721 +150579 (\TEDIT.WORD.FIRST 143731 . 147616) (\TEDIT.WORD.LAST 147618 . 150577))))) STOP diff --git a/library/tedit/TEDIT-ABBREV b/library/tedit/TEDIT-ABBREV index 5ec2cb6e1..b66407106 100644 --- a/library/tedit/TEDIT-ABBREV +++ b/library/tedit/TEDIT-ABBREV @@ -1,18 +1,19 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "11-Mar-2025 23:30:40" {WMEDLEY}tedit>TEDIT-ABBREV.;12 9610 +(FILECREATED "20-Mar-2025 22:21:20" {WMEDLEY}tedit>TEDIT-ABBREV.;19 15563 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.ABBREV.EXPAND) + :CHANGES-TO (FNS \TEDIT.ABBREV.PARSE \TEDIT.ABBREV.EXPAND \TEDIT.TRY.ABBREV) + (VARS TEDIT-ABBREVCOMS) - :PREVIOUS-DATE "31-Oct-2024 17:53:21" {WMEDLEY}tedit>TEDIT-ABBREV.;9) + :PREVIOUS-DATE "11-Mar-2025 23:30:40" {WMEDLEY}tedit>TEDIT-ABBREV.;12) (PRETTYCOMPRINT TEDIT-ABBREVCOMS) (RPAQQ TEDIT-ABBREVCOMS - [(FNS \TEDIT.ABBREV.EXPAND \TEDIT.EXPAND.DATE \TEDIT.TRY.ABBREV) + [(FNS \TEDIT.ABBREV.EXPAND \TEDIT.ABBREV.PARSE \TEDIT.EXPAND.DATE \TEDIT.TRY.ABBREV) (GLOBALVARS TEDIT.ABBREVS) (INITVARS (TEDIT.ABBREVS '(("b" . "357,146") ("n" . "357,44") @@ -63,37 +64,141 @@ (DEFINEQ (\TEDIT.ABBREV.EXPAND - [LAMBDA (TSTREAM) (* ; "Edited 11-Mar-2025 23:30 by rmk") - (* ; "Edited 31-Oct-2024 17:50 by rmk") - (* ; "Edited 17-Mar-2024 12:06 by rmk") - (* ; "Edited 17-May-2023 13:31 by rmk") - (* ; "Edited 8-Sep-2022 23:53 by rmk") - (* ; "Edited 1-Aug-2022 12:04 by rmk") + [LAMBDA (TSTREAM TEXTOBJ SEL) (* ; "Edited 20-Mar-2025 21:52 by rmk") (* ; "Edited 30-May-91 19:27 by jds") (* ; "Expand an abbvreviation") - (PROG ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) - SEL CH# CH OLDLOOKS EXPANSION) - (SETQ SEL (TEXTSEL TEXTOBJ)) - (SETQ CH# (SUB1 (TEDIT.GETPOINT TSTREAM SEL))) - (if (ZEROP (GETSEL SEL DCH)) - then (* ; - "Point Selection, use the character to the left") - (CL:WHEN (ZEROP CH#) (* ; - "If we're off the front of the document, don't bother trying.") - (RETURN)) - (SETQ CH (TEDIT.NTHCHAR TSTREAM (SUB1 CH#))) - (TEDIT.SETSEL TSTREAM CH# 1 'RIGHT) - else (* ; "Selection isn't just a point") - (SETQ CH (TEDIT.SEL.AS.STRING TSTREAM))) - (SETQ EXPANSION (\TEDIT.TRY.ABBREV CH TSTREAM)) (* ; "Find the abbreviation's expansion --first try it as-is, then try the upper-case version to be safe.") - (if EXPANSION - then (* ; - "It exists, so insert it where the abbrev used to be") - (SETQ OLDLOOKS (TEDIT.GET.LOOKS TEXTOBJ)) - (TEDIT.DELETE TEXTOBJ SEL) (* ; - "First, delete the thing being expanded.") - (TEDIT.INSERT TSTREAM EXPANSION SEL OLDLOOKS) - else (TEDIT.PROMPTPRINT TSTREAM "No abbreviation to expand" T]) + (LET ((CANDIDATES (\TEDIT.ABBREV.PARSE TSTREAM SEL)) + CAND EXPANSION) + + (* ;; "Candidates are ordered longest first, so D doesn't override EMDASH.") + + (* ;; "Try literal match first, then fiddle the case.") + + (* ;; "If we don't find it in abbrevs, try for a character code.") + + [SETQ CAND (OR (find C in CANDIDATES suchthat (SETQ EXPANSION (\TEDIT.TRY.ABBREV + (CAR C) + TSTREAM))) + (for C in CANDIDATES suchthat (SETQ EXPANSION (\TEDIT.TRY.ABBREV + (U-CASE (CAR C)) + TSTREAM))) + (for C in CANDIDATES suchthat (SETQ EXPANSION (\TEDIT.TRY.ABBREV + (L-CASE (CAR C)) + TSTREAM] + (if EXPANSION + then (\TEDIT.UPDATE.SEL SEL (CADR CAND) + (CADDR CAND) + 'RIGHT + 'NORMAL) (* ; "Set the target") + (\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.FROM.STRING EXPANSION TEXTOBJ NIL + (PCHARLOOKS (\TEDIT.CHTOPC (CADR CAND) + TEXTOBJ))) + TEXTOBJ SEL) + else (TEDIT.PROMPTPRINT TSTREAM "No abbreviation to expand" T]) + +(\TEDIT.ABBREV.PARSE + [LAMBDA (TSTREAM SEL) (* ; "Edited 20-Mar-2025 22:21 by rmk") + + (* ;; "This produces candidate abbreviation-strings by parsing the characters around the point. Each candidate is returned as a list (KEY STARTCH# LEN).") + + (* ;; + "It first backs up over any spaces to find the anchor position. The candidates then include") + + (* ;; " The immediately preceding singleton character, if a point selection") + + (* ;; " The remaining (after backing up) characters of the selection.") + + (* ;; " The word that contains the caret (backwards and forwards)") + + (* ;; " If the character before a candidate C is a comma, then the word before W before the comma (without or without \) is extracted, and W,C is is added to the list (a possible charname).") + + (* ;; "If the character before a candidate C is \, the \ is included in the replacement span, and \C is also added to the list (Tex style)") + + (* ;; "If one of the candidates is a character name, the abbreviation exapnds to the corresponding character.") + + (* ;; "Otherwise, the candidates are looked up in TEDIT.ABBREVS to find their expansions.") + + (PROG ((PT# (SUB1 (TEDIT.GETPOINT TSTREAM SEL))) + FIRST# LAST# LEN CANDIDATES KEY NSPACES) + + (* ;; "The abbreviation is taken from the CH# of the current selection. It is either the character just before a point selection, the entire selection, or the word containing the selection.") + + (* ;; " The character at CH#, if it is a point selection") + + (* ;; " Otherwise either the current selection up to and including CH# or the full word that includes the selection. What works is determined by what it finds in the abbreviations list.") + + (* ;; "Back up over spaces") + + (SETQ NSPACES (for I from PT# by -1 while (EQ (CHARCODE SPACE) + (TEDIT.NTHCHARCODE TSTREAM I)) sum 1)) + (add PT# (IMINUS NSPACES)) + (CL:WHEN (ZEROP PT#) (* ; "Beginning of document") + (RETURN)) + + (* ;; "Each candidate is a triple containing the key and the starting character and length of the replacement target..") + + (push CANDIDATES (LIST (MKSTRING (TEDIT.NTHCHAR TSTREAM PT#)) + PT# 1)) + (SETQ LEN (IMAX 0 (IDIFFERENCE (FGETSEL SEL DCH) + NSPACES))) (* ; "Last singleton predecessor") + (CL:WHEN (IGEQ LEN 2) (* ; "At least one more character") + (push CANDIDATES (LIST (TEDIT.SEL.AS.STRING TSTREAM (FGETSEL SEL CH#) + LEN) + (FGETSEL SEL CH#) + LEN))) + (SETQ FIRST# (\TEDIT.WORD.FIRST TSTREAM PT#)) + (SETQ LAST# (\TEDIT.WORD.LAST TSTREAM FIRST#)) + (SETQ LEN (ADD1 (IDIFFERENCE LAST# FIRST#))) + (CL:UNLESS (EQ LEN 1) (* ; "Already there") + (push CANDIDATES (LIST (TEDIT.SEL.AS.STRING TSTREAM FIRST# LEN) + FIRST# LEN))) (* ; "Extend if a ,") + [for C KEY END in CANDIDATES + do + (* ;; "Comma for XCCS character names, - and / - for internal punctuation (3/4 EM-DASH). Adjacent character must be text") + + (if [AND (MEMB (TEDIT.NTHCHARCODE TSTREAM (SUB1 (CADR C))) + (CHARCODE (%, / -))) + (EQ (\TEDIT.TTC TEXT) + (TEDIT.WORDGET (TEDIT.NTHCHARCODE TSTREAM (IDIFFERENCE (CADR C) + 2] + then (SETQ END (\TEDIT.WORD.FIRST TSTREAM (IDIFFERENCE (CADR C) + 2))) + (* ; "Comma before, maybe a charname") + (SETQ KEY (CONCAT (TEDIT.SEL.AS.STRING TSTREAM END (IDIFFERENCE (CADR C) + END)) + (CAR C))) + (push CANDIDATES (LIST KEY END (NCHARS KEY))) + elseif [AND (MEMB (TEDIT.NTHCHARCODE TSTREAM (IPLUS (CADR C) + (CADDR C))) + (CHARCODE (%, / -))) + (EQ (\TEDIT.TTC TEXT) + (TEDIT.WORDGET (TEDIT.NTHCHARCODE TSTREAM (IPLUS 1 (CADR C) + (CADDR C] + then [SETQ END (\TEDIT.WORD.LAST TSTREAM (ADD1 (IPLUS (CADR C) + (CADDR C] + (* ; "Comma after") + [SETQ KEY (CONCAT (CAR C) + (TEDIT.SEL.AS.STRING TSTREAM (IPLUS (CADR C) + (CADDR C)) + (ADD1 (IDIFFERENCE END (IPLUS (CADR C) + (CADDR C] + (push CANDIDATES (LIST KEY (CADR C) + (NCHARS KEY] (* ; + "If preceded by \, include it optionally in the key, always include it in the replacement") + (for C in CANDIDATES when [EQ (CHARCODE \) + (TEDIT.NTHCHARCODE TSTREAM (SUB1 (CADR C] + do (* ; "Match and replace \KEY") + [push CANDIDATES (LIST (CONCAT "\" (CAR C)) + (SUB1 (CADR C)) + (ADD1 (CADDR C] + (change (CADR C) + (SUB1 DATUM)) (* ; "Match KEY but also replace the \") + (change (CADDR C) + (ADD1 DATUM))) + [SORT CANDIDATES (FUNCTION (LAMBDA (C1 C2) + (IGEQ (CADDR C1) + (CADDR C2] (* ; "Look for longest first") + (RETURN CANDIDATES]) (\TEDIT.EXPAND.DATE [LAMBDA (STREAM CH) (* ; "Edited 23-Feb-88 10:41 by jds") @@ -110,47 +215,38 @@ " " DAY ", " YEAR]) (\TEDIT.TRY.ABBREV - [LAMBDA (ABBREV STREAM) (* ; "Edited 6-Aug-2020 14:41 by rmk:") + [LAMBDA (KEY TSTREAM) (* ; "Edited 20-Mar-2025 21:52 by rmk") + (* ; "Edited 6-Aug-2020 14:41 by rmk:") (* jds "11-Jul-85 12:46") - (* ;; - "Try expanding ABBREV as an abbreviation. Return the expansion; NIL = no such abbreviation.") - - (* ;; "RMK: Established that a character-code looking string (%"357,201%" or %"02FE%") or a number is a character code that converts to a character.") - - (PROG (SEL CH# (CH NIL) - EXPANSION) - (SETQ EXPANSION (OR (SASSOC ABBREV TEDIT.ABBREVS) - (SASSOC (U-CASE ABBREV) - TEDIT.ABBREVS))) - - (* Find the abbreviation's expansion --first try it as-is, then try the - upper-case version to be safe.) - - (RETURN (COND - (EXPANSION (* There's an expansion. - Turn it into an insertable string.) - (COND - [(STRINGP (CDR EXPANSION)) - - (* ;; "Could be a character code") - - (COND - ((SETQ CH (CHARCODE.DECODE (CDR EXPANSION) - T)) - (CHARACTER CH)) - (T (CDR EXPANSION] - ((SMALLP (CDR EXPANSION)) - - (* ;; "Treat a number as a character code.") - - (CHARACTER (CDR EXPANSION))) - ((AND (LITATOM (CDR EXPANSION)) - (GETD (CDR EXPANSION))) (* It's a function to be called.) - (APPLY* (CDR EXPANSION) - STREAM CH)) - (T (* Anything else is a form to EVAL.) - (EVAL (CDR EXPANSION]) + (* ;; "Decode the expansion. A string may be a character name, otherwise itself. A litatom is a function to be applied, anything else is evaled. ") + + (LET ((ABBREV (SASSOC KEY TEDIT.ABBREVS))) + (if (NULL ABBREV) + then (CL:WHEN (CHARCODE.DECODE KEY T) + (CHARACTER (CHARCODE.DECODE KEY T))) + elseif (STRINGP (CDR ABBREV)) + then + (* ;; "Could be a character code") + + (LET ((CH (CHARCODE.DECODE (CDR ABBREV) + T))) + (CL:IF CH + (CHARACTER CH) + (CDR ABBREV))) + elseif (SMALLP (CDR ABBREV)) + then + (* ;; "Treat a number as a character code.") + + (CHARACTER (CDR ABBREV)) + elseif (AND (LITATOM (CDR ABBREV)) + (GETD (CDR ABBREV))) + then (* ; "It's a function to be called.") + (APPLY* (CDR ABBREV) + TSTREAM + (CAR ABBREV)) + else (* ; "Anything else is a form to EVAL.") + (EVAL (CDR ABBREV]) ) (DECLARE%: DOEVAL@COMPILE DONTCOPY @@ -205,6 +301,6 @@ ("DATE" . \TEDIT.EXPAND.DATE) (">>DATE<<" . \TEDIT.EXPAND.DATE))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2913 8266 (\TEDIT.ABBREV.EXPAND 2923 . 5481) (\TEDIT.EXPAND.DATE 5483 . 6116) ( -\TEDIT.TRY.ABBREV 6118 . 8264))))) + (FILEMAP (NIL (3014 14219 (\TEDIT.ABBREV.EXPAND 3024 . 5135) (\TEDIT.ABBREV.PARSE 5137 . 11921) ( +\TEDIT.EXPAND.DATE 11923 . 12556) (\TEDIT.TRY.ABBREV 12558 . 14217))))) STOP diff --git a/library/tedit/TEDIT-ABBREV.LCOM b/library/tedit/TEDIT-ABBREV.LCOM index 9eab710f8761045946ee87c2398fda8f56b3d11f..899cc5884289fe97a2fd7ab92db72223c8d566ac 100644 GIT binary patch literal 5024 zcmbVPOK%(36(&b<+pvmC%8Dx(sCznvks)eQ^CBrRipn856h|7)j7iF|Vj+qo5)nn} z5n2jdG%eBx&~1UD*R)UQrWCnj+v@hwwbb=iVL?qqqJzun;=?F)2!Q8!xQ0F-89NgqiA0s7mbDqikyta zB%+~&Y)!KaqAI6qYyFfes~J$$ysG3?Sp-Sk*xlai^x7@h-2oAP`fklE+vf7mW_z9W z{#yShbNlU9XMYY=Sk07CEY{6?>9>`cB*a8zI;2s_Yf4_$L|E^)1C{MZd;N#E^RPn2 z(_Gv$>gZwz%~h6c8^UVR>9h!~HMBWYzaoptONDjWFhI#rZ4YdDlK=Zkt*W_fv6~< zY-)K;&g*zTmkdNr#)dkSFHgrL4|FJj2P#lE8qE4 zJbn`SRnZcnmLNnwBy#lQ4OA3~EEt=3Vo-I@M@I?CD1MuK#iJ|H0;RwAd;9ot=kO1U z!h^%lkor0~9vuCybNE|w^qa39{kn7b3p{%A<)gwb5$Z6_5lNYzVV9Ej>Tbr zC|Cr zY0S9g%)@lXKQC3Au2+Iw;Ny}+^tr!Vfew$A?4x;Aq3y%sIKqc=C>?s)gb>i9D^zWwEk)%df+e-^4#k}_1g zn>TOXv~R8$&qtlp)v;$=?%2!6?%1bW4|>Al%ctKh7|*}4NNbTS81vt`hUJ3As=j5N zc26F(x@S)(3KrwGIPc1*c0w6-$48EDUAGg77+H<{@<}v$-KN;03ha1vb>dmUoe-kk zQ%a#2psS+_rS}AOK)vq0d3H2)j=VaF;*&&yJ9$dobtj@!e)WbsdH4xs#$zFRa#8x3_Y3^fnFJ z_nY|CJ*7@{PkiYKfsu(10$C%^32vCyKSm^dCI=Ls^qg04@4 zLv{_&wM@W^eSy7vSbu4w;X_)R2_XEgTQ8?c>4KK?nF(#)L`pWp#lxmFJp(nfRs;_OXDGc-9_X;!Yx!ClvAF4{= zQn-E6jz`+1j*o@7B7&yNAn7{R0O*+{s@Fr?pwY2eAWdI&{{CuEHb{3q82A1+?D8rCNo#@sA9WSS&KldMBSMh5W?&VCqOW3S)o;dgC~Ff1JGwCPum?2LmC4<7F0qS4;lZ*Q-+`?z*D_IKIJ+5OljmfIU_ znG8}FdUSc_RFV~vC3Z11Pka`k$--9yAE1v$NHhO{q>A>4L?T)}o-B0e=Fcu)(2fxo z=-1Kps=$sDQDNcuUsWMqZ3)++pRwb((9#NLM>nc$`*~IP!l*`jg7uxTIHzHH6@0DC zd-%4_$gsku_Ob^##6NZdqlBY6sYbs^q{}An6~Jm2UoX6$fK?;0vVP*Ts)*$aBsAGD z8V$FEh3Uha<)(oY{EuU0v$>2zCL3wKGI_?Nx@X+I%TU87dNPuNG-TF2Ki7uA;lnjt z?f%#>xJI0R=WVxW*n=sUPsTU`OO|6b>4C)h7>@&_yGt%&LXyOF5z-)PncN*k&x$A_ z?uap;r0bNj9q{NGN@xazOpX#-0U?WjK%kQHfS^#qLrReEs5+B)i&;TJjxl`TGi2EQ zwipmps^RDUKF9XTlpau+pURXPP^hCZQ42A#@RTY16N-ndMb0O-N{kq>s~5b6il(Fh%{f3xrRCJx|_%ff3#h7?^tplp!W!vNDV^n+jN1 z=)HjsMp(VTVEcQWg~NhDjr_uv$vHK_@AyZ)K$hLdqhQYrO!@m9%f&l%Pcxx1i9Meq z%M(HN#Du1@8^k7t7eV$+~Ia=;3_VDVlCR{<6;4=k3{tKo{?{N;i5 zs=G{pEMnp+xMJ6FC1AY*u43X9=nF(eD19IhRTl=7 zzd&V)fq{a=z=&EpwWzEt3`h)RLE;y5VPoK4J1JDcgU{oB=lGoOyM8_Xd+hnG5rp#1 z#q~T_-~`}!kuQkF%~kOnmxDy+#2FF=LF9$ak5>#lW6P!rD~}*kn>Gyi7ss+}23m_7 z_gnvMP(+zrB3si8tT}r+?HWa}!RKv1#mjpa0 zbz(STE)$Eu#Rjnj@bHXhRU4pD-}T6(%^XCwPDLV7sV_pF&u7z%ef7X?e;%Ecv;@tr z9nNXtaq`aU(asGs-m^O)_0yyI16>L*w_Dp*JxJ}>!>R+RsToNMdM^hD+g}=_db~lZ z$E3#EVNkb6yayB%BDX{2&t;}9J*MfE0s3BMB3UE|WC6;D?O09QvmMR!0Pz)AsLf%= zB8&1|2jOCm?u^i6Ct-SZr7k;ADIcRNln>fYGhOU>Fxib&Y+w(!q1^2@g*`Upw!}e4 z6VI9L=mG+N{8fXMU6v55nNz@(I%!gFTVz&pK@e94N1Lj9zzb9rtawyEM4_QHBpvF~ zm&gJtR{W*jt2>|io6$CZLU1Z>plzseA<$T(S_kEU#NoXm3O|WQBC)jHE8V4J2E6YM zhXVf1%(p(^RxITIj2>GFU~{{1J;u=F^$4T4V)5vU5W>V-ymYjES`WjQdTd{AJd7Es zAx8J#42-l9EU37qnOL=2QQ|G6FZh|Ey#FpeMxwPL-A@fu@9WT%zdlT{~ujE^hl?WRcD$#c?)_fg)?wN6(|_M+CawGRT1?5 z`f%0P6M$Bb@o+F2ZpfE3YbZ-38R8?Rg?WjFwGNXt6Bs(L;iH)7p%3YRC=Cj4dlICU z@d_F^K~U4Wdc_i|Q>>EQ7s^lQq(=>(l?tV-@he!O?X(PNo>@nWB+4m(2wPd$Dxle> z;XR76$2f!0hwwKZN;pyeNe(zH=!DYX_#LtcdpFPh3o`*x=LbdpqM zd*|{p`t|BE+9P193Jjj))XoqENi!;XJuMMXOmo?G!Kfs;8Z&s(_7RVT175&i0@V8A zbN9D7-HD>;9=>P`-*s8s!1rAivU5`wvU4O0*@>b~ghyMqWhon7S>Q_NzAR+t+H&#W V;)DNrYv;?;VHCaTc0Qed`va<1-;V$Q delta 31 ncmcaPlc~F(X+s~&<|0mk{LODF9tm?VUca1yAyt8CV%07H)$|P9 diff --git a/library/tedit/TEDIT.LCOM b/library/tedit/TEDIT.LCOM index f34cff203791309dfad0879155ee6482e66c74c3..061fa849e0ad983cabcaa6a519cfe8d813075930 100644 GIT binary patch delta 1024 zcmccJ$#lGvX+pS&k%6vnVv(+qfsv_#k)f5Lxs|EG#B5_m^NI6KCp*_lvnpifDR51E zDLa{+Q4Oo=$&QT59Oep!riKRQW|MOm)j`@A6(*mnR+zkoQF!v%YL3ar7)3YVVLYD0 zYNFumr!aY8o=1=xD+2?wWA?{|*#Zu13_x&F0!#@SGCOVM@i^(Sl|2C@43T5lnX${! z<0RAW6z`7{_j@NXr3f;zIQVdZR77!t$W4xuSLLg+h<(^3F}WaLgnzS^&sOG4p(G}+ zoc|v;sZ8FGFQLkp)#;P_|H_^Xt)5tf{}r#LWrx2XNaC(hzCqq!O+|kuHF!+ z0;bm-7!+`=W)_$_HM#0FjLa;-s(k$Yy@M5u%nTHQLxNl#eHDz1O~Dc&j!r(V3P!-l z0~rS483Ij1;+dlGjE#^CG&C}X8EA>D$^ycfe6An~8e@8eA#$qV7)t?0+5YS#CiF;~ zJiSm!2oajmut>R9h=>${&DzjN+3yXC73Ily3MEu{vpRgT!I9z(j+8{CNP!yTFnL)K zTBO_*0Bc%KUYwZ00(Q_v}u>%2Z@4fj4lcV;>80o z@xskI2QMUkT)3zK8ZM&t2Iu=yUFxGmrk{dgvdnmuo3D^SiSR2#mz(r+k#}Y@&U0-Fm(;y44yl z$F>^p2iSAgd6fgVNxaN&Tgih$DLKPy#NKal1P$D=$@g!m8NOtY!{WqPv$MLHqH}X0 zZh&5%4_;l>+_kUd>CxW$noaJtm42k#m|^@s!(c;KWz+R6*L#Tdq*Ab7&ho$710f_y zU@A&RlF`ICKu`uZbu&(Kah8t6PC~LH>6o5jXO?Si5JswPitOu>MKERRv4j~m^;>36 zH%AkOo-rR}ueXGdh}}*jolfQe!Xn6-S)HT+5>!_(Nz~8*RO>2H^qC-*PD~IAev=^3 zaQ+cp&1bt7n*xC|nium0_tTMYq^%467cKkXL&;`IRpTyc;I5bO4XP~+_5>>h(mrPI zdkBofVkYUyaVCejJ_kU@TMcXzdvE>Au{PvbF9j=aHjWk@?+K9cdb^9mov>V;FlLd1 zj~jn?N{l~afuU5*6)E1yz4(!+)D)J!4@^X;DiC|w9U~KJlp=mg%W~vYOb#V1I`@}k zJxUnklfbc{_yR|2T_r-lhW!;(z1?~Pp`w6X%Hs}Y??N1Nm+C6Pk5}~Q{{aJBDOmsj From 955efc98da17f142db27d5b74b26e6a4539cd217 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Fri, 21 Mar 2025 23:20:53 -0700 Subject: [PATCH 14/26] Smaller/larger move to next available font --- library/tedit/TEDIT-FNKEYS | 70 ++++++++++++------------ library/tedit/TEDIT-FNKEYS.LCOM | Bin 37456 -> 37331 bytes library/tedit/TEDIT-LOOKS | 91 +++++++++++++++++++++----------- library/tedit/TEDIT-LOOKS.LCOM | Bin 37687 -> 38407 bytes 4 files changed, 94 insertions(+), 67 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index f57e3742f..0f0014fe7 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,14 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "19-Mar-2025 15:47:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;231 99729 +(FILECREATED "21-Mar-2025 23:17:22" {WMEDLEY}tedit>TEDIT-FNKEYS.;232 99694 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.KEY.TRANSFORM TEDIT.GET.CHARACTION \TEDIT.ONEWORD.BACKWARD - \TEDIT.ONEWORD.FORWARD \TEDIT.KEY.FAMILYN \TEDIT.KEY.SIZE \TEDIT.LINE.BEGIN - \TEDIT.LINE.END \TEDIT.DOCUMENT.END \TEDIT.KEY.FIND) + :CHANGES-TO (FNS \TEDIT.KEY.SIZE) + (VARS TEDIT.CHARACTIONS) - :PREVIOUS-DATE "18-Mar-2025 20:55:26" {WMEDLEY}tedit>TEDIT-FNKEYS.;225) + :PREVIOUS-DATE "19-Mar-2025 15:47:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;231) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -429,18 +428,19 @@ NIL TEXTOBJ]) (\TEDIT.KEY.SIZE - [LAMBDA (TSTREAM SMALLER) (* ; "Edited 19-Mar-2025 13:07 by rmk") + [LAMBDA (TSTREAM INCREMENT) (* ; "Edited 21-Mar-2025 23:12 by rmk") + (* ; "Edited 19-Mar-2025 13:07 by rmk") (* ; "Edited 16-Mar-2025 13:19 by rmk") (* jds "21-Sep-85 08:58") (* ;; "Changes the font size, 2 points smaller if SMALLER, otherwise larger.") (CL:UNLESS (\TEDIT.READONLY TSTREAM) - (if (\TEDIT.CHANGE.CHARLOOKS TSTREAM (LIST 'SIZEINCREMENT (CL:IF SMALLER - -2 - 2))) + (if (\TEDIT.CHANGE.CHARLOOKS TSTREAM (LIST 'SIZEINCREMENT INCREMENT)) then (\TEDIT.SHOWCARETLOOKS TSTREAM) - else (TEDIT.PROMPTPRINT TSTREAM (CONCAT (CL:IF SMALLER + else (TEDIT.PROMPTPRINT TSTREAM (CONCAT (CL:IF (OR (AND (FIXP INCREMENT) + (ILESSP INCREMENT 0)) + (EQ INCREMENT '-)) "Smaller" "Larger") " font is not available") @@ -1516,8 +1516,8 @@ (UNBREAKABLE.TOGGLE (\TEDIT.KEY.CHARLOOKS TSTREAM 'UNBREAKABLE 'TOGGLE)) (SUBSCRIPT \TEDIT.SUBSCRIPTSEL) (SUPERSCRIPT \TEDIT.SUPERSCRIPTSEL) - (SMALLER (\TEDIT.KEY.SIZE TSTREAM T)) - (LARGER (\TEDIT.KEY.SIZE TSTREAM)) + (SMALLER (\TEDIT.KEY.SIZE TSTREAM '-)) + (LARGER (\TEDIT.KEY.SIZE TSTREAM '+)) (FAMILYN (\TEDIT.KEY.FAMILYN TSTREAM CHARCODE)) (DEFAULTS \TEDIT.DEFAULTSSEL) (SHOW.CHARLOOKS \TEDIT.SHOWCARETLOOKS) @@ -1872,27 +1872,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3907 8128 (CHARNAME 3917 . 8126)) (8184 22061 (TEDIT.INSTALL.CHARBINDINGS 8194 . 11377) - (TEDIT.CLEAR.CHARBINDINGS 11379 . 13970) (TEDIT.GET.CHARACTION 13972 . 16619) (TEDIT.GET.CHARBINDING -16621 . 18545) (TEDIT.GET.ALL.CHARBINDINGS 18547 . 20201) (TEDIT.GET.ALL.CHARACTIONS 20203 . 22059)) ( -22121 31595 (\TEDIT.KEY.CHARLOOKS 22131 . 23073) (\TEDIT.KEY.QUAD 23075 . 25168) (\TEDIT.DEFAULTSSEL -25170 . 25781) (\TEDIT.SETDEFAULT.FROM.SEL 25783 . 26460) (\TEDIT.KEY.SIZE 26462 . 27514) ( -\TEDIT.SUBSCRIPTSEL 27516 . 27719) (\TEDIT.SUPERSCRIPTSEL 27721 . 27925) (\TEDIT.KEY.TRANSFORM 27927 - . 29737) (\TEDIT.KEY.OPENLINE 29739 . 30193) (\TEDIT.KEY.FAMILYN 30195 . 31593)) (31596 31885 ( -CAP-CASECODE 31606 . 31883)) (31919 34545 (\TEDIT.SHOWCARETLOOKS 31929 . 33638) (\TEDIT.DESCRIBEFONT -33640 . 34543)) (34576 49312 (\TEDIT.ONECHAR.BACKWARD 34586 . 35715) (\TEDIT.ONECHAR.FORWARD 35717 . -36935) (\TEDIT.ONELINE.UP 36937 . 39898) (\TEDIT.ONELINE.DOWN 39900 . 41557) (\TEDIT.ONELINE.MOVE -41559 . 43773) (\TEDIT.ONEWORD.BACKWARD 43775 . 44927) (\TEDIT.ONEWORD.FORWARD 44929 . 46080) ( -\TEDIT.LINE.BEGIN 46082 . 47133) (\TEDIT.LINE.END 47135 . 48344) (\TEDIT.DOCUMENT.BEGIN 48346 . 48705) - (\TEDIT.DOCUMENT.END 48707 . 49310)) (49313 51157 (\TEDIT.LINEDELETE.FORWARD 49323 . 50223) ( -\TEDIT.LINEDELETE.BACKWARD 50225 . 51155)) (51158 53416 (\TEDIT.KEY.NEST 51168 . 53414)) (53470 61425 -(\TEDIT.KEY.FIND 53480 . 58565) (\TEDIT.KEY.FIND.SEARCHSTRING 58567 . 59707) (\TEDIT.GET.TARGET.STRING - 59709 . 61423)) (61456 64088 (\TEDIT.KEY.SUBSTITUTE 61466 . 61687) (\TEDIT.MANPAGE 61689 . 62936) ( -\TEDIT.CALL.ED 62938 . 63768) (\TEDIT.SELECT.ALL 63770 . 64086)) (64115 69695 (\TEDIT.CLIPBOARD 64125 - . 65880) (\TEDIT.COPYTOCLIPBOARD 65882 . 66662) (\TEDIT.EXTRACTTOCLIPBOARD 66664 . 66859) ( -\TEDIT.WRITE.SEL 66861 . 69693)) (70047 81762 (\TEDIT.READTABLE 70057 . 70993) ( -\TEDIT.WORDBOUND.READTABLE 70995 . 73624) (TEDIT.GETSYNTAX 73626 . 75145) (TEDIT.SETSYNTAX 75147 . -76352) (TEDIT.GETFUNCTION 76354 . 77526) (TEDIT.SETFUNCTION 77528 . 79514) (TEDIT.WORDGET 79516 . -79777) (TEDIT.WORDSET 79779 . 80410) (TEDIT.ATOMBOUND.READTABLE 80412 . 81760)) (92346 98665 ( -TEDIT.BUTTONS.BUILD 92356 . 96933) (TEDIT.BUTTONBITMAP.FILL 96935 . 98663))))) + (FILEMAP (NIL (3724 7945 (CHARNAME 3734 . 7943)) (8001 21878 (TEDIT.INSTALL.CHARBINDINGS 8011 . 11194) + (TEDIT.CLEAR.CHARBINDINGS 11196 . 13787) (TEDIT.GET.CHARACTION 13789 . 16436) (TEDIT.GET.CHARBINDING +16438 . 18362) (TEDIT.GET.ALL.CHARBINDINGS 18364 . 20018) (TEDIT.GET.ALL.CHARACTIONS 20020 . 21876)) ( +21938 31556 (\TEDIT.KEY.CHARLOOKS 21948 . 22890) (\TEDIT.KEY.QUAD 22892 . 24985) (\TEDIT.DEFAULTSSEL +24987 . 25598) (\TEDIT.SETDEFAULT.FROM.SEL 25600 . 26277) (\TEDIT.KEY.SIZE 26279 . 27475) ( +\TEDIT.SUBSCRIPTSEL 27477 . 27680) (\TEDIT.SUPERSCRIPTSEL 27682 . 27886) (\TEDIT.KEY.TRANSFORM 27888 + . 29698) (\TEDIT.KEY.OPENLINE 29700 . 30154) (\TEDIT.KEY.FAMILYN 30156 . 31554)) (31557 31846 ( +CAP-CASECODE 31567 . 31844)) (31880 34506 (\TEDIT.SHOWCARETLOOKS 31890 . 33599) (\TEDIT.DESCRIBEFONT +33601 . 34504)) (34537 49273 (\TEDIT.ONECHAR.BACKWARD 34547 . 35676) (\TEDIT.ONECHAR.FORWARD 35678 . +36896) (\TEDIT.ONELINE.UP 36898 . 39859) (\TEDIT.ONELINE.DOWN 39861 . 41518) (\TEDIT.ONELINE.MOVE +41520 . 43734) (\TEDIT.ONEWORD.BACKWARD 43736 . 44888) (\TEDIT.ONEWORD.FORWARD 44890 . 46041) ( +\TEDIT.LINE.BEGIN 46043 . 47094) (\TEDIT.LINE.END 47096 . 48305) (\TEDIT.DOCUMENT.BEGIN 48307 . 48666) + (\TEDIT.DOCUMENT.END 48668 . 49271)) (49274 51118 (\TEDIT.LINEDELETE.FORWARD 49284 . 50184) ( +\TEDIT.LINEDELETE.BACKWARD 50186 . 51116)) (51119 53377 (\TEDIT.KEY.NEST 51129 . 53375)) (53431 61386 +(\TEDIT.KEY.FIND 53441 . 58526) (\TEDIT.KEY.FIND.SEARCHSTRING 58528 . 59668) (\TEDIT.GET.TARGET.STRING + 59670 . 61384)) (61417 64049 (\TEDIT.KEY.SUBSTITUTE 61427 . 61648) (\TEDIT.MANPAGE 61650 . 62897) ( +\TEDIT.CALL.ED 62899 . 63729) (\TEDIT.SELECT.ALL 63731 . 64047)) (64076 69656 (\TEDIT.CLIPBOARD 64086 + . 65841) (\TEDIT.COPYTOCLIPBOARD 65843 . 66623) (\TEDIT.EXTRACTTOCLIPBOARD 66625 . 66820) ( +\TEDIT.WRITE.SEL 66822 . 69654)) (70008 81723 (\TEDIT.READTABLE 70018 . 70954) ( +\TEDIT.WORDBOUND.READTABLE 70956 . 73585) (TEDIT.GETSYNTAX 73587 . 75106) (TEDIT.SETSYNTAX 75108 . +76313) (TEDIT.GETFUNCTION 76315 . 77487) (TEDIT.SETFUNCTION 77489 . 79475) (TEDIT.WORDGET 79477 . +79738) (TEDIT.WORDSET 79740 . 80371) (TEDIT.ATOMBOUND.READTABLE 80373 . 81721)) (92311 98630 ( +TEDIT.BUTTONS.BUILD 92321 . 96898) (TEDIT.BUTTONBITMAP.FILL 96900 . 98628))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 618062ace8936692ba2c02e983b006bc79c9b0b6..65c8d9a8128f2ffa7b4e110fd3fb0f88a63204ca 100644 GIT binary patch delta 725 zcmZuuJxmi}7;eu&s6QYy{1h-R9|n8DyIjBPwdo}&*K))Q*IvCID2A9EDPjwj1kuE! zS8#!tI7r^$;9`s>CN2yOD@;x-CQeSyCJs0_=;T*G!@%;r&-1>|`}=)<&wY8vy}TW! zF(KEw!bz1ViUf-8 z@@(;xbVZdY;X~0e!_+gjt~vTBkkbYrfX}$AO)`a4Dv^rg;}}-1z=N8%^-05;Cc+@i!)gyAkx&D?I`X%UXhj*e_R8AN589#P0Dt$A{$%oaj=XJU^G@D2 zSoNd?87r639H1$*ypA(KDPAMpSm_I=<4F)8CPQPD{{yjmKtcfm_ZKV6PGe*0;qi>^cmw#=OEc87(u;4`2l3uYgfXccK`(k9->lqV z>|3xCUzc0Z+-S$H>LBx6uZsAvs$iT8<4&~?w>CQPd-W2F{He+)`Z7bVFXNUk;V-`( zTjtN=wto?S_|5pqZ)3IzTWf7hMQRD0s!0qzukl!~4Ks958^G}DaC<0Y8u_%P*`tDf b$7%dGU~zSvDYjR8aQ_gQYnSWFT2I?wxc$u= delta 801 zcmZuv&rcIU6mIu`=~klQM}Sh|V>Ps^wAt;lrClX-X{WGZyIZ#l6+=u)g0P5SkeKu* zdQmtjyhIZ(#^}XF52SY^{sks_^y0yIz(kIo)M>zofy>PM=6mzzeczjpFPIN6nMe6H zF&@ekRzeXWB7-O^1A~e9dCg0%Uz7r(EvUS|oo^n|X17~A~O zaq(!XC~!O*OlvwxT12%;3b^AQ;{d<7`6h_R2P1L3<-S0xds|6Lv%{mr4kyP{OHJCE zY2dEYb)KE3g(zhjByU=&aN4x;s+EF+<8d+-POBMBpEB^_d?#`X{g;UGKdl)l9+a#_ zCN*;+7fR9AXlI9&3W_W%kthc&s_p<2k?Sne>>J5tR9z<)Xdr-{v#F>I53Vtn%f%!- zbamB-6LXDS-Mabf-Xb&a^RW&1c%MC;P;u7J^+pF_UqjY1Gg&)pX@(6^0g|SXRBe!C z?C!!%*9EMs3qpwVO{ zfVGN5qwR`>Un`P_{X0I~dC-n>wH4PFTJY||37n~R;Hzji^6UNhuIi_EK34^7uJJUA z)`sv}r3tq-dMJ8A(d!!PAy@3if1yIY)yDn#F+%iQ(lY5k4PKrw>8K}(Wot=QXVF+2 OZ#yP|t-o38Yxx7@c;tlu diff --git a/library/tedit/TEDIT-LOOKS b/library/tedit/TEDIT-LOOKS index 5f1db011a..8fb679cc7 100644 --- a/library/tedit/TEDIT-LOOKS +++ b/library/tedit/TEDIT-LOOKS @@ -1,13 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "19-Mar-2025 13:20:52" {WMEDLEY}tedit>TEDIT-LOOKS.;395 152229 +(FILECREATED "21-Mar-2025 23:17:49" {WMEDLEY}tedit>TEDIT-LOOKS.;396 154054 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.CHANGE.PARALOOKS TEDIT.CARETLOOKS \TEDIT.CHANGE.CHARLOOKS - \TEDIT.CHARLOOKS.FROM.FONT) + :CHANGES-TO (FNS \TEDIT.CHARLOOKS.CHANGE.FONT \TEDIT.CHANGE.CHARLOOKS \TEDIT.FONT.NEXTSIZE) + (VARS TEDIT-LOOKSCOMS) - :PREVIOUS-DATE "21-Feb-2025 09:49:05" {WMEDLEY}tedit>TEDIT-LOOKS.;392) + :PREVIOUS-DATE "19-Mar-2025 13:20:52" {WMEDLEY}tedit>TEDIT-LOOKS.;395) (PRETTYCOMPRINT TEDIT-LOOKSCOMS) @@ -63,7 +63,7 @@ (FNS TEDIT.LOOKS TEDIT.GET.LOOKS TEDIT.SUBLOOKS TEDIT.FINDLOOKS) [INITVARS (TEDIT.FONTCLASSES '(DISPLAY PDF POSTSCRIPT INTERPRESS PRESS] (FNS \TEDIT.CHANGE.CHARLOOKS \TEDIT.CHANGE.CHARLOOKS.NEW \TEDIT.CHARLOOKS.CHANGE.FONT - \TEDIT.LOOKS \TEDIT.FONTCOPY \TEDIT.COERCE.FONTCLASS)) + \TEDIT.FONT.NEXTSIZE \TEDIT.LOOKS \TEDIT.FONTCOPY \TEDIT.COERCE.FONTCLASS)) (COMS (* ; "Paragraph looks functions") (FNS \TEDIT.EQFMTSPEC TEDIT.GET.PARALOOKS \TEDIT.PARSE.PARALOOKS.LIST TEDIT.PARALOOKS \TEDIT.CHANGE.PARALOOKS \TEDIT.CHANGE.PARALOOKS.NEW TEDIT.COPY.PARALOOKS @@ -1403,7 +1403,8 @@ (DEFINEQ (\TEDIT.CHANGE.CHARLOOKS - [LAMBDA (TSTREAM NEWLOOKS TARGETSEL) (* ; "Edited 19-Mar-2025 12:55 by rmk") + [LAMBDA (TSTREAM NEWLOOKS TARGETSEL) (* ; "Edited 21-Mar-2025 23:15 by rmk") + (* ; "Edited 19-Mar-2025 12:55 by rmk") (* ; "Edited 31-Jan-2025 10:31 by rmk") (* ; "Edited 1-Jan-2025 18:11 by rmk") (* ; "Edited 29-Dec-2024 20:08 by rmk") @@ -1531,6 +1532,7 @@ TEXTOBJ))) (\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ) (\TEDIT.UPDATE.LINES TEXTOBJ 'LOOKS SELPIECES) + (\TEDIT.SHOWSEL NIL T TEXTOBJ) (\TEDIT.TEXTSETFILEPTR TSTREAM ORIGFILEPTR)))] (RETURN DIRTY]) @@ -1589,7 +1591,8 @@ NIL) finally (RETURN NEWCHARLOOKS]) (\TEDIT.CHARLOOKS.CHANGE.FONT - [LAMBDA (NEWLOOKS OLDCHARLOOKS TEXTOBJ) (* ; "Edited 29-Jan-2025 23:52 by rmk") + [LAMBDA (NEWLOOKS OLDCHARLOOKS TEXTOBJ) (* ; "Edited 21-Mar-2025 13:54 by rmk") + (* ; "Edited 29-Jan-2025 23:52 by rmk") (* ; "Edited 10-Jan-2025 11:01 by rmk") (* ; "Edited 7-Jan-2025 12:34 by rmk") (* ; "Edited 2-Jan-2025 10:23 by rmk") @@ -1673,15 +1676,15 @@ (push FONTSPEC 'EXPANSION EXPANSION)) elseif FACE then (push FONTSPEC 'FACE FACE)) - (if SIZE + [if SIZE then (push FONTSPEC 'SIZE SIZE) elseif SIZEINCREMENT then (* ;; "If a size increment is specified, then add to the newspecs arg for fontcopy, the entry with the incremented size from the current font. ") - (push FONTSPEC 'SIZE (IPLUS (FONTPROP (GETCLOOKS OLDCHARLOOKS CLFONT) - 'SIZE) - SIZEINCREMENT))) + (push FONTSPEC 'SIZE (OR (\TEDIT.FONT.NEXTSIZE (GETCLOOKS OLDCHARLOOKS CLFONT) + SIZEINCREMENT) + (RETURN NIL] (CL:WHEN (AND NEWFONT FONTSPEC) (* ;  "Caller should have checked this, but...") (TEDIT.PROMPTPRINT TEXTOBJ @@ -1718,6 +1721,29 @@ (SETFONTCLASSCOMPONENT TEMP DEVICE NEWFONT) TEMP)]) +(\TEDIT.FONT.NEXTSIZE + [LAMBDA (FONT INCREMENT) (* ; "Edited 21-Mar-2025 23:09 by rmk") + + (* ;; "Returns the size of a FONT that is INCREMENT larger or smaller than FONT. If INCREMENT is a positive integer, then that is added to FONT's size, if negative subtracted. If +, the next larger available font, - the next smaller. NIL if an appropriate font doesn't exist.") + + (if (FIXP INCREMENT) + then (IPLUS (FONTPROP FONT 'SIZE) + SIZEINCREMENT) + else (LET [(FONTS (SORT (FONTSAVAILABLE FONT '* (FONTPROP FONT 'FACE) + (FONTPROP FONT 'ROTATION) + (FONTPROP FONT 'DEVICE) + T) + (FUNCTION (LAMBDA (F1 F2) + (ILESSP (FONTPROP F1 'SIZE) + (FONTPROP F2 'SIZE] + (CL:WHEN (EQ INCREMENT '-) (* ; "Smaller: descending size order") + (SETQ FONTS (DREVERSE FONTS))) + (for FTAIL (FSIZE _ (FONTPROP FONT 'SIZE)) on FONTS + when (EQ FSIZE (FONTPROP (CAR FTAIL) + 'SIZE)) do (RETURN (AND (CADR FTAIL) + (FONTPROP (CADR FTAIL) + 'SIZE]) + (\TEDIT.LOOKS [LAMBDA (TEXTOBJ) (* ; "Edited 28-Jun-2024 21:52 by rmk") (* ; "Edited 13-Jun-2024 22:10 by rmk") @@ -2424,25 +2450,26 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (22599 24541 (\TEDIT.CHARLOOKS.DEFPRINT 22609 . 23745) (\TEDIT.PARALOOKS.DEFPRINT 23747 - . 24539)) (24645 25741 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24655 . 25363) (\TEDIT.CREATE.FACE.MENU 25365 - . 25537) (\TEDIT.CREATE.SIZE.MENU 25539 . 25739)) (26642 26831 (\TEDIT.CHARLOOK.FEATUREP 26652 . -26829)) (27133 50405 (\TEDIT.CHARLOOKS.FROM.FONT 27143 . 29356) (\TEDIT.EQCLOOKS 29358 . 31980) ( -\TEDIT.SAMECLOOKS 31982 . 34652) (TEDIT.CARETLOOKS 34654 . 36200) (TEDIT.COPY.LOOKS 36202 . 39485) ( -\TEDIT.UNPARSE.CHARLOOKS.LIST 39487 . 42454) (\TEDIT.MODIFYLOOKS 42456 . 44450) (TEDIT.NEW.FONT 44452 - . 44899) (\TEDIT.CARETLOOKS.VERIFY 44901 . 45738) (\TEDIT.CARETPIECE 45740 . 46045) ( -\TEDIT.GET.INSERT.CHARLOOKS 46047 . 48783) (\TEDIT.GET.TERMSA.WIDTHS 48785 . 49201) ( -\TEDIT.PARSE.CHARLOOKS.LIST 49203 . 50403)) (50406 66924 (\TEDIT.TRANSLATE.ASCIICHARS 50416 . 60902) ( -\TEDIT.CONVERT.TO.FORMATTED 60904 . 66922)) (67936 75047 (\TEDIT.UNIQUIFY.CHARLOOKS 67946 . 69606) ( -\TEDIT.UNIQUIFY.PARALOOKS 69608 . 70875) (\TEDIT.UNIQUIFY.ALL 70877 . 72852) ( -\TEDIT.FLUSH.UNUSED.LOOKS 72854 . 75045)) (75080 86176 (TEDIT.LOOKS 75090 . 77479) (TEDIT.GET.LOOKS -77481 . 79510) (TEDIT.SUBLOOKS 79512 . 83540) (TEDIT.FINDLOOKS 83542 . 86174)) (86251 112572 ( -\TEDIT.CHANGE.CHARLOOKS 86261 . 95330) (\TEDIT.CHANGE.CHARLOOKS.NEW 95332 . 98957) ( -\TEDIT.CHARLOOKS.CHANGE.FONT 98959 . 106583) (\TEDIT.LOOKS 106585 . 109914) (\TEDIT.FONTCOPY 109916 . -111417) (\TEDIT.COERCE.FONTCLASS 111419 . 112570)) (112615 143889 (\TEDIT.EQFMTSPEC 112625 . 115840) ( -TEDIT.GET.PARALOOKS 115842 . 119889) (\TEDIT.PARSE.PARALOOKS.LIST 119891 . 127233) (TEDIT.PARALOOKS -127235 . 128275) (\TEDIT.CHANGE.PARALOOKS 128277 . 135562) (\TEDIT.CHANGE.PARALOOKS.NEW 135564 . -139547) (TEDIT.COPY.PARALOOKS 139549 . 142223) (\TEDIT.PARABOUNDS 142225 . 143887)) (143949 151347 ( -TEDIT.SUBPARALOOKS 143959 . 147743) (SAMEPARALOOKS 147745 . 151345)) (151348 152035 ( -\TEDIT.MARK.REVISION 151358 . 152033))))) + (FILEMAP (NIL (22619 24561 (\TEDIT.CHARLOOKS.DEFPRINT 22629 . 23765) (\TEDIT.PARALOOKS.DEFPRINT 23767 + . 24559)) (24665 25761 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24675 . 25383) (\TEDIT.CREATE.FACE.MENU 25385 + . 25557) (\TEDIT.CREATE.SIZE.MENU 25559 . 25759)) (26662 26851 (\TEDIT.CHARLOOK.FEATUREP 26672 . +26849)) (27153 50425 (\TEDIT.CHARLOOKS.FROM.FONT 27163 . 29376) (\TEDIT.EQCLOOKS 29378 . 32000) ( +\TEDIT.SAMECLOOKS 32002 . 34672) (TEDIT.CARETLOOKS 34674 . 36220) (TEDIT.COPY.LOOKS 36222 . 39505) ( +\TEDIT.UNPARSE.CHARLOOKS.LIST 39507 . 42474) (\TEDIT.MODIFYLOOKS 42476 . 44470) (TEDIT.NEW.FONT 44472 + . 44919) (\TEDIT.CARETLOOKS.VERIFY 44921 . 45758) (\TEDIT.CARETPIECE 45760 . 46065) ( +\TEDIT.GET.INSERT.CHARLOOKS 46067 . 48803) (\TEDIT.GET.TERMSA.WIDTHS 48805 . 49221) ( +\TEDIT.PARSE.CHARLOOKS.LIST 49223 . 50423)) (50426 66944 (\TEDIT.TRANSLATE.ASCIICHARS 50436 . 60922) ( +\TEDIT.CONVERT.TO.FORMATTED 60924 . 66942)) (67956 75067 (\TEDIT.UNIQUIFY.CHARLOOKS 67966 . 69626) ( +\TEDIT.UNIQUIFY.PARALOOKS 69628 . 70895) (\TEDIT.UNIQUIFY.ALL 70897 . 72872) ( +\TEDIT.FLUSH.UNUSED.LOOKS 72874 . 75065)) (75100 86196 (TEDIT.LOOKS 75110 . 77499) (TEDIT.GET.LOOKS +77501 . 79530) (TEDIT.SUBLOOKS 79532 . 83560) (TEDIT.FINDLOOKS 83562 . 86194)) (86271 114397 ( +\TEDIT.CHANGE.CHARLOOKS 86281 . 95517) (\TEDIT.CHANGE.CHARLOOKS.NEW 95519 . 99144) ( +\TEDIT.CHARLOOKS.CHANGE.FONT 99146 . 106890) (\TEDIT.FONT.NEXTSIZE 106892 . 108408) (\TEDIT.LOOKS +108410 . 111739) (\TEDIT.FONTCOPY 111741 . 113242) (\TEDIT.COERCE.FONTCLASS 113244 . 114395)) (114440 +145714 (\TEDIT.EQFMTSPEC 114450 . 117665) (TEDIT.GET.PARALOOKS 117667 . 121714) ( +\TEDIT.PARSE.PARALOOKS.LIST 121716 . 129058) (TEDIT.PARALOOKS 129060 . 130100) ( +\TEDIT.CHANGE.PARALOOKS 130102 . 137387) (\TEDIT.CHANGE.PARALOOKS.NEW 137389 . 141372) ( +TEDIT.COPY.PARALOOKS 141374 . 144048) (\TEDIT.PARABOUNDS 144050 . 145712)) (145774 153172 ( +TEDIT.SUBPARALOOKS 145784 . 149568) (SAMEPARALOOKS 149570 . 153170)) (153173 153860 ( +\TEDIT.MARK.REVISION 153183 . 153858))))) STOP diff --git a/library/tedit/TEDIT-LOOKS.LCOM b/library/tedit/TEDIT-LOOKS.LCOM index fea1ad92137a63b359e126578311ed78c56ab187..574615639e47c2d380d6ea5c9609270bc79e1d67 100644 GIT binary patch delta 1438 zcmZuxOOM-B6t+E-Qdcughi2Lih#o~#eia;PF zkO~SYMM&Mi=q{=*c!&jTSd^wx7l_vegpiO}0Y8BaYJUKNbL}Q^HH{Se_*~!beCNBL z&&@BC557`9+B#zB_5Rt{>xO37V3;l4ZQ0uH1@E|11GQpkg+-%fSS{P#{q`jPO;-8* zNaer!4-VDmQtAh3qr(PiV?a-*N$?DXomZgJ*$6`@LNpqU3T&T!*18ui7qf%3= zogk#`m=XlVm-djeyb4_0>Qg_YXWn_@<(+f8mzN)KK({T;w)mU!ir~b5kdGn1{q|j) zYEa!IaRO?_w;nRqOWLfT)Swl`bTeQZN!`b~T$5Lon#wWwmI{vHmymIin z?g0sZpMNclIeGHaV=wJ=4~oS1s|-{Tge9r!HeLSOqemBAw+VNINxEz+q2YMnQ~d+` zlm%IuedQk^9B<7m1ZJ_-(9wlV9onw4i}#tj(e`V0jL| z5F9U?lWMaSN8?w6hlUy?G|jRhNkqdD8_+=tmSykRV>aDMuFYuNrrD{s#YQk)Z?ZP6 zVOl2Srys=#oJMhg$fjOkvru$}Zu1|XF7x&E$2<#s)Vxi>a*b(dnv>9Unpu-RP1e~n`$)x9XbXCfNJSAkd{$PWi=Bv zlatKCe{bW-8TdLvVIvXfxxykwOX?0}p0=|aCTa!G4`;>mx)GSrNl6ew1O{}nosl4c z;0e;vAsC>+`{E2Ta+rq>SQ+?q2?<}lPnHy7!p8;D>7S+iX_^~K(lov++?mhpGwbrO zEag4lx{^Ej^t;`{*29Z)!LxHWPOkUl*`8b1%RNQDaR@K7WT~fI`$MYgmV-?VCz9d( zDClR+9y|?v{JvN=%9OzrraXvrHTJEh*?U~fDOR#phM7;h6yW>V_~5&3;%QG1*56Y zcxPlEQfoL;!~}ur3Oo+{@@Ng`;_st}`9C9{fAZ=Q?_TO1$;VA2**F!Em}FB2_?MTG aMHPI6q?;sM4H@zAi4QI=jVte$7ybu$+F>vN delta 670 zcmZvZ-)qxQ6vvws-4-FOY?fB0J4C^D(2$!SZIa<=+N51vx*L*q;&2a>jUj@+CJY~Z z659s_R}MZ4J_w2rY7hlo9|ivd@l7Ab{sNy(TXchYA1>#f&-tEvestfkA78RNm#2tP zY_8oc%95-BQA}AfHMw`g$Y}-O1fm~6nV1SOC8f7}9(T4l=lV?$>TS=1!$G1b3b4L* zZ)5$xY9a{*E?;*&rxrL?%dyd9D`P-3S(Xia#mwT9EgtQMCvmUCWB(DyaCm3>bfEyI zA2`b{ZHGlW)`1|CVtwPJx5}RQurQH` z&x?17*SLN0d8$Hz8#uglB3~}+D9&ful7T<9Q_<~tb>di(XA((#+t9J!7{mR>uNk1} z_vbbT8teGr{+1X%hFNI(JMJ%h{Nm;&Rk#|r>9)iJf}h9FFeIkg zj9NN^6O@mxvKrK3z$VU*1eXwz@`fxFZKg_MT>#y%gPUTRb|u;W?P98k;3KT}cv zno7wS#@kL<3tYcN15h*>taz0QArQJNPLx{AFpQ45>I^#GW;98Em+)+-n2I-%uhC`* z`B|6)4p%x2{Ioh9uc_a$Go#uD{foX8SRSQ|VH}k0E>4Y5*sdN1+ubk?c04j?+43qL MwQS&`AKfDV2M)8cB>(^b From f7614bb072ff3513afccc7b905a5e9156c50a763 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sun, 23 Mar 2025 11:08:48 -0700 Subject: [PATCH 15/26] Trigger actions directly --- internal/TEDIT-DEBUG | 129 ++++++++------------ internal/TEDIT-DEBUG.LCOM | Bin 61964 -> 61237 bytes library/tedit/TEDIT-BUTTONS | 50 ++++---- library/tedit/TEDIT-BUTTONS.LCOM | Bin 35089 -> 35095 bytes library/tedit/TEDIT-COMMAND | 197 +++++++++++++++++-------------- library/tedit/TEDIT-COMMAND.LCOM | Bin 5431 -> 5643 bytes library/tedit/TEDIT-FNKEYS | 56 ++++----- library/tedit/TEDIT-FNKEYS.LCOM | Bin 37331 -> 37406 bytes library/tedit/TEDIT-LOOKS | 76 +++++++----- library/tedit/TEDIT-LOOKS.LCOM | Bin 38407 -> 38878 bytes library/tedit/TEDIT-MENU | 63 +++++----- library/tedit/TEDIT-MENU.LCOM | Bin 47326 -> 47314 bytes library/tedit/TEDIT-STREAM | 65 +++++----- library/tedit/TEDIT-STREAM.LCOM | Bin 34857 -> 34841 bytes library/tedit/TEDIT-WINDOW | 80 +++++++------ library/tedit/TEDIT-WINDOW.LCOM | Bin 65869 -> 65870 bytes 16 files changed, 365 insertions(+), 351 deletions(-) diff --git a/internal/TEDIT-DEBUG b/internal/TEDIT-DEBUG index a8c3380a5..f04969b41 100644 --- a/internal/TEDIT-DEBUG +++ b/internal/TEDIT-DEBUG @@ -1,13 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 6-Mar-2025 11:29:26" {WMEDLEY}TEDIT-DEBUG.;136 131290 +(FILECREATED "23-Mar-2025 11:07:01" {WMEDLEY}TEDIT-DEBUG.;138 129322 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT-DEBUGCOMS) - (FNS CLEARTHISLINE) + :CHANGES-TO (FNS TESTACTION) + (VARS TEDIT-DEBUGCOMS) - :PREVIOUS-DATE "19-Feb-2025 12:21:45" {WMEDLEY}TEDIT-DEBUG.;135) + :PREVIOUS-DATE " 6-Mar-2025 11:29:26" {WMEDLEY}TEDIT-DEBUG.;136) (PRETTYCOMPRINT TEDIT-DEBUGCOMS) @@ -28,6 +28,7 @@  "Get/set (default) object, stream, window, selection") (FNS GTO GTS GTW GSEL) (INITVARS (LASTTEXTSTREAM NIL))) + (FNS TESTACTION) (COMS (* ; "Inspect") (FNS IPC ILINES ISEL ITS IPANES ITL IHIST IPCTB IMB ICL IPL ICARET INSPECTPIECES)) (COMS (* ; "Show") @@ -54,7 +55,7 @@ (FNS PPARA PRUN ADDLINEPOSITIONS SBR SBC)) (INITVARS (LASTTS NIL)) (VARS (OK.TO.MODIFY.FNS T)) - (FNS DFOV OLDWI DFOV.OLDEST COMP DFR) + (FNS OLDWI COMP DFR) (FNS DFGV GDIRECTORIES) (COMS (FNS TTEST LTEST THC) (INITVARS (LASTTTESTFILE)) @@ -72,7 +73,7 @@ (FILES (NOERROR) VERSIONDEFS) (* ; "Until this is release") - (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA VSEE DFGV DFOV) + (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA VSEE DFGV) (NLAML DFVENUE DFR) (LAMA]) @@ -152,6 +153,24 @@ ) (RPAQ? LASTTEXTSTREAM NIL) +(DEFINEQ + +(TESTACTION + [LAMBDA (CHAR TSTREAM) (* ; "Edited 23-Mar-2025 11:06 by rmk") + + (* ;; "If CHAR is bound to an action in TSTREAM's read table, execute it.") + + (SETQ TSTREAM (GTS TSTREAM)) + (\TEDIT.COMMAND.FUNCTION? TSTREAM (if (CHARCODEP CHAR) + then CHAR + elseif (CHARCODEP CHAR T) + elseif (CAR (TEDIT.GET.CHARBINDING CHAR TSTREAM)) + then (SETQ CHAR (CAR (TEDIT.GET.CHARBINDING CHAR TSTREAM))) + (CL:IF (CHARCODEP CHAR) + CHAR + (CHARCODE.DECODE CHAR)) + else (ERROR CHAR "is not a keybinding"]) +) @@ -2028,58 +2047,12 @@ (RPAQQ OK.TO.MODIFY.FNS T) (DEFINEQ -(DFOV - [NLAMBDA ARGS (* ; "Edited 2-Dec-2024 08:14 by rmk") - (* ; "Edited 4-Oct-2024 22:17 by rmk") - (* ; "Edited 12-Jan-2024 00:30 by rmk") - (* ; "Edited 15-Dec-2023 12:36 by rmk") - (* ; "Edited 13-Aug-2023 14:09 by rmk") - - (* ;; "Brings in a function from an earlier version, for comparison. If FILE is a version number, it uses WHEREIS") - - (SETQ ARGS (NLAMBDA.ARGS ARGS)) - (PROG ((FN (POP ARGS)) - (FNFILE (POP ARGS)) - (VERSION (POP ARGS)) - (DIRLIST (POP ARGS)) - ALTFNS) - (CL:WHEN (FIXP FNFILE) - (SETQ VERSION FNFILE) - (SETQ FNFILE NIL)) - [if (AND FNFILE (MEMB FNFILE (WHEREIS FN 'FNS T))) - elseif (SETQ FNFILE (CAR (WHEREIS FN 'FNS T))) - else (CL:WHEN (EQ (CHARCODE \) - (CHCON1 FN)) - (push ALTFNS (SUBATOM FN 2))) - (if (STRPOS "TEDIT." FN NIL NIL T) - then (push ALTFNS (PACK* "\" FN)) - elseif (NOT (STRPOS "\TEDIT." FN 1 NIL T)) - then (push ALTFNS (PACK* "\TEDIT." FN))) - (for AF F in ALTFNS when (SETQ F (CAR (WHEREIS AF 'FNS T))) - collect (LIST AF F) finally (if (CDR $$VAL) - then (PRINTOUT T "Possible names/files for " FN - ", be more specific" T) - elseif $$VAL - then (SETQ FN (CAAR $$VAL)) - (SETQ FNFILE (CADAR $$VAL)) - elseif FNFILE - then (PRINTOUT T FN " not found on " FNFILE T) - else (PRINTOUT T FN " not found" T] - (APPLY (FUNCTION EDV) - (LIST FN 'FNS FNFILE VERSION DIRLIST NIL NIL NIL '(:DONTWAIT]) - (OLDWI [LAMBDA (FN) (* ; "Edited 16-May-2023 12:02 by rmk") (for F COMS in TEDITFILES when (AND (SETQ F (DFOV.OLDEST F)) (INFILECOMS? FN NIL (GETDEF (FILECOMS F) 'VARS F))) collect F]) -(DFOV.OLDEST - [LAMBDA (FILE DIRLIST) (* ; "Edited 15-Dec-2023 12:22 by rmk") - (* ; "Edited 13-Aug-2023 07:30 by rmk") - (* ; "Edited 16-May-2023 11:07 by rmk") - (CAR (LAST (FILDIR (PACKFILENAME 'VERSION '* 'BODY (FINDFILE FILE T DIRLIST]) - (COMP [LAMBDA (FN) (* ; "Edited 5-Feb-2023 20:14 by rmk") (COMPAREDEFS FN 'FNS (LIST 'SAVE (CAR (REMOVE 'SAVE (WHEREIS FN 'FNS T]) @@ -2445,7 +2418,7 @@ (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS -(ADDTOVAR NLAMA VSEE DFGV DFOV) +(ADDTOVAR NLAMA VSEE DFGV) (ADDTOVAR NLAML DFVENUE DFR) @@ -2453,29 +2426,29 @@ ) (DECLARE%: DONTCOPY (FILEMAP (NIL (4931 7490 (GTO 4941 . 5191) (GTS 5193 . 6964) (GTW 6966 . 7122) (GSEL 7124 . 7488)) ( -7547 20678 (IPC 7557 . 9061) (ILINES 9063 . 11604) (ISEL 11606 . 12217) (ITS 12219 . 13943) (IPANES -13945 . 14180) (ITL 14182 . 14601) (IHIST 14603 . 17265) (IPCTB 17267 . 17575) (IMB 17577 . 18192) ( -ICL 18194 . 18759) (IPL 18761 . 19165) (ICARET 19167 . 19544) (INSPECTPIECES 19546 . 20676)) (20700 -47648 (SP 20710 . 25227) (SL 25229 . 28373) (SSP 28375 . 29806) (SPF 29808 . 32107) (SLF 32109 . 41242 -) (SHOWLINE 41244 . 44806) (SLL 44808 . 45555) (STBYTES 45557 . 47283) (SSEL 47285 . 47646)) (47649 -56542 (STL 47659 . 56171) (CLEARTHISLINE 56173 . 56540)) (56543 61916 (NTHPIECE 56553 . 57685) ( -NPIECES 57687 . 58552) (NTHPIECECHAR 58554 . 59862) (SELPIECE 59864 . 60306) (PIECENUM 60308 . 61027) -(PCBYTES 61029 . 61914)) (61917 64391 (FILEBYTES 61927 . 63351) (TFILEBYTES 63353 . 64389)) (64392 -65714 (TRELMOVE 64402 . 64645) (TSCROLL 64647 . 64813) (TSCROLL* 64815 . 65712)) (65715 68764 (TRY -65725 . 66994) (TEDITCLOSEW 66996 . 67339) (PARALASTWITHOUTEOL 67341 . 68226) (FIXPARALAST 68228 . -68762)) (68765 83264 (SPPRINT 68775 . 75360) (SPPRINT.CHAR 75362 . 76346) (SPPRINT.OBJ 76348 . 79406) -(SHOWPIECEBYTES 79408 . 80964) (CHECKPLENGTHS 80966 . 81423) (SBT 81425 . 82414) (COPYPCHAIN 82416 . -83262)) (83265 85326 (POSLINE 83275 . 85324)) (85327 86210 (PRESPLIT 85337 . 86208)) (86211 87924 ( -ALLTL 86221 . 87474) (NTHCHARSLOT 87476 . 87922)) (87950 98163 (PLCHAIN 87960 . 88488) (PRINTLINE -88490 . 91480) (SL.GETLINES 91482 . 94775) (CHECKLINES 94777 . 95757) (COLLECTLINES 95759 . 96011) ( -NTHLINE 96013 . 97018) (HEIGHT 97020 . 97308) (LINEBOTS 97310 . 98161)) (98164 100612 (IPC.DECODEARGS -98174 . 100610)) (100613 101206 (SPF1 100623 . 101204)) (101235 103613 (SLF.FATPLEN 101245 . 102104) ( -FILEPIECE 102106 . 103611)) (103646 104414 (SELTEDIT 103656 . 104412)) (104484 110096 (PPARA 104494 . -104916) (PRUN 104918 . 106394) (ADDLINEPOSITIONS 106396 . 107823) (SBR 107825 . 108479) (SBC 108481 . -110094)) (110153 114828 (DFOV 110163 . 112633) (OLDWI 112635 . 113010) (DFOV.OLDEST 113012 . 113437) ( -COMP 113439 . 113634) (DFR 113636 . 114826)) (114829 115862 (DFGV 114839 . 115365) (GDIRECTORIES -115367 . 115860)) (115863 122428 (TTEST 115873 . 120405) (LTEST 120407 . 121772) (THC 121774 . 122426) -) (122742 123434 (SHOWSAFE 122752 . 123432)) (123487 123934 (MYH 123497 . 123932)) (124179 125274 ( -DFVENUE 124189 . 125068) (VSEE 125070 . 125272)) (125275 125729 (PTT 125285 . 125727)) (126976 129292 -(TEDIT-DEBUG 126986 . 129290)) (129293 131029 (TRENAME 129303 . 131027))))) +7523 8458 (TESTACTION 7533 . 8456)) (8483 21614 (IPC 8493 . 9997) (ILINES 9999 . 12540) (ISEL 12542 . +13153) (ITS 13155 . 14879) (IPANES 14881 . 15116) (ITL 15118 . 15537) (IHIST 15539 . 18201) (IPCTB +18203 . 18511) (IMB 18513 . 19128) (ICL 19130 . 19695) (IPL 19697 . 20101) (ICARET 20103 . 20480) ( +INSPECTPIECES 20482 . 21612)) (21636 48584 (SP 21646 . 26163) (SL 26165 . 29309) (SSP 29311 . 30742) ( +SPF 30744 . 33043) (SLF 33045 . 42178) (SHOWLINE 42180 . 45742) (SLL 45744 . 46491) (STBYTES 46493 . +48219) (SSEL 48221 . 48582)) (48585 57478 (STL 48595 . 57107) (CLEARTHISLINE 57109 . 57476)) (57479 +62852 (NTHPIECE 57489 . 58621) (NPIECES 58623 . 59488) (NTHPIECECHAR 59490 . 60798) (SELPIECE 60800 . +61242) (PIECENUM 61244 . 61963) (PCBYTES 61965 . 62850)) (62853 65327 (FILEBYTES 62863 . 64287) ( +TFILEBYTES 64289 . 65325)) (65328 66650 (TRELMOVE 65338 . 65581) (TSCROLL 65583 . 65749) (TSCROLL* +65751 . 66648)) (66651 69700 (TRY 66661 . 67930) (TEDITCLOSEW 67932 . 68275) (PARALASTWITHOUTEOL 68277 + . 69162) (FIXPARALAST 69164 . 69698)) (69701 84200 (SPPRINT 69711 . 76296) (SPPRINT.CHAR 76298 . +77282) (SPPRINT.OBJ 77284 . 80342) (SHOWPIECEBYTES 80344 . 81900) (CHECKPLENGTHS 81902 . 82359) (SBT +82361 . 83350) (COPYPCHAIN 83352 . 84198)) (84201 86262 (POSLINE 84211 . 86260)) (86263 87146 ( +PRESPLIT 86273 . 87144)) (87147 88860 (ALLTL 87157 . 88410) (NTHCHARSLOT 88412 . 88858)) (88886 99099 +(PLCHAIN 88896 . 89424) (PRINTLINE 89426 . 92416) (SL.GETLINES 92418 . 95711) (CHECKLINES 95713 . +96693) (COLLECTLINES 96695 . 96947) (NTHLINE 96949 . 97954) (HEIGHT 97956 . 98244) (LINEBOTS 98246 . +99097)) (99100 101548 (IPC.DECODEARGS 99110 . 101546)) (101549 102142 (SPF1 101559 . 102140)) (102171 +104549 (SLF.FATPLEN 102181 . 103040) (FILEPIECE 103042 . 104547)) (104582 105350 (SELTEDIT 104592 . +105348)) (105420 111032 (PPARA 105430 . 105852) (PRUN 105854 . 107330) (ADDLINEPOSITIONS 107332 . +108759) (SBR 108761 . 109415) (SBC 109417 . 111030)) (111089 112865 (OLDWI 111099 . 111474) (COMP +111476 . 111671) (DFR 111673 . 112863)) (112866 113899 (DFGV 112876 . 113402) (GDIRECTORIES 113404 . +113897)) (113900 120465 (TTEST 113910 . 118442) (LTEST 118444 . 119809) (THC 119811 . 120463)) (120779 + 121471 (SHOWSAFE 120789 . 121469)) (121524 121971 (MYH 121534 . 121969)) (122216 123311 (DFVENUE +122226 . 123105) (VSEE 123107 . 123309)) (123312 123766 (PTT 123322 . 123764)) (125013 127329 ( +TEDIT-DEBUG 125023 . 127327)) (127330 129066 (TRENAME 127340 . 129064))))) STOP diff --git a/internal/TEDIT-DEBUG.LCOM b/internal/TEDIT-DEBUG.LCOM index 61accf82129304fd1e623d214d20b722a4f5585e..265572f11569ef2b46a768832ec8676a462aafce 100644 GIT binary patch delta 892 zcmZ`%y>HV%6p#BM)DtZqjZlXU4_NQj-U)_{m>pPduV+45Z)QL!W>LQ&haN;8xJ zbw><^8xb4qh^QM2BVvFBHkgq5x$zHhaaCFb4EOHo-S2+)`@MTle~j*YAKk7eja<6g z=%tOUQ2<>xvn4aDKU>ak&1ryCBYS#i7^aao3ndkrz4n8()%DIwy9Mpd_1?yH6F6qv zvN;JTbh@CrHQ$G`w=hezm%yUJ}YW&4s>Ha zXBc2&hw${mJ?O1212XN3MLo>YJb;u-*%?)uc&yA!nPG$%Nl;^HM?NC1Dl_7fa!n}? zekxZ+x6XJlojH^upaW-I3aSEuEJ*f9gG7`_Bu14jR^W^s*Hv z%G=qKteH4LC6Dn>%4**>|zBo4SMu!#)tsfP@ys z48-f*+GWH-7nmNq1d5|yanixA+8bfdsMDyUqjlg&61Z2ZQ za9sJl@!UABw+Nm?B5d;@BACg#gfKwj_F*Kp50eTKuMVSW$)biU4LS1t_GVv|FeE09 c_?WCC(Ku>cpuSbL5G*o`CBHZLdQ=?$1)}Kd6#xJL delta 1581 zcmZux&2Jk;6!+RGlr4$!O%xUBX;G0~k+2`OW1CAhyJPQ=_3n0eZ7Wq!h+_v^P2wmH zQYD1UA5aOBy%i+HkxP{iRiX&h;sj^Th*O#-2P7^%!<)790b-?{dGp?z-@+s%!74eAfKciMMy zpqWH-?wFoq~K**O&6Rrcy&dv%@TiwN7|BIXy5_~*QO`^F(jrl|m4!Nnl&xM<5 zkQ7PIiowU+?R#a_^#G03pV7%esi4_KF9Gqq<^B5%3CKAvDO0=T&FHF6K#;Om$w+ce zmU79I06a$EQpbOCldWIY z>1c`?pD^d|^vLUm)@Hc7YxL((chKZkMz0-{TNyuk z%O17I8`IM(!(Dsm>5x6#m|hurUW|TpaA*&|yE4>0c=g!gxF0Mo$}JtF=+V@5$l#l2 zH)HgX5$ru1>omjE#=-!-#Oa5Njan^?jUoD9c(BHBB(9_-P#woy0!3D^N?gaKph#)J z*^)pJlYL3fUP>AHLMKa5F^Eg32U0eR+78p50h9wf7DLe7AaOhY`U+m>HZsh_}%MG#=CwF~R5Pq%6U(lB#f0WIVw$YKhF z_n=yb&DKsG+S~QD=6Z8Y04ak8r`2v3n$?XuY^`qA+wZR<-P?$_0|Jlvr$JZ_S%{pL zk{Ir4B`0x(S`lORT!Qa^>4v@rThvS3A7ycOfI+SQgcQ#t3BDx>F z@P~R0N;7SbR8Td3S{l_1qAfajq=IjF;4S!k@Y$(97`78rGgNA!8*~A22z|@K6+b$)nAF{Rx!Gkk*f)5Yvsd>EI zIJKzHI%x3QnLEZKu;6U0Vz=I{Kin129?YHl156)$dA>T%vx-!q>=A+i3uPAd`0w-d Gjeh{;J%nQb diff --git a/library/tedit/TEDIT-BUTTONS b/library/tedit/TEDIT-BUTTONS index 8eccb65e1..e0d1dc9a3 100644 --- a/library/tedit/TEDIT-BUTTONS +++ b/library/tedit/TEDIT-BUTTONS @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "14-Mar-2025 15:29:51" {WMEDLEY}tedit>TEDIT-BUTTONS.;219 124275 +(FILECREATED "22-Mar-2025 14:01:28" {WMEDLEY}TEDIT>TEDIT-BUTTONS.;220 124351 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT-BUTTONSCOMS) + :CHANGES-TO (FNS MB.BUTTONEVENTINFN) - :PREVIOUS-DATE "16-Feb-2025 15:02:06" {MEDLEY}tedit>TEDIT-BUTTONS.;52) + :PREVIOUS-DATE "14-Mar-2025 15:29:51" {WMEDLEY}TEDIT>TEDIT-BUTTONS.;219) (PRETTYCOMPRINT TEDIT-BUTTONSCOMS) @@ -308,6 +308,7 @@ (MB.BUTTONEVENTINFN [LAMBDA (OBJ MENUSTREAM SEL RELX RELY SELWINDOW HOSTSTREAM BUTTON) + (* ; "Edited 22-Mar-2025 14:00 by rmk") (* ; "Edited 12-Jan-2025 13:03 by rmk") (* ; "Edited 28-Dec-2024 20:21 by rmk") (* ; "Edited 22-Aug-2024 16:26 by rmk") @@ -318,7 +319,6 @@ (* ;; "Called when a mouse-button is down inside the object, RELX and RELY are in the objects coordinate system. Decline unless it is a normal left-button selection within the object.") - (TEDIT.PROMPTCLEAR MENUSTREAM) (if [OR (EQ BUTTON 'RIGHT) (SHIFTDOWNP 'CTRL) (SHIFTDOWNP 'SHIFT) @@ -1958,25 +1958,25 @@ (MB.FIELD.INIT) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3231 19084 (MB.ADD 3241 . 9670) (MB.DELETE 9672 . 10046) (MB.GET 10048 . 16818) ( -MB.GET.MBARG 16820 . 18489) (TEDIT.BACKTOMAIN 18491 . 19082)) (19128 38990 (MB.BUTTONEVENTINFN 19138 - . 20632) (MB.DISPLAYFN 20634 . 22693) (MB.SETIMAGE 22695 . 23863) (MB.SIZEFN 23865 . 25413) ( -MB.WHENOPERATEDONFN 25415 . 27364) (MB.COPYFN 27366 . 27824) (MB.GETFN 27826 . 28787) (MB.PUTFN 28789 - . 29889) (MB.SHOWSELFN 29891 . 31400) (MB.CREATE 31402 . 35425) (MB.CHANGENAME 35427 . 35909) ( -MB.INIT 35911 . 37372) (MB.TRACK.UNTIL 37374 . 38069) (MB.DON'T 38071 . 38367) (MB.SPEC.REMAINDER -38369 . 38988)) (39152 49142 (MB.3STATE.CREATE 39162 . 40026) (MB.3STATE.DISPLAYFN 40028 . 41014) ( -MB.3STATE.SHOWSELFN 41016 . 43327) (MB.3STATE.INIT 43329 . 44740) (MB.3STATE.SETSTATEFN 44742 . 45400) - (MB.3STATE.BUTTONEVENTINFN 45402 . 49140)) (49297 79965 (MB.NWAY.CREATE 49307 . 55349) ( -MB.NWAY.DISPLAYFN 55351 . 56214) (MB.NWAY.WHENOPERATEDONFN 56216 . 58406) (MB.NWAY.SIZEFN 58408 . -62344) (MB.NWAY.SELECT 62346 . 65916) (MB.NWAY.BUTTONEVENTINFN 65918 . 69130) (MB.NWAY.NEWMENUBUTTON -69132 . 69844) (MB.NWAY.COPYFN 69846 . 70813) (MB.NWAY.INIT 70815 . 72306) (MB.NWAY.ARRANGEBUTTONS -72308 . 74279) (MB.NWAY.ADDITEM 74281 . 78143) (MB.NWAY.FINDSUBOBJ 78145 . 78659) (MB.NWAY.SETSTATEFN -78661 . 79963)) (80044 91931 (MB.TOGGLE.CREATE 80054 . 81049) (MB.TOGGLE.DISPLAYFN 81051 . 82534) ( -MB.TOGGLE.INIT 82536 . 84335) (MB.SET.TOGGLE 84337 . 85538) (MB.TOGGLE.SETSTATEFN 85540 . 86380) ( -MB.TOGGLE.BUTTONEVENTINFN 86382 . 90586) (MB.TOGGLE.WHENOPERATEDONFN 90588 . 91929)) (92012 124196 ( -MB.FIELD.CREATE 92022 . 97473) (MB.FIELD.DISPLAYFN 97475 . 98266) (MB.FIELD.IMAGEBOXFN 98268 . 99750) -(MB.FIELD.PREFIXCREATE 99752 . 103688) (MB.FIELD.SUFFIXCREATE 103690 . 105350) (MB.FIELD.INIT 105352 - . 107119) (MB.FIELD.WHENOPERATEDONFN 107121 . 108392) (MB.FIELD.GETSTATEFN 108394 . 112328) ( -MB.FIELD.SETSTATEFN 112330 . 117025) (MB.FIELD.BUTTONEVENTINFN 117027 . 119332) (MB.FIELD.SIZEFN -119334 . 119574) (MB.FIELD.INSURETYPE 119576 . 124194))))) + (FILEMAP (NIL (3233 19086 (MB.ADD 3243 . 9672) (MB.DELETE 9674 . 10048) (MB.GET 10050 . 16820) ( +MB.GET.MBARG 16822 . 18491) (TEDIT.BACKTOMAIN 18493 . 19084)) (19130 39066 (MB.BUTTONEVENTINFN 19140 + . 20708) (MB.DISPLAYFN 20710 . 22769) (MB.SETIMAGE 22771 . 23939) (MB.SIZEFN 23941 . 25489) ( +MB.WHENOPERATEDONFN 25491 . 27440) (MB.COPYFN 27442 . 27900) (MB.GETFN 27902 . 28863) (MB.PUTFN 28865 + . 29965) (MB.SHOWSELFN 29967 . 31476) (MB.CREATE 31478 . 35501) (MB.CHANGENAME 35503 . 35985) ( +MB.INIT 35987 . 37448) (MB.TRACK.UNTIL 37450 . 38145) (MB.DON'T 38147 . 38443) (MB.SPEC.REMAINDER +38445 . 39064)) (39228 49218 (MB.3STATE.CREATE 39238 . 40102) (MB.3STATE.DISPLAYFN 40104 . 41090) ( +MB.3STATE.SHOWSELFN 41092 . 43403) (MB.3STATE.INIT 43405 . 44816) (MB.3STATE.SETSTATEFN 44818 . 45476) + (MB.3STATE.BUTTONEVENTINFN 45478 . 49216)) (49373 80041 (MB.NWAY.CREATE 49383 . 55425) ( +MB.NWAY.DISPLAYFN 55427 . 56290) (MB.NWAY.WHENOPERATEDONFN 56292 . 58482) (MB.NWAY.SIZEFN 58484 . +62420) (MB.NWAY.SELECT 62422 . 65992) (MB.NWAY.BUTTONEVENTINFN 65994 . 69206) (MB.NWAY.NEWMENUBUTTON +69208 . 69920) (MB.NWAY.COPYFN 69922 . 70889) (MB.NWAY.INIT 70891 . 72382) (MB.NWAY.ARRANGEBUTTONS +72384 . 74355) (MB.NWAY.ADDITEM 74357 . 78219) (MB.NWAY.FINDSUBOBJ 78221 . 78735) (MB.NWAY.SETSTATEFN +78737 . 80039)) (80120 92007 (MB.TOGGLE.CREATE 80130 . 81125) (MB.TOGGLE.DISPLAYFN 81127 . 82610) ( +MB.TOGGLE.INIT 82612 . 84411) (MB.SET.TOGGLE 84413 . 85614) (MB.TOGGLE.SETSTATEFN 85616 . 86456) ( +MB.TOGGLE.BUTTONEVENTINFN 86458 . 90662) (MB.TOGGLE.WHENOPERATEDONFN 90664 . 92005)) (92088 124272 ( +MB.FIELD.CREATE 92098 . 97549) (MB.FIELD.DISPLAYFN 97551 . 98342) (MB.FIELD.IMAGEBOXFN 98344 . 99826) +(MB.FIELD.PREFIXCREATE 99828 . 103764) (MB.FIELD.SUFFIXCREATE 103766 . 105426) (MB.FIELD.INIT 105428 + . 107195) (MB.FIELD.WHENOPERATEDONFN 107197 . 108468) (MB.FIELD.GETSTATEFN 108470 . 112404) ( +MB.FIELD.SETSTATEFN 112406 . 117101) (MB.FIELD.BUTTONEVENTINFN 117103 . 119408) (MB.FIELD.SIZEFN +119410 . 119650) (MB.FIELD.INSURETYPE 119652 . 124270))))) STOP diff --git a/library/tedit/TEDIT-BUTTONS.LCOM b/library/tedit/TEDIT-BUTTONS.LCOM index fae2ce5f0c80b8385dbd8ed21875ed81b75fea4c..03bcc9fbeec7d2ded76d7d4838b52eea1e73fb9f 100644 GIT binary patch delta 486 zcma)(QA@&56vtHvVh=%B(BokgDYCI$H_clFo4eD+cJJEmG#@p65Vd3#6cK)f)Q3KZ zU!>T1h2b5D zcI3LS=_1Rr2>tG3B2DdQznRwlI#!Ta6biQEl6pXlBo&C;f{XCl_K4+@&fCR!*o(XI zONy`s1XQGzbrtX$R5CjdPevf%defi{5|$*+pkUK*3qldFACQ*AqENDuFw4E{QAzmk zX0^8Z$}0Oiem0ZYT^{DIBTWOxGa7`MSAM{JD60@Q9h+OMO?^;n8(ngQsty*TryR;P aFj+(`lidKSq(jLIq0R#rDyz@D@$?PB*npe> delta 520 zcma)(&rZTX5Ql-2)|0^pm^3EX#5TK27o-}J{#l@=?bdbyIf8H?fSLvmh8SK!@Zf{+ zSU!RmHz83-G;wa5{Jx!UX5QC@)w=N7J;A0P_A{LzLIG2&j4Xs!lhfsVG#tN{vf`YZ@pj#yq)Nfs&d`HwHUY(QTXxiB zsV+F2b?hXCy%}8|rW#mrn6Qq|+o|qJ8|hNf8>7MZmJqQ}MFnN?FBeKSpLukA)XC>^ z2lio3)*C9`EGYs%w401O*KxvQC|4nE`3>RmZWM#O$IgpxH4PaIW8ntOPUONaFnByF s2{0)*yd8NCzlAc{ftedit>TEDIT-COMMAND.;160 18311 +(FILECREATED "23-Mar-2025 10:26:23" {WMEDLEY}tedit>TEDIT-COMMAND.;162 19338 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.COMMAND.LOOP) + :CHANGES-TO (VARS TEDIT-COMMANDCOMS) + (FNS \TEDIT.COMMAND.FUNCTION? \TEDIT.COMMAND.LOOP) - :PREVIOUS-DATE "15-Mar-2025 23:21:12" {WMEDLEY}tedit>TEDIT-COMMAND.;158) + :PREVIOUS-DATE "16-Mar-2025 14:20:07" {WMEDLEY}tedit>TEDIT-COMMAND.;160) (PRETTYCOMPRINT TEDIT-COMMANDCOMS) (RPAQQ TEDIT-COMMANDCOMS ((DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (MACROS \TEDIT.MOUSESTATE \TEDIT.CHECK))) - (FNS \TEDIT.INTERRUPT.SETUP \TEDIT.MARKACTIVE \TEDIT.MARKINACTIVE \TEDIT.COMMAND.LOOP - \TEDIT.COMMAND.RESET.SETUP) + (FNS \TEDIT.COMMAND.LOOP \TEDIT.COMMAND.FUNCTION?) + (FNS \TEDIT.INTERRUPT.SETUP \TEDIT.MARKACTIVE \TEDIT.MARKINACTIVE \TEDIT.COMMAND.RESET.SETUP) [INITVARS (TEDIT.INTERRUPTS '((2 BREAK) (5 ERROR) (7 HELP) @@ -54,46 +55,9 @@ ) (DEFINEQ -(\TEDIT.INTERRUPT.SETUP - [LAMBDA (PROC FORCEOFF) (* ; "Edited 27-Mar-2024 15:27 by rmk") - (* ; "Edited 22-Sep-2023 20:45 by rmk") - (* jds "12-Sep-84 15:36") - - (* ;; "Disarm any inconvenient interrupts, and save re-arming info on the window.") - - [LET ((TEXTOBJ (TEXTOBJ PROC T))) - (CL:WHEN TEXTOBJ - (UNINTERRUPTABLY - [COND - ((AND FORCEOFF (PROCESSPROP PROC 'TEDIT.INTERRUPTS)) - (* ; - "There are disarmed interrupts; re-arm them.") - (RESET.INTERRUPTS (PROCESSPROP PROC 'TEDIT.INTERRUPTS)) - (PROCESSPROP PROC 'TEDIT.INTERRUPTS NIL)) - ([AND (NOT FORCEOFF) - (NOT (PROCESSPROP PROC 'TEDIT.INTERRUPTS] - (* ; - "There aren't any interrupts disarmed; go do it.") - (PROCESSPROP PROC 'TEDIT.INTERRUPTS (RESET.INTERRUPTS - (OR (AND TEXTOBJ (GETTEXTPROP TEXTOBJ - 'INTERRUPTS)) - TEDIT.INTERRUPTS) - T]))] - PROC]) - -(\TEDIT.MARKACTIVE - [LAMBDA (TEXTOBJ OPERATION) (* ; "Edited 29-Jun-2024 10:32 by rmk") - (* ; "Edited 12-Jun-90 18:04 by mitani") - (replace (TEXTOBJ EDITOPACTIVE) of TEXTOBJ with OPERATION) - TEXTOBJ]) - -(\TEDIT.MARKINACTIVE - [LAMBDA (TEXTOBJ) (* ; "Edited 12-Jun-90 18:04 by mitani") - (replace (TEXTOBJ EDITOPACTIVE) of TEXTOBJ with NIL) - TEXTOBJ]) - (\TEDIT.COMMAND.LOOP - [LAMBDA (TSTREAM) (* ; "Edited 16-Mar-2025 14:19 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 23-Mar-2025 09:56 by rmk") + (* ; "Edited 16-Mar-2025 14:19 by rmk") (* ; "Edited 17-Feb-2025 12:05 by rmk") (* ; "Edited 28-Nov-2024 10:01 by rmk") (* ; "Edited 21-Nov-2024 11:51 by rmk") @@ -121,7 +85,6 @@ (DECLARE (SPECVARS TEXTSTREAM)) (LET [(TEXTOBJ (TEXTOBJ! (GETTSTR TSTREAM TEXTOBJ] - (DECLARE (SPECVARS TEXTOBJ)) (for P inpanes TEXTOBJ do (WINDOWPROP P 'PROCESS (THIS.PROCESS))) (* ; "Add the process to our panes") (until (TTY.PROCESSP) do (* ; @@ -131,58 +94,110 @@ (RESETSAVE (\TEDIT.COMMAND.RESET.SETUP (LIST TEXTOBJ) T)) (until (FGETTOBJ TEXTOBJ EDITFINISHEDFLG) - do - (ERSETQ - (until (FGETTOBJ TEXTOBJ EDITFINISHEDFLG) - do - (\WAITFORSYSBUFP 25) (* ; "Await type-in or mouse action") - (while (FGETTOBJ TEXTOBJ EDITOPACTIVE) do (\TEDIT.FLASHCARET TEXTOBJ) + do (ERSETQ (until (FGETTOBJ TEXTOBJ EDITFINISHEDFLG) + do (\WAITFORSYSBUFP 25) (* ; "Await type-in or mouse action") + (while (FGETTOBJ TEXTOBJ EDITOPACTIVE) do (\TEDIT.FLASHCARET TEXTOBJ) (* ;  "Flash caret while other operation completes") - (BLOCK)) - (CL:UNLESS (FGETTOBJ TEXTOBJ EDITFINISHEDFLG) - (\TEDIT.FLASHCARET TEXTOBJ) (* ; + (BLOCK)) + (CL:UNLESS (FGETTOBJ TEXTOBJ EDITFINISHEDFLG) + (\TEDIT.FLASHCARET TEXTOBJ) (* ;  "Flash the caret periodically (BUT not while we're here only to cleanup and quit.)") - (FSETTOBJ TEXTOBJ EDITOPACTIVE T) (* ; + (FSETTOBJ TEXTOBJ EDITOPACTIVE T) + (* ;  "Before starting to work, note that we're doing something.") - (* ;; "") + (* ;; "") - (* ;; "Handle user type-in. CHARCODE is special so functions can see it.") + (* ;; + "Handle user type-in. CHARCODE is special so functions can see it.") - [bind CHARCODE TCH FN declare (SPECVARS CHARCODE) - first (CL:WHEN (SETQ FN (FGETTOBJ TEXTOBJ LOOPFN)) - (ERSETQ (APPLY* FN TSTREAM))) while (\SYSBUFP) - do (SETQ CHARCODE (\GETKEY)) - (CL:WHEN (SETQ FN (FGETTOBJ TEXTOBJ CHARFN)) + [bind CHARCODE TCH FN first (CL:WHEN (SETQ FN (FGETTOBJ TEXTOBJ + LOOPFN)) + (ERSETQ (APPLY* FN TSTREAM))) + while (\SYSBUFP) do (SETQ CHARCODE (\GETKEY)) + (CL:WHEN (SETQ FN (FGETTOBJ TEXTOBJ CHARFN)) (* ;  "The user can control each character typed.") - (SETQ TCH (APPLY* FN TSTREAM CHARCODE)) - - (* ;; "Ignore input if TCH=NIL, continue if T, otherwise substitute.") - - (CL:UNLESS (EQ TCH T) - (SETQ CHARCODE TCH))) - (CL:WHEN CHARCODE - (if [AND (EQ (\TEDIT.TTC FUNCTIONCALL) - (\SYNCODE (fetch READSA of (FGETTOBJ TEXTOBJ TXTRTBL)) - CHARCODE)) - (SETQ FN (CAR (fetch MACROFN - of (GETHASH CHARCODE (fetch READMACRODEFS - of (FGETTOBJ TEXTOBJ - TXTRTBL] - then (if (AND (LISTP FN) - (NOT (FNTYP FN))) - then - (* ;; - "A form but not a LAMBDA. TSTREAM, TEXTOBJ, and CHARCODE are specvars") - - (EVAL FN) - else (APPLY* FN TSTREAM TEXTOBJ (TEXTSEL TEXTOBJ))) - else (\TEDIT.INSERT CHARCODE (TEXTSEL TEXTOBJ) - TSTREAM NIL T)))]) - (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL))) - (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL)))]) + (SETQ TCH (APPLY* FN TSTREAM CHARCODE)) + + (* ;; + "Ignore input if TCH=NIL, continue if T, otherwise substitute.") + + (CL:UNLESS (EQ TCH T) + (SETQ CHARCODE TCH))) + (CL:WHEN CHARCODE + (OR (\TEDIT.COMMAND.FUNCTION? TSTREAM + CHARCODE) + (\TEDIT.INSERT CHARCODE (TEXTSEL + TEXTOBJ) + TSTREAM NIL T)))]) + (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL))) + (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL)))]) + +(\TEDIT.COMMAND.FUNCTION? + [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 23-Mar-2025 10:00 by rmk") + (DECLARE (SPECVARS TSTREAM CHARCODE)) + + (* ;; "If CHARCODE is a function in TSTREAM's read table, execute the function.") + + (LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) + FN) + (DECLARE (SPECVARS TEXTOBJ)) + (CL:WHEN [AND (EQ (\TEDIT.TTC FUNCTIONCALL) + (\SYNCODE (fetch READSA of (FGETTOBJ TEXTOBJ TXTRTBL)) + CHARCODE)) + (SETQ FN (CAR (fetch MACROFN of (GETHASH CHARCODE (fetch READMACRODEFS + of (FGETTOBJ TEXTOBJ + TXTRTBL] + (if (AND (LISTP FN) + (NOT (FNTYP FN))) + then + (* ;; "A form but not a LAMBDA. TSTREAM, TEXTOBJ, and CHARCODE are specvars") + + (EVAL FN) + else (APPLY* FN TSTREAM TEXTOBJ (TEXTSEL TEXTOBJ)) + T))]) +) +(DEFINEQ + +(\TEDIT.INTERRUPT.SETUP + [LAMBDA (PROC FORCEOFF) (* ; "Edited 27-Mar-2024 15:27 by rmk") + (* ; "Edited 22-Sep-2023 20:45 by rmk") + (* jds "12-Sep-84 15:36") + + (* ;; "Disarm any inconvenient interrupts, and save re-arming info on the window.") + + [LET ((TEXTOBJ (TEXTOBJ PROC T))) + (CL:WHEN TEXTOBJ + (UNINTERRUPTABLY + [COND + ((AND FORCEOFF (PROCESSPROP PROC 'TEDIT.INTERRUPTS)) + (* ; + "There are disarmed interrupts; re-arm them.") + (RESET.INTERRUPTS (PROCESSPROP PROC 'TEDIT.INTERRUPTS)) + (PROCESSPROP PROC 'TEDIT.INTERRUPTS NIL)) + ([AND (NOT FORCEOFF) + (NOT (PROCESSPROP PROC 'TEDIT.INTERRUPTS] + (* ; + "There aren't any interrupts disarmed; go do it.") + (PROCESSPROP PROC 'TEDIT.INTERRUPTS (RESET.INTERRUPTS + (OR (AND TEXTOBJ (GETTEXTPROP TEXTOBJ + 'INTERRUPTS)) + TEDIT.INTERRUPTS) + T]))] + PROC]) + +(\TEDIT.MARKACTIVE + [LAMBDA (TEXTOBJ OPERATION) (* ; "Edited 29-Jun-2024 10:32 by rmk") + (* ; "Edited 12-Jun-90 18:04 by mitani") + (replace (TEXTOBJ EDITOPACTIVE) of TEXTOBJ with OPERATION) + TEXTOBJ]) + +(\TEDIT.MARKINACTIVE + [LAMBDA (TEXTOBJ) (* ; "Edited 12-Jun-90 18:04 by mitani") + (replace (TEXTOBJ EDITOPACTIVE) of TEXTOBJ with NIL) + TEXTOBJ]) (\TEDIT.COMMAND.RESET.SETUP [LAMBDA (ARGS STARTING) (* ; "Edited 29-Jun-2024 00:10 by rmk") @@ -291,7 +306,7 @@ (GLOBALVARS || TEDIT.INTERRUPTS) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2595 18021 (\TEDIT.INTERRUPT.SETUP 2605 . 4252) (\TEDIT.MARKACTIVE 4254 . 4583) ( -\TEDIT.MARKINACTIVE 4585 . 4801) (\TEDIT.COMMAND.LOOP 4803 . 11429) (\TEDIT.COMMAND.RESET.SETUP 11431 - . 18019))))) + (FILEMAP (NIL (2688 10249 (\TEDIT.COMMAND.LOOP 2698 . 9039) (\TEDIT.COMMAND.FUNCTION? 9041 . 10247)) ( +10250 19048 (\TEDIT.INTERRUPT.SETUP 10260 . 11907) (\TEDIT.MARKACTIVE 11909 . 12238) ( +\TEDIT.MARKINACTIVE 12240 . 12456) (\TEDIT.COMMAND.RESET.SETUP 12458 . 19046))))) STOP diff --git a/library/tedit/TEDIT-COMMAND.LCOM b/library/tedit/TEDIT-COMMAND.LCOM index 1f59c464761d69911f2a5dbb04913f86e3ddc944..0ece03960232115c5fe7699a0e500e8a9e459c7d 100644 GIT binary patch delta 1098 zcmZ`&&rj2E6yL@sVc0yKHxq-pf9%*xxr8DUaRsbXHf0M(li5GExF4l@aY z2tZ}})=cGy6bwt!fgx8=5G6iUY+>dVf4{jvRn90NsU z*E9*GKw&$sSHY5UvnfE z<5#+}7|RC8DTqgx)*j(AVG-s^EYt{OzGr{Cjgm(5VG&y1~e zrr1QLv%IQ#vo)L4-F2n9^L*m+QnvmT5tk9#_>$G!#|&+|U-QmZPdE&HYyFK+bI;<> zUhFCsDM&?QP&Ri#h_b>LRiGlwKC-tRqO}y901f4FUY+1eI3pw~B_%m26d(}?eZ(=~ zaSD_8)kxfim<6cNI6DW>vi9z;M#b1gXQ zyKNSWZLHZ;ujjNavz=@jmQAj<`?EffZJJAK+`eYcVxxWTewKS*v+pdvOmM9zo9VP! zOO^VWwhiA{rm{D$TASG2Rc&sp@m(~>@3sUfDh52>6Skhfs?|~fVsXH6WH==Q47so3 zTS**r9-{!SDy?!!i7!MT5;nUtO$Z-0sQ4kGam3~|VzS0>>jRs<+Id{>_8x0UosZh} kXV%WX|E@{@=sSgP=bMi)gGT*>X#MgNy6z`Xd*{FX2R8~3M*si- delta 865 zcmZuwPfXKb6kj_Aqav(h12#2z?m!rEOTW%;WhUr0zPYX4I@dy71S4TaW~MR5m>6S5 zxOx%4c=3P#z4pfdm9X63(b z5e0(WSURiXR0$^xJVo}HWH%r=f)IJkoF>bjVe*A>`5=I#qoc)0Ttsms27p_6GS(%@ zL5^traI4PUV~OVMC3*HEBNN{4nTWx7v81Iio(iQBI@ZUb2vN|p@pwViv2i6dlTfEI zB_&7~XgCi>Dnnz0T(>9d6JX%0hL+4h8jt{nZqPRK7C`^LgR|3^X zN^O6yc_!C^ORto}jI-6LV7=$|a!%Q-b?r7slp`Cxd^=y@3_aePp81*)0u!66F^NDjB*jg zNDOA_a%7EgwxHvZ0V4g|AEDI<|oF?GhGkjf-VZAf?f4-IJWJr?|rL1 iWQKQtedit>TEDIT-FNKEYS.;232 99694 +(FILECREATED "23-Mar-2025 10:33:09" {WMEDLEY}tedit>TEDIT-FNKEYS.;233 99934 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.KEY.SIZE) + :CHANGES-TO (FNS TEDIT.BUTTONS.BUILD \TEDIT.KEY.SIZE) (VARS TEDIT.CHARACTIONS) :PREVIOUS-DATE "19-Mar-2025 15:47:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;231) @@ -1776,7 +1776,8 @@ (DEFINEQ (TEDIT.BUTTONS.BUILD - [LAMBDA (BUTTONSPEC TITLE NROWS KEYBINDINGS) (* ; "Edited 18-Mar-2025 15:47 by rmk") + [LAMBDA (BUTTONSPEC TITLE NROWS KEYBINDINGS) (* ; "Edited 23-Mar-2025 10:31 by rmk") + (* ; "Edited 18-Mar-2025 15:47 by rmk") (* ; "Edited 15-Mar-2025 15:24 by rmk") (* ; "Edited 5-Nov-85 15:35 by lmm") @@ -1817,7 +1818,8 @@ PROCTTYENTRYFN ) OF (TTY.PROCESS))) - [BKSYSCHARCODE + [\TEDIT.COMMAND.FUNCTION? + (TEXTSTREAM (TTY.PROCESS)) (CL:IF (SHIFTDOWNP 'SHIFT) (CADR (CADR X)) @@ -1872,27 +1874,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3724 7945 (CHARNAME 3734 . 7943)) (8001 21878 (TEDIT.INSTALL.CHARBINDINGS 8011 . 11194) - (TEDIT.CLEAR.CHARBINDINGS 11196 . 13787) (TEDIT.GET.CHARACTION 13789 . 16436) (TEDIT.GET.CHARBINDING -16438 . 18362) (TEDIT.GET.ALL.CHARBINDINGS 18364 . 20018) (TEDIT.GET.ALL.CHARACTIONS 20020 . 21876)) ( -21938 31556 (\TEDIT.KEY.CHARLOOKS 21948 . 22890) (\TEDIT.KEY.QUAD 22892 . 24985) (\TEDIT.DEFAULTSSEL -24987 . 25598) (\TEDIT.SETDEFAULT.FROM.SEL 25600 . 26277) (\TEDIT.KEY.SIZE 26279 . 27475) ( -\TEDIT.SUBSCRIPTSEL 27477 . 27680) (\TEDIT.SUPERSCRIPTSEL 27682 . 27886) (\TEDIT.KEY.TRANSFORM 27888 - . 29698) (\TEDIT.KEY.OPENLINE 29700 . 30154) (\TEDIT.KEY.FAMILYN 30156 . 31554)) (31557 31846 ( -CAP-CASECODE 31567 . 31844)) (31880 34506 (\TEDIT.SHOWCARETLOOKS 31890 . 33599) (\TEDIT.DESCRIBEFONT -33601 . 34504)) (34537 49273 (\TEDIT.ONECHAR.BACKWARD 34547 . 35676) (\TEDIT.ONECHAR.FORWARD 35678 . -36896) (\TEDIT.ONELINE.UP 36898 . 39859) (\TEDIT.ONELINE.DOWN 39861 . 41518) (\TEDIT.ONELINE.MOVE -41520 . 43734) (\TEDIT.ONEWORD.BACKWARD 43736 . 44888) (\TEDIT.ONEWORD.FORWARD 44890 . 46041) ( -\TEDIT.LINE.BEGIN 46043 . 47094) (\TEDIT.LINE.END 47096 . 48305) (\TEDIT.DOCUMENT.BEGIN 48307 . 48666) - (\TEDIT.DOCUMENT.END 48668 . 49271)) (49274 51118 (\TEDIT.LINEDELETE.FORWARD 49284 . 50184) ( -\TEDIT.LINEDELETE.BACKWARD 50186 . 51116)) (51119 53377 (\TEDIT.KEY.NEST 51129 . 53375)) (53431 61386 -(\TEDIT.KEY.FIND 53441 . 58526) (\TEDIT.KEY.FIND.SEARCHSTRING 58528 . 59668) (\TEDIT.GET.TARGET.STRING - 59670 . 61384)) (61417 64049 (\TEDIT.KEY.SUBSTITUTE 61427 . 61648) (\TEDIT.MANPAGE 61650 . 62897) ( -\TEDIT.CALL.ED 62899 . 63729) (\TEDIT.SELECT.ALL 63731 . 64047)) (64076 69656 (\TEDIT.CLIPBOARD 64086 - . 65841) (\TEDIT.COPYTOCLIPBOARD 65843 . 66623) (\TEDIT.EXTRACTTOCLIPBOARD 66625 . 66820) ( -\TEDIT.WRITE.SEL 66822 . 69654)) (70008 81723 (\TEDIT.READTABLE 70018 . 70954) ( -\TEDIT.WORDBOUND.READTABLE 70956 . 73585) (TEDIT.GETSYNTAX 73587 . 75106) (TEDIT.SETSYNTAX 75108 . -76313) (TEDIT.GETFUNCTION 76315 . 77487) (TEDIT.SETFUNCTION 77489 . 79475) (TEDIT.WORDGET 79477 . -79738) (TEDIT.WORDSET 79740 . 80371) (TEDIT.ATOMBOUND.READTABLE 80373 . 81721)) (92311 98630 ( -TEDIT.BUTTONS.BUILD 92321 . 96898) (TEDIT.BUTTONBITMAP.FILL 96900 . 98628))))) + (FILEMAP (NIL (3744 7965 (CHARNAME 3754 . 7963)) (8021 21898 (TEDIT.INSTALL.CHARBINDINGS 8031 . 11214) + (TEDIT.CLEAR.CHARBINDINGS 11216 . 13807) (TEDIT.GET.CHARACTION 13809 . 16456) (TEDIT.GET.CHARBINDING +16458 . 18382) (TEDIT.GET.ALL.CHARBINDINGS 18384 . 20038) (TEDIT.GET.ALL.CHARACTIONS 20040 . 21896)) ( +21958 31576 (\TEDIT.KEY.CHARLOOKS 21968 . 22910) (\TEDIT.KEY.QUAD 22912 . 25005) (\TEDIT.DEFAULTSSEL +25007 . 25618) (\TEDIT.SETDEFAULT.FROM.SEL 25620 . 26297) (\TEDIT.KEY.SIZE 26299 . 27495) ( +\TEDIT.SUBSCRIPTSEL 27497 . 27700) (\TEDIT.SUPERSCRIPTSEL 27702 . 27906) (\TEDIT.KEY.TRANSFORM 27908 + . 29718) (\TEDIT.KEY.OPENLINE 29720 . 30174) (\TEDIT.KEY.FAMILYN 30176 . 31574)) (31577 31866 ( +CAP-CASECODE 31587 . 31864)) (31900 34526 (\TEDIT.SHOWCARETLOOKS 31910 . 33619) (\TEDIT.DESCRIBEFONT +33621 . 34524)) (34557 49293 (\TEDIT.ONECHAR.BACKWARD 34567 . 35696) (\TEDIT.ONECHAR.FORWARD 35698 . +36916) (\TEDIT.ONELINE.UP 36918 . 39879) (\TEDIT.ONELINE.DOWN 39881 . 41538) (\TEDIT.ONELINE.MOVE +41540 . 43754) (\TEDIT.ONEWORD.BACKWARD 43756 . 44908) (\TEDIT.ONEWORD.FORWARD 44910 . 46061) ( +\TEDIT.LINE.BEGIN 46063 . 47114) (\TEDIT.LINE.END 47116 . 48325) (\TEDIT.DOCUMENT.BEGIN 48327 . 48686) + (\TEDIT.DOCUMENT.END 48688 . 49291)) (49294 51138 (\TEDIT.LINEDELETE.FORWARD 49304 . 50204) ( +\TEDIT.LINEDELETE.BACKWARD 50206 . 51136)) (51139 53397 (\TEDIT.KEY.NEST 51149 . 53395)) (53451 61406 +(\TEDIT.KEY.FIND 53461 . 58546) (\TEDIT.KEY.FIND.SEARCHSTRING 58548 . 59688) (\TEDIT.GET.TARGET.STRING + 59690 . 61404)) (61437 64069 (\TEDIT.KEY.SUBSTITUTE 61447 . 61668) (\TEDIT.MANPAGE 61670 . 62917) ( +\TEDIT.CALL.ED 62919 . 63749) (\TEDIT.SELECT.ALL 63751 . 64067)) (64096 69676 (\TEDIT.CLIPBOARD 64106 + . 65861) (\TEDIT.COPYTOCLIPBOARD 65863 . 66643) (\TEDIT.EXTRACTTOCLIPBOARD 66645 . 66840) ( +\TEDIT.WRITE.SEL 66842 . 69674)) (70028 81743 (\TEDIT.READTABLE 70038 . 70974) ( +\TEDIT.WORDBOUND.READTABLE 70976 . 73605) (TEDIT.GETSYNTAX 73607 . 75126) (TEDIT.SETSYNTAX 75128 . +76333) (TEDIT.GETFUNCTION 76335 . 77507) (TEDIT.SETFUNCTION 77509 . 79495) (TEDIT.WORDGET 79497 . +79758) (TEDIT.WORDSET 79760 . 80391) (TEDIT.ATOMBOUND.READTABLE 80393 . 81741)) (92331 98870 ( +TEDIT.BUTTONS.BUILD 92341 . 97138) (TEDIT.BUTTONBITMAP.FILL 97140 . 98868))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 65c8d9a8128f2ffa7b4e110fd3fb0f88a63204ca..a83af079a5ae6f830e285b4dbd0fc0a31daf4b7f 100644 GIT binary patch delta 252 zcmcb-m}%Y;rU?QoR}y)@v$d1C6nzL zwb+amEG;dKC+9ONf>ciKXS9;wQZlqeGSJk@#N5izL`h-uL&jzC%9aca42%gtf`JW0 zoHR=ZQ6ILbCV*&85HWc{qDT}Mh$XgOEd>F;N+ zU~H)n?BVGa;^H6f7ocEdsSx5C5fU5{v#l77CN9(Cj|p*g@eI-Pc8$~v z_Kb3!_}mk#@@g$MBLz!KGt0@vjEa+2Fj`6|8CoKYH8iy{F}E@_QBvTVSgWyFk*O}8 zQGfD+L~%FibOs>c1QAmlm>8LwfCM9$E5M*(Vxr*W9UK|#?BN*X?C;{LU}UKf?BVGa W;^H6f7of?dVPpc~Z#GDJrw;%o`ZI0- diff --git a/library/tedit/TEDIT-LOOKS b/library/tedit/TEDIT-LOOKS index 8fb679cc7..947026121 100644 --- a/library/tedit/TEDIT-LOOKS +++ b/library/tedit/TEDIT-LOOKS @@ -1,10 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "21-Mar-2025 23:17:49" {WMEDLEY}tedit>TEDIT-LOOKS.;396 154054 +(FILECREATED "22-Mar-2025 21:51:05" {WMEDLEY}tedit>TEDIT-LOOKS.;397 155398 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.CHARLOOKS.CHANGE.FONT \TEDIT.CHANGE.CHARLOOKS \TEDIT.FONT.NEXTSIZE) + :CHANGES-TO (FNS \TEDIT.CHARLOOKS.CHANGE.FONT \TEDIT.FONTCLASS.TO.FONT \TEDIT.CHANGE.CHARLOOKS + \TEDIT.FONT.NEXTSIZE) (VARS TEDIT-LOOKSCOMS) :PREVIOUS-DATE "19-Mar-2025 13:20:52" {WMEDLEY}tedit>TEDIT-LOOKS.;395) @@ -63,7 +64,8 @@ (FNS TEDIT.LOOKS TEDIT.GET.LOOKS TEDIT.SUBLOOKS TEDIT.FINDLOOKS) [INITVARS (TEDIT.FONTCLASSES '(DISPLAY PDF POSTSCRIPT INTERPRESS PRESS] (FNS \TEDIT.CHANGE.CHARLOOKS \TEDIT.CHANGE.CHARLOOKS.NEW \TEDIT.CHARLOOKS.CHANGE.FONT - \TEDIT.FONT.NEXTSIZE \TEDIT.LOOKS \TEDIT.FONTCOPY \TEDIT.COERCE.FONTCLASS)) + \TEDIT.FONT.NEXTSIZE \TEDIT.LOOKS \TEDIT.FONTCOPY \TEDIT.COERCE.FONTCLASS + \TEDIT.FONTCLASS.TO.FONT)) (COMS (* ; "Paragraph looks functions") (FNS \TEDIT.EQFMTSPEC TEDIT.GET.PARALOOKS \TEDIT.PARSE.PARALOOKS.LIST TEDIT.PARALOOKS \TEDIT.CHANGE.PARALOOKS \TEDIT.CHANGE.PARALOOKS.NEW TEDIT.COPY.PARALOOKS @@ -1591,7 +1593,8 @@ NIL) finally (RETURN NEWCHARLOOKS]) (\TEDIT.CHARLOOKS.CHANGE.FONT - [LAMBDA (NEWLOOKS OLDCHARLOOKS TEXTOBJ) (* ; "Edited 21-Mar-2025 13:54 by rmk") + [LAMBDA (NEWLOOKS OLDCHARLOOKS TEXTOBJ) (* ; "Edited 22-Mar-2025 21:50 by rmk") + (* ; "Edited 21-Mar-2025 13:54 by rmk") (* ; "Edited 29-Jan-2025 23:52 by rmk") (* ; "Edited 10-Jan-2025 11:01 by rmk") (* ; "Edited 7-Jan-2025 12:34 by rmk") @@ -1611,7 +1614,7 @@ (* ;; " 1. OLDCHARLOOKCS CLFONT is a FONTDESCRIPTOR, same for all devices") - (* ;; " If DEVICE is ALL or OFF, CLFONT is replaced by the new FONTDESCRIPTOR that stands for all devices.") + (* ;; " If DEVICE is ALL, OFF, or NIL, CLFONT is replaced by the new FONTDESCRIPTOR that stands for all devices.") (* ;; " If DEVICE is a particular device, then CLFONT is coerced to a fontclass that differentiates just for the new device.") @@ -1693,7 +1696,7 @@ (* ;; "") - (RETURN (if (EQ 'ALL DEVICE) + (RETURN (if (MEMB DEVICE '(ALL OFF NIL)) then (if NEWFONT elseif (type? FONTDESCRIPTOR OLDFONT) then (\TEDIT.FONTCOPY OLDFONT FONTSPEC TEXTOBJ) @@ -1837,6 +1840,23 @@ (FONTCLASSCOMPONENT FONT D))] NEWCLASS]) + +(\TEDIT.FONTCLASS.TO.FONT + [LAMBDA (FONTCLASS) (* ; "Edited 22-Mar-2025 21:29 by rmk") + + (* ;; + "If all of the hardcopy fonts in FONTCLASS have the same properties, reduce to the display font.") + + (for D DISPLAYFONT F in TEDIT.FONTDEVICES first (SETQ DISPLAYFONT (FONTCREATE FONTCLASS NIL NIL + NIL 'DISPLAY)) + unless (EQ D 'DISPLAY) do (SETQ F (FONTCREATE FONTCLASS NIL NIL NIL D)) + (CL:UNLESS [AND (EQ (FONTPROP DISPLAYFONT 'FAMILY) + (FONTPROP F 'FAMILY)) + (EQUAL (FONTPROP DISPLAYFONT 'FACE) + (FONTPROP F 'FACE)) + (EQ (FONTPROP DISPLAYFONT 'SIZE) + (FONTPROP F 'SIZE] + (RETURN FONTCLASS)) finally (RETURN DISPLAYFONT]) ) @@ -2450,26 +2470,26 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (22619 24561 (\TEDIT.CHARLOOKS.DEFPRINT 22629 . 23765) (\TEDIT.PARALOOKS.DEFPRINT 23767 - . 24559)) (24665 25761 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24675 . 25383) (\TEDIT.CREATE.FACE.MENU 25385 - . 25557) (\TEDIT.CREATE.SIZE.MENU 25559 . 25759)) (26662 26851 (\TEDIT.CHARLOOK.FEATUREP 26672 . -26849)) (27153 50425 (\TEDIT.CHARLOOKS.FROM.FONT 27163 . 29376) (\TEDIT.EQCLOOKS 29378 . 32000) ( -\TEDIT.SAMECLOOKS 32002 . 34672) (TEDIT.CARETLOOKS 34674 . 36220) (TEDIT.COPY.LOOKS 36222 . 39505) ( -\TEDIT.UNPARSE.CHARLOOKS.LIST 39507 . 42474) (\TEDIT.MODIFYLOOKS 42476 . 44470) (TEDIT.NEW.FONT 44472 - . 44919) (\TEDIT.CARETLOOKS.VERIFY 44921 . 45758) (\TEDIT.CARETPIECE 45760 . 46065) ( -\TEDIT.GET.INSERT.CHARLOOKS 46067 . 48803) (\TEDIT.GET.TERMSA.WIDTHS 48805 . 49221) ( -\TEDIT.PARSE.CHARLOOKS.LIST 49223 . 50423)) (50426 66944 (\TEDIT.TRANSLATE.ASCIICHARS 50436 . 60922) ( -\TEDIT.CONVERT.TO.FORMATTED 60924 . 66942)) (67956 75067 (\TEDIT.UNIQUIFY.CHARLOOKS 67966 . 69626) ( -\TEDIT.UNIQUIFY.PARALOOKS 69628 . 70895) (\TEDIT.UNIQUIFY.ALL 70897 . 72872) ( -\TEDIT.FLUSH.UNUSED.LOOKS 72874 . 75065)) (75100 86196 (TEDIT.LOOKS 75110 . 77499) (TEDIT.GET.LOOKS -77501 . 79530) (TEDIT.SUBLOOKS 79532 . 83560) (TEDIT.FINDLOOKS 83562 . 86194)) (86271 114397 ( -\TEDIT.CHANGE.CHARLOOKS 86281 . 95517) (\TEDIT.CHANGE.CHARLOOKS.NEW 95519 . 99144) ( -\TEDIT.CHARLOOKS.CHANGE.FONT 99146 . 106890) (\TEDIT.FONT.NEXTSIZE 106892 . 108408) (\TEDIT.LOOKS -108410 . 111739) (\TEDIT.FONTCOPY 111741 . 113242) (\TEDIT.COERCE.FONTCLASS 113244 . 114395)) (114440 -145714 (\TEDIT.EQFMTSPEC 114450 . 117665) (TEDIT.GET.PARALOOKS 117667 . 121714) ( -\TEDIT.PARSE.PARALOOKS.LIST 121716 . 129058) (TEDIT.PARALOOKS 129060 . 130100) ( -\TEDIT.CHANGE.PARALOOKS 130102 . 137387) (\TEDIT.CHANGE.PARALOOKS.NEW 137389 . 141372) ( -TEDIT.COPY.PARALOOKS 141374 . 144048) (\TEDIT.PARABOUNDS 144050 . 145712)) (145774 153172 ( -TEDIT.SUBPARALOOKS 145784 . 149568) (SAMEPARALOOKS 149570 . 153170)) (153173 153860 ( -\TEDIT.MARK.REVISION 153183 . 153858))))) + (FILEMAP (NIL (22712 24654 (\TEDIT.CHARLOOKS.DEFPRINT 22722 . 23858) (\TEDIT.PARALOOKS.DEFPRINT 23860 + . 24652)) (24758 25854 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24768 . 25476) (\TEDIT.CREATE.FACE.MENU 25478 + . 25650) (\TEDIT.CREATE.SIZE.MENU 25652 . 25852)) (26755 26944 (\TEDIT.CHARLOOK.FEATUREP 26765 . +26942)) (27246 50518 (\TEDIT.CHARLOOKS.FROM.FONT 27256 . 29469) (\TEDIT.EQCLOOKS 29471 . 32093) ( +\TEDIT.SAMECLOOKS 32095 . 34765) (TEDIT.CARETLOOKS 34767 . 36313) (TEDIT.COPY.LOOKS 36315 . 39598) ( +\TEDIT.UNPARSE.CHARLOOKS.LIST 39600 . 42567) (\TEDIT.MODIFYLOOKS 42569 . 44563) (TEDIT.NEW.FONT 44565 + . 45012) (\TEDIT.CARETLOOKS.VERIFY 45014 . 45851) (\TEDIT.CARETPIECE 45853 . 46158) ( +\TEDIT.GET.INSERT.CHARLOOKS 46160 . 48896) (\TEDIT.GET.TERMSA.WIDTHS 48898 . 49314) ( +\TEDIT.PARSE.CHARLOOKS.LIST 49316 . 50516)) (50519 67037 (\TEDIT.TRANSLATE.ASCIICHARS 50529 . 61015) ( +\TEDIT.CONVERT.TO.FORMATTED 61017 . 67035)) (68049 75160 (\TEDIT.UNIQUIFY.CHARLOOKS 68059 . 69719) ( +\TEDIT.UNIQUIFY.PARALOOKS 69721 . 70988) (\TEDIT.UNIQUIFY.ALL 70990 . 72965) ( +\TEDIT.FLUSH.UNUSED.LOOKS 72967 . 75158)) (75193 86289 (TEDIT.LOOKS 75203 . 77592) (TEDIT.GET.LOOKS +77594 . 79623) (TEDIT.SUBLOOKS 79625 . 83653) (TEDIT.FINDLOOKS 83655 . 86287)) (86364 115741 ( +\TEDIT.CHANGE.CHARLOOKS 86374 . 95610) (\TEDIT.CHANGE.CHARLOOKS.NEW 95612 . 99237) ( +\TEDIT.CHARLOOKS.CHANGE.FONT 99239 . 107110) (\TEDIT.FONT.NEXTSIZE 107112 . 108628) (\TEDIT.LOOKS +108630 . 111959) (\TEDIT.FONTCOPY 111961 . 113462) (\TEDIT.COERCE.FONTCLASS 113464 . 114615) ( +\TEDIT.FONTCLASS.TO.FONT 114617 . 115739)) (115784 147058 (\TEDIT.EQFMTSPEC 115794 . 119009) ( +TEDIT.GET.PARALOOKS 119011 . 123058) (\TEDIT.PARSE.PARALOOKS.LIST 123060 . 130402) (TEDIT.PARALOOKS +130404 . 131444) (\TEDIT.CHANGE.PARALOOKS 131446 . 138731) (\TEDIT.CHANGE.PARALOOKS.NEW 138733 . +142716) (TEDIT.COPY.PARALOOKS 142718 . 145392) (\TEDIT.PARABOUNDS 145394 . 147056)) (147118 154516 ( +TEDIT.SUBPARALOOKS 147128 . 150912) (SAMEPARALOOKS 150914 . 154514)) (154517 155204 ( +\TEDIT.MARK.REVISION 154527 . 155202))))) STOP diff --git a/library/tedit/TEDIT-LOOKS.LCOM b/library/tedit/TEDIT-LOOKS.LCOM index 574615639e47c2d380d6ea5c9609270bc79e1d67..4f8c503ff49575cb958648c9929b6e9bafd93f93 100644 GIT binary patch delta 873 zcmZuv&ui0g6z@0Pw1inFGh(-@&(m6@CCN8wk{)DPleTHoC8VLYLqVb7kAb2G!GjDu zEEf-!FL+c0JqU_pMG!ZKcmD_RxMLAL>o*B@l{JTNKJR^AK6&5Id%-*A`v>M(cR?() zZagT6yeNYxlx3mJ%YzLKDT6oa;P=A0tG;PiezEGT`4wAlw~M|L1#tT=u;d~#rU?+2 z$)^+$WEpEJd5es>$?wSzbe=$qOXVTg(Y-d1B}PH);PLYC5p&6$J(fm^B-yU1WWRQt z9Mt}xU2;&*viB17VZ(#4*6Xwck*MSLK<0U}XJt4ACff}esU(pvsU;*){wybHM+&e; z_EL*ktm31TT!NO_S|!&T4+Rwrvtw0Ekd)FGV&xyiiWs$HnC*&ZxxV8KPc}JpS{5Lu z+cr4WDy&&{9xzr&X7$3*wC~Irldi9SP zcjQeJ{zHQITs4#h*o9yI+ zKB6oNnRyD6c^O?WwU}5=tk&c(Q!q3&F)%fmJeAR9@(p`|$q)QQIW-kD!W@Hw6}ToV zFqu!RRo`6Cr0vScw0X6=6C>mH$?rU5*wPt*;KO7Q&n0{Y3U2;>AOxOE8<58UWQuikV_4F}5%VD-kv}w?vnmT!P*=+n)!IVWna z?qsD7M^1?Q++9N^H?|2+zELSUc}j=Itedit>TEDIT-MENU.;461 161733 +(FILECREATED "22-Mar-2025 23:28:01" {WMEDLEY}tedit>TEDIT-MENU.;463 161836 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.EXPANDEDMENU.ACTIONFN) + :CHANGES-TO (FNS \TEDIT.CHARMENU.FILLIN) - :PREVIOUS-DATE "16-Mar-2025 21:45:05" {WMEDLEY}tedit>TEDIT-MENU.;460) + :PREVIOUS-DATE "19-Mar-2025 10:01:40" {WMEDLEY}tedit>TEDIT-MENU.;461) (PRETTYCOMPRINT TEDIT-MENUCOMS) @@ -1908,7 +1908,8 @@ NEWLOOKS]) (\TEDIT.CHARMENU.FILLIN - [LAMBDA (STARTINGPC CHARLOOKS MENUSTREAM) (* ; "Edited 1-Jan-2025 15:24 by rmk") + [LAMBDA (STARTINGPC CHARLOOKS MENUSTREAM) (* ; "Edited 22-Mar-2025 23:27 by rmk") + (* ; "Edited 1-Jan-2025 15:24 by rmk") (* ; "Edited 28-Dec-2024 12:48 by rmk") (* ; "Edited 20-Dec-2024 12:18 by rmk") (* ; "Edited 21-Oct-2024 00:33 by rmk") @@ -1929,9 +1930,9 @@ first (SETQ FONT (FGETCLOOKS CHARLOOKS CLFONT)) (SETQ DEVICE (MB.GET 'DEVICE MENUSTREAM 'STATE)) (CL:WHEN (type? FONTCLASS FONT) - (CL:WHEN (MEMB DEVICE '(OFF ALL)) + (CL:WHEN (MEMB DEVICE '(OFF ALL NIL)) (TEDIT.PROMPTPRINT MENUSTREAM - "Please specify a particular display/hardcopy format" T) + "Please select a particular display/print device" T) (RETURN)) (SETQ FONT (FONTCREATE FONT NIL NIL NIL DEVICE))) when [AND (SETQ OBJ (POBJ PC)) @@ -2631,29 +2632,29 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (5123 51494 (DRAWMARGINSCALE 5133 . 8592) (MARGINBAR 8594 . 15719) (MARGINBAR.CREATE -15721 . 19140) (MB.MARGINBAR.BUTTONEVENTINFN 19142 . 26781) (MB.MARGINBAR.SELFN.TABS 26783 . 32023) ( -MB.MARGINBAR.SELFN.TABS.KIND 32025 . 32960) (MARGINBAR.GETSTATEFN 32962 . 36840) (MARGINBAR.SETSTATEFN - 36842 . 37052) (MARGINBAR.NEUTRALIZE 37054 . 37467) (MARGINBAR.LOOKS 37469 . 40575) ( -MB.MARGINBAR.SIZEFN 40577 . 41180) (MB.MARGINBAR.DISPLAYFN 41182 . 44243) (MDESCALE 44245 . 44785) ( -MSCALE 44787 . 45117) (MB.MARGINBAR.SHOWTAB 45119 . 47442) (MB.MARGINBAR.TABTRACK 47444 . 48829) ( -MARGINBAR.INIT 48831 . 50224) (\TEDIT.PARALOOKS.TO.MARBAR 50226 . 51492)) (52319 59225 ( -TEDIT.MENUSTREAM 52329 . 53329) (TEDITMENUP 53331 . 54300) (\TEDIT.MENU.START 54302 . 58649) ( -\TEDIT.MENU.BUTTONEVENTFN 58651 . 59223)) (59544 67466 (\TEDIT.MENU.CREATE 59554 . 61365) ( -\TEDIT.MENU.PARSE 61367 . 65056) (\TEDIT.MENU.NEUTRALIZE 65058 . 67129) (\TEDITMENU.RECORD.UNFORMATTED - 67131 . 67464)) (67532 87524 (\TEDIT.EXPANDEDMENU.CREATE 67542 . 72944) (\TEDIT.EXPANDEDMENU.START -72946 . 74376) (\TEDIT.EXPANDEDMENU.FN 74378 . 77633) (\TEDIT.EXPANDEDMENU.ACTIONFN 77635 . 87522)) ( -87586 103143 (\TEDIT.PARAMENU.CREATE 87596 . 93617) (\TEDIT.PARAMENU.START 93619 . 94551) ( -\TEDIT.APPLY.PARALOOKS 94553 . 95605) (\TEDIT.SHOW.PARALOOKS 95607 . 98390) (\TEDIT.PARAMENU.FILLIN -98392 . 103141)) (103348 129272 (\TEDIT.CHARMENU.CREATE 103358 . 105962) (\TEDIT.CHARMENU.START 105964 - . 107061) (\TEDIT.CHARMENU.SPEC 107063 . 111594) (\TEDIT.CHARMENU.PARSE 111596 . 114764) ( -\TEDIT.CHARMENU.FILLIN 114766 . 119111) (\TEDIT.SHOW.CHARLOOKS 119113 . 122370) ( -\TEDIT.APPLY.CHARLOOKS 122372 . 123533) (\TEDIT.OFFSETTYPE.STATEFN 123535 . 125498) ( -\TEDIT.OTHER.STATECHANGEFN 125500 . 127145) (\TEDIT.OTHER.SELECTFN 127147 . 129270)) (129334 155773 ( -\TEDIT.PAGEMENU.CREATE 129344 . 136538) (\TEDIT.SHOW.PAGELOOKS 136540 . 138335) ( -\TEDIT.PAGEMENU.FILLIN 138337 . 139887) (\TEDIT.PAGEREGION.UNPARSE 139889 . 149079) ( -\TEDIT.APPLY.PAGELOOKS 149081 . 151008) (\TEDIT.CHANGE.PAGELOOKS 151010 . 154929) ( -\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 154931 . 155771)) (155774 161577 (\TEDIT.PAGEMENU.CREATE.HEADINGS -155784 . 158596) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 158598 . 160023) ( -\TEDIT.PAGEMENU.HEADINGS.STATEFN 160025 . 161575))))) + (FILEMAP (NIL (5117 51488 (DRAWMARGINSCALE 5127 . 8586) (MARGINBAR 8588 . 15713) (MARGINBAR.CREATE +15715 . 19134) (MB.MARGINBAR.BUTTONEVENTINFN 19136 . 26775) (MB.MARGINBAR.SELFN.TABS 26777 . 32017) ( +MB.MARGINBAR.SELFN.TABS.KIND 32019 . 32954) (MARGINBAR.GETSTATEFN 32956 . 36834) (MARGINBAR.SETSTATEFN + 36836 . 37046) (MARGINBAR.NEUTRALIZE 37048 . 37461) (MARGINBAR.LOOKS 37463 . 40569) ( +MB.MARGINBAR.SIZEFN 40571 . 41174) (MB.MARGINBAR.DISPLAYFN 41176 . 44237) (MDESCALE 44239 . 44779) ( +MSCALE 44781 . 45111) (MB.MARGINBAR.SHOWTAB 45113 . 47436) (MB.MARGINBAR.TABTRACK 47438 . 48823) ( +MARGINBAR.INIT 48825 . 50218) (\TEDIT.PARALOOKS.TO.MARBAR 50220 . 51486)) (52313 59219 ( +TEDIT.MENUSTREAM 52323 . 53323) (TEDITMENUP 53325 . 54294) (\TEDIT.MENU.START 54296 . 58643) ( +\TEDIT.MENU.BUTTONEVENTFN 58645 . 59217)) (59538 67460 (\TEDIT.MENU.CREATE 59548 . 61359) ( +\TEDIT.MENU.PARSE 61361 . 65050) (\TEDIT.MENU.NEUTRALIZE 65052 . 67123) (\TEDITMENU.RECORD.UNFORMATTED + 67125 . 67458)) (67526 87518 (\TEDIT.EXPANDEDMENU.CREATE 67536 . 72938) (\TEDIT.EXPANDEDMENU.START +72940 . 74370) (\TEDIT.EXPANDEDMENU.FN 74372 . 77627) (\TEDIT.EXPANDEDMENU.ACTIONFN 77629 . 87516)) ( +87580 103137 (\TEDIT.PARAMENU.CREATE 87590 . 93611) (\TEDIT.PARAMENU.START 93613 . 94545) ( +\TEDIT.APPLY.PARALOOKS 94547 . 95599) (\TEDIT.SHOW.PARALOOKS 95601 . 98384) (\TEDIT.PARAMENU.FILLIN +98386 . 103135)) (103342 129375 (\TEDIT.CHARMENU.CREATE 103352 . 105956) (\TEDIT.CHARMENU.START 105958 + . 107055) (\TEDIT.CHARMENU.SPEC 107057 . 111588) (\TEDIT.CHARMENU.PARSE 111590 . 114758) ( +\TEDIT.CHARMENU.FILLIN 114760 . 119214) (\TEDIT.SHOW.CHARLOOKS 119216 . 122473) ( +\TEDIT.APPLY.CHARLOOKS 122475 . 123636) (\TEDIT.OFFSETTYPE.STATEFN 123638 . 125601) ( +\TEDIT.OTHER.STATECHANGEFN 125603 . 127248) (\TEDIT.OTHER.SELECTFN 127250 . 129373)) (129437 155876 ( +\TEDIT.PAGEMENU.CREATE 129447 . 136641) (\TEDIT.SHOW.PAGELOOKS 136643 . 138438) ( +\TEDIT.PAGEMENU.FILLIN 138440 . 139990) (\TEDIT.PAGEREGION.UNPARSE 139992 . 149182) ( +\TEDIT.APPLY.PAGELOOKS 149184 . 151111) (\TEDIT.CHANGE.PAGELOOKS 151113 . 155032) ( +\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 155034 . 155874)) (155877 161680 (\TEDIT.PAGEMENU.CREATE.HEADINGS +155887 . 158699) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 158701 . 160126) ( +\TEDIT.PAGEMENU.HEADINGS.STATEFN 160128 . 161678))))) STOP diff --git a/library/tedit/TEDIT-MENU.LCOM b/library/tedit/TEDIT-MENU.LCOM index c1ffdce377264b6c36d603b774e9f272b6226aa9..83ff6ca8ad9b8e84e8148aab7fd48da3ed581bf9 100644 GIT binary patch delta 303 zcmccjk?GP$rU~I9Mn<~6iAB0b21cd|M#fe~7FGs^6SFNOjWrdxl#C3JB#o?$Osq`J zC+?A*e7!^1*?D{*Dz22&|qB`pmqf%Lra7M4Gn-! zw=yx9e1}n!(Qq>xlURjyYEEi$i9(`6L1Ix!W^!pxVv#~hW^qAIVx@jTQD$C=LP}~` oW^$^Mg1L!;hQFJef+NsFex5#>np~6r*GNzP-S4$|PnD7#0Qe_V>i_@% delta 297 zcmccgk?Gz?rU~I9hL*a%iAB0b21cd|h6Yv!hE^s96SFNO4K)?GlngBpl17GB#)eh~ z#uN9*PVRK(om?Nm8J(G@pyU?nXP;M;{+eO|Hp}*`k{hs*3CY5S>x} diff --git a/library/tedit/TEDIT-STREAM b/library/tedit/TEDIT-STREAM index 5a302a2eb..fa06ee76e 100644 --- a/library/tedit/TEDIT-STREAM +++ b/library/tedit/TEDIT-STREAM @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "19-Feb-2025 13:39:40" {WMEDLEY}tedit>TEDIT-STREAM.;862 175251 +(FILECREATED "22-Mar-2025 21:37:13" {WMEDLEY}TEDIT>TEDIT-STREAM.;863 175354 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.TEXTLEFTMARGIN \TEDIT.TEXTRIGHTMARGIN) + :CHANGES-TO (FNS \TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS) - :PREVIOUS-DATE "17-Feb-2025 12:25:59" {WMEDLEY}tedit>TEDIT-STREAM.;861) + :PREVIOUS-DATE "19-Feb-2025 13:39:40" {WMEDLEY}TEDIT>TEDIT-STREAM.;862) (PRETTYCOMPRINT TEDIT-STREAMCOMS) @@ -1622,7 +1622,8 @@ WINDOW]) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS - [LAMBDA (TEXTOBJ) (* ; "Edited 8-Feb-2025 22:04 by rmk") + [LAMBDA (TEXTOBJ) (* ; "Edited 22-Mar-2025 21:37 by rmk") + (* ; "Edited 8-Feb-2025 22:04 by rmk") (* ; "Edited 29-Dec-2024 20:37 by rmk") (* ; "Edited 20-Dec-2024 11:56 by rmk") (* ; "Edited 16-Dec-2024 13:14 by rmk") @@ -1644,7 +1645,7 @@ (SETQ FONT (OR (GETTEXTPROP TEXTOBJ 'FONT) (FONTCREATE DEFAULTFONT))) - (SETQ CHARLOOKS (GETTEXTPROP TEXTOBJ 'LOOKS)) + (SETQ CHARLOOKS (GETTEXTPROP TEXTOBJ 'CHARLOOKS)) (SETQ CHARLOOKS (OR (AND CHARLOOKS (\TEDIT.PARSE.CHARLOOKS.LIST CHARLOOKS NIL TEXTOBJ)) (AND (type? CHARLOOKS FONT) FONT) @@ -2878,31 +2879,31 @@ (ADDTOVAR LAMA TEXTPROP) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (37136 67737 (\TEDIT.TEXTBIN 37146 . 47896) (\TEDIT.TEXTPEEKBIN 47898 . 53448) ( -\TEDIT.TEXTBACKFILEPTR 53450 . 59123) (\TEDIT.TEXTBOUT 59125 . 63527) (\TEDIT.INSTALL.FILEBUFFER 63529 - . 67735)) (68635 72683 (\TEDIT.TEXTOUTCHARFN 68645 . 70201) (\TEDIT.TEXTINCCODEFN 70203 . 70942) ( -\TEDIT.TEXTBACKCCODEFN 70944 . 71536) (\TEDIT.TEXTFORMATBYTESTREAM 71538 . 72241) ( -\TEDIT.TEXTFORMATBYTESTRING 72243 . 72681)) (72730 84251 (OPENTEXTSTREAM 72740 . 79692) ( -COPYTEXTSTREAM 79694 . 83474) (TEDIT.STREAMCHANGEDP 83476 . 83778) (TXTFILE 83780 . 84249)) (84252 -113999 (\TEDIT.REOPENTEXTSTREAM 84262 . 85614) (\TEDIT.OPENTEXTSTREAM.PIECES 85616 . 90046) ( -\TEDIT.OPENTEXTSTREAM.PROPS 90048 . 91150) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 91152 . 96238) ( -\TEDIT.OPENTEXTSTREAM.WINDOW 96240 . 98921) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 98923 . 101780) ( -\TEDIT.OPENTEXTFILE 101782 . 103495) (\TEDIT.CREATE.TEXTSTREAM 103497 . 104542) (\TEDIT.REOPEN.STREAM -104544 . 106880) (\TEDIT.TEXTINIT 106882 . 113997)) (114037 115225 (\TEDIT.TTYBOUT 114047 . 115223)) ( -115343 134135 (\TEDIT.TEXTCLOSEF 115353 . 116677) (\TEDIT.TEXTDSPFONT 116679 . 117649) ( -\TEDIT.TEXTEOFP 117651 . 119406) (\TEDIT.TEXTGETEOFPTR 119408 . 119731) (\TEDIT.TEXTSETEOFPTR 119733 - . 120823) (\TEDIT.TEXTGETFILEPTR 120825 . 123660) (\TEDIT.TEXTSETFILEINFO 123662 . 124170) ( -\TEDIT.TEXTOPENF 124172 . 125103) (\TEDIT.TEXTSETEOF 125105 . 125721) (\TEDIT.TEXTSETFILEPTR 125723 . -127764) (\TEDIT.TEXTDSPXPOSITION 127766 . 128783) (\TEDIT.TEXTDSPYPOSITION 128785 . 129526) ( -\TEDIT.TEXTLEFTMARGIN 129528 . 130119) (\TEDIT.TEXTRIGHTMARGIN 130121 . 133284) ( -\TEDIT.TEXTDSPCHARWIDTH 133286 . 133590) (\TEDIT.TEXTDSPSTRINGWIDTH 133592 . 133898) ( -\TEDIT.TEXTDSPLINEFEED 133900 . 134133)) (135182 155919 (\TEDIT.DELETE.SELPIECES 135192 . 138705) ( -\TEDIT.INSERTCH 138707 . 146501) (\TEDIT.INSERTCH.HISTORY 146503 . 149967) (\TEDIT.INSERTEOL 149969 . -151794) (\TEDIT.INSERTCH.INSERTION 151796 . 154633) (\TEDIT.INSERTCH.EXTEND 154635 . 155917)) (155920 -157424 (\TEDIT.NEXTCHANGEABLE.CHNO 155930 . 156645) (\TEDIT.LASTCHANGEABLE.CHNO 156647 . 157422)) ( -157425 159129 (\SETUPGETCH 157435 . 159127)) (159187 163645 (\TEDIT.INSTALL.PIECE 159197 . 163643)) ( -163683 172432 (TEXTPROP 163693 . 164040) (GETTEXTPROP 164042 . 164286) (PUTTEXTPROP 164288 . 164545) ( -GETTEXTPROPS 164547 . 164991) (PUTTEXTPROPS 164993 . 165897) (\TEDIT.TEXTPROP 165899 . 172430)) ( -172433 174503 (\TEDIT.TEXTOBJ.PROPNAMES 172443 . 173395) (\TEDIT.TEXTOBJ.PROPFETCHFN 173397 . 173913) -(\TEDIT.TEXTOBJ.PROPSTOREFN 173915 . 174501))))) + (FILEMAP (NIL (37126 67727 (\TEDIT.TEXTBIN 37136 . 47886) (\TEDIT.TEXTPEEKBIN 47888 . 53438) ( +\TEDIT.TEXTBACKFILEPTR 53440 . 59113) (\TEDIT.TEXTBOUT 59115 . 63517) (\TEDIT.INSTALL.FILEBUFFER 63519 + . 67725)) (68625 72673 (\TEDIT.TEXTOUTCHARFN 68635 . 70191) (\TEDIT.TEXTINCCODEFN 70193 . 70932) ( +\TEDIT.TEXTBACKCCODEFN 70934 . 71526) (\TEDIT.TEXTFORMATBYTESTREAM 71528 . 72231) ( +\TEDIT.TEXTFORMATBYTESTRING 72233 . 72671)) (72720 84241 (OPENTEXTSTREAM 72730 . 79682) ( +COPYTEXTSTREAM 79684 . 83464) (TEDIT.STREAMCHANGEDP 83466 . 83768) (TXTFILE 83770 . 84239)) (84242 +114102 (\TEDIT.REOPENTEXTSTREAM 84252 . 85604) (\TEDIT.OPENTEXTSTREAM.PIECES 85606 . 90036) ( +\TEDIT.OPENTEXTSTREAM.PROPS 90038 . 91140) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 91142 . 96228) ( +\TEDIT.OPENTEXTSTREAM.WINDOW 96230 . 98911) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 98913 . 101883) ( +\TEDIT.OPENTEXTFILE 101885 . 103598) (\TEDIT.CREATE.TEXTSTREAM 103600 . 104645) (\TEDIT.REOPEN.STREAM +104647 . 106983) (\TEDIT.TEXTINIT 106985 . 114100)) (114140 115328 (\TEDIT.TTYBOUT 114150 . 115326)) ( +115446 134238 (\TEDIT.TEXTCLOSEF 115456 . 116780) (\TEDIT.TEXTDSPFONT 116782 . 117752) ( +\TEDIT.TEXTEOFP 117754 . 119509) (\TEDIT.TEXTGETEOFPTR 119511 . 119834) (\TEDIT.TEXTSETEOFPTR 119836 + . 120926) (\TEDIT.TEXTGETFILEPTR 120928 . 123763) (\TEDIT.TEXTSETFILEINFO 123765 . 124273) ( +\TEDIT.TEXTOPENF 124275 . 125206) (\TEDIT.TEXTSETEOF 125208 . 125824) (\TEDIT.TEXTSETFILEPTR 125826 . +127867) (\TEDIT.TEXTDSPXPOSITION 127869 . 128886) (\TEDIT.TEXTDSPYPOSITION 128888 . 129629) ( +\TEDIT.TEXTLEFTMARGIN 129631 . 130222) (\TEDIT.TEXTRIGHTMARGIN 130224 . 133387) ( +\TEDIT.TEXTDSPCHARWIDTH 133389 . 133693) (\TEDIT.TEXTDSPSTRINGWIDTH 133695 . 134001) ( +\TEDIT.TEXTDSPLINEFEED 134003 . 134236)) (135285 156022 (\TEDIT.DELETE.SELPIECES 135295 . 138808) ( +\TEDIT.INSERTCH 138810 . 146604) (\TEDIT.INSERTCH.HISTORY 146606 . 150070) (\TEDIT.INSERTEOL 150072 . +151897) (\TEDIT.INSERTCH.INSERTION 151899 . 154736) (\TEDIT.INSERTCH.EXTEND 154738 . 156020)) (156023 +157527 (\TEDIT.NEXTCHANGEABLE.CHNO 156033 . 156748) (\TEDIT.LASTCHANGEABLE.CHNO 156750 . 157525)) ( +157528 159232 (\SETUPGETCH 157538 . 159230)) (159290 163748 (\TEDIT.INSTALL.PIECE 159300 . 163746)) ( +163786 172535 (TEXTPROP 163796 . 164143) (GETTEXTPROP 164145 . 164389) (PUTTEXTPROP 164391 . 164648) ( +GETTEXTPROPS 164650 . 165094) (PUTTEXTPROPS 165096 . 166000) (\TEDIT.TEXTPROP 166002 . 172533)) ( +172536 174606 (\TEDIT.TEXTOBJ.PROPNAMES 172546 . 173498) (\TEDIT.TEXTOBJ.PROPFETCHFN 173500 . 174016) +(\TEDIT.TEXTOBJ.PROPSTOREFN 174018 . 174604))))) STOP diff --git a/library/tedit/TEDIT-STREAM.LCOM b/library/tedit/TEDIT-STREAM.LCOM index ca8ded422091d7e1cc18839bbb2375d21859fce7..02afc7431106e044f03c2fe680b565ac8091aa7b 100644 GIT binary patch delta 327 zcmZ2EfobLhrU~I9Mn<~6iAB0b21cd|Mut|#=2nKr6SGzHLtI@vL+rq$Zg5DDtD~=; zwS}3nrUI9ekpYqxBP$~lD^v4{`(!6eit$h0r^s8MnFmzl7V6`pfUHtaPftl9C9xzm zMFGPEQ!4`_B~303H%}i|XP{j`Yk`WexJ*f*I^5UQ#m6WAm-0cK zs$ghtYHVsUxsOpD>NFlTO$DofAlEQY|IlDv7oar?N`{uYZmCHS{~H=x8CzPJ7))Xk Z702#>qs=-@H`Q63Jsg8Jvudft0RYeZQ^^1T delta 331 zcmbO^fobIgrU~I9hL*Z+sY$v<21cd|hQ?OLmR2SP6SGzHOHxxZOYA~iT|7f{gF}K` z9ewqzEzFEG6}XfPEs(SrSOIkz8BE+KJK3y4tv)jksK71M$43EKm7boSl0r%%&`bqv zx=oZcxis87eO#S^_5iH}D#GF_C57s6Uso3&*T`C%oXn)6#G*<&bXW30ovC1GZfay| zIJt#U9q268AWa3UfFRc}Pyf(hT^FDgKpV`FJYi&IWNKwtedit>TEDIT-WINDOW.;782 236106 +(FILECREATED "21-Mar-2025 23:43:50" {WMEDLEY}tedit>TEDIT-WINDOW.;783 236238 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.WINDOW.CREATE \TEDIT.WINDOW.GETREGION) + :CHANGES-TO (FNS \TEDIT.UPDATE.TITLE) - :PREVIOUS-DATE "17-Mar-2025 17:50:21" {WMEDLEY}tedit>TEDIT-WINDOW.;781) + :PREVIOUS-DATE "18-Mar-2025 21:56:50" {WMEDLEY}tedit>TEDIT-WINDOW.;782) (PRETTYCOMPRINT TEDIT-WINDOWCOMS) @@ -2240,7 +2240,8 @@ (PACKFILENAME 'EXTENSION EXT 'VERSION NIL 'BODY TXTFILE))]) (\TEDIT.UPDATE.TITLE - [LAMBDA (TEXTOBJ FILENAME) (* ; "Edited 15-Mar-2025 00:32 by rmk") + [LAMBDA (TEXTOBJ FILENAME) (* ; "Edited 21-Mar-2025 23:41 by rmk") + (* ; "Edited 15-Mar-2025 00:32 by rmk") (* ; "Edited 8-Mar-2025 12:00 by rmk") (* ; "Edited 13-Dec-2024 08:59 by rmk") (* ; "Edited 22-Oct-2024 11:44 by rmk") @@ -2271,7 +2272,8 @@ (SETQ SETSTATEFN (IMAGEOBJPROP (CAR FIELD) 'SETSTATEFN] (APPLY* SETSTATEFN (CADR FIELD) - FILENAME MENUSTREAM)))]) + FILENAME MENUSTREAM)) + (\TEDIT.FILL.PANES MENUSTREAM))]) ) @@ -3710,38 +3712,38 @@ (RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _ TEDIT.ICON.TITLE.REGION)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (18658 19554 (TEDIT.DEFER.UPDATES 18668 . 19552)) (19555 45017 (\TEDIT.WINDOW.CREATE -19565 . 26177) (\TEDIT.WINDOW.GETREGION 26179 . 28700) (\TEDIT.WINDOW.SETUP 28702 . 32815) ( -\TEDIT.MINIMAL.WINDOW.SETUP 32817 . 41019) (\TEDIT.CLEARPANE 41021 . 41738) (\TEDIT.FILL.PANES 41740 - . 45015)) (45018 67925 (\TEDIT.CURSORMOVEDFN 45028 . 49901) (\TEDIT.CURSOROUTFN 49903 . 50348) ( -\TEDIT.ACTIVE.WINDOWP 50350 . 51401) (\TEDIT.EXPANDFN 51403 . 51966) (\TEDIT.MAINW 51968 . 53248) ( -\TEDIT.MAINSTREAM 53250 . 53517) (\TEDIT.PRIMARYPANE 53519 . 54289) (\TEDIT.PANELIST 54291 . 54787) ( -\TEDIT.NEWREGIONFN 54789 . 57305) (\TEDIT.SET.WINDOW.EXTENT 57307 . 62561) (\TEDIT.SHRINK.ICONCREATE -62563 . 65296) (\TEDIT.SHRINKFN 65298 . 65707) (\TEDIT.PANEREGION 65709 . 67923)) (67957 99421 ( -\TEDIT.BUTTONEVENTFN 67967 . 80529) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80531 . 87254) ( -\TEDIT.BUTTONEVENTFN.GETOPERATION 87256 . 89098) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 89100 . 92337) ( -\TEDIT.BUTTONEVENTFN.INACTIVE 92339 . 94681) (\TEDIT.BUTTONEVENTFN.INTITLE 94683 . 96518) ( -\TEDIT.COPYINSERTFN 96520 . 97652) (\TEDIT.FOREIGN.COPY 97654 . 99419)) (99422 116531 ( -\TEDIT.PANE.SPLIT 99432 . 103911) (\TEDIT.SPLITW 103913 . 111372) (\TEDIT.UNSPLITW 111374 . 115188) ( -\TEDIT.LINKPANES 115190 . 115953) (\TEDIT.UNLINKPANE 115955 . 116529)) (117888 118779 (TEDITWINDOWP -117898 . 118777)) (118816 121919 (TEDIT.GETINPUT 118826 . 121269) (\TEDIT.MAKEFILENAME 121271 . 121917 -)) (121968 130269 (TEDIT.PROMPTWINDOW 121978 . 122292) (TEDIT.PROMPTPRINT 122294 . 124921) ( -TEDIT.PROMPTCLEAR 124923 . 126642) (TEDIT.PROMPTFLASH 126644 . 128576) (\TEDIT.PROMPT.PAGEFULLFN -128578 . 130267)) (130507 139991 (\TEDIT.FILENAME 130517 . 131289) (\TEDIT.DEFAULT.TITLE 131291 . -133670) (\TEDIT.WINDOW.TITLE 133672 . 135841) (\TEDIT.LIKELY.FILENAME 135843 . 137630) ( -\TEDIT.UPDATE.TITLE 137632 . 139989)) (140034 148562 (TEDIT.DEACTIVATE.WINDOW 140044 . 146162) ( -\TEDIT.RESHAPEFN 146164 . 148334) (\TEDIT.REPAINTFN 148336 . 148560)) (148563 190942 (\TEDIT.SCROLLFN -148573 . 150818) (\TEDIT.SCROLLCH.TOP 150820 . 152931) (\TEDIT.SCROLLCH.BOTTOM 152933 . 157263) ( -\TEDIT.SCROLLUP 157265 . 162882) (\TEDIT.TOPLINE.YTOP 162884 . 164553) (\TEDIT.SCROLLDOWN 164555 . -171485) (\TEDIT.SCROLL.CARET 171487 . 174325) (\TEDIT.VISIBLECARETP 174327 . 176621) ( -\TEDIT.VISIBLECHARP 176623 . 177714) (\TEDIT.BITMAPLINES 177716 . 181636) (\TEDIT.SETPANE.TOPLINE -181638 . 182429) (\TEDIT.SHIFTLINES 182431 . 190940)) (190943 201812 (\TEDIT.ONSCREEN? 190953 . 195504 -) (\TEDIT.ONSCREEN.REGION 195506 . 199157) (\TEDIT.AFTERMOVEFN 199159 . 200056) (OFFSCREENP 200058 . -201810)) (201854 204471 (\TEDIT.PROCIDLEFN 201864 . 203401) (\TEDIT.PROCENTRYFN 203403 . 203848) ( -\TEDIT.PROCEXITFN 203850 . 204469)) (204550 217704 (\TEDIT.DOWNCARET 204560 . 205353) ( -\TEDIT.FLASHCARET 205355 . 207466) (\TEDIT.UPCARET 207468 . 208572) (TEDIT.NORMALIZECARET 208574 . -211792) (\TEDIT.SETCARET 211794 . 217074) (\TEDIT.CARET 217076 . 217702)) (217738 230065 ( -TEDIT.ADD.MENUITEM 217748 . 220039) (TEDIT.DEFAULT.MENUFN 220041 . 227277) (TEDIT.REMOVE.MENUITEM -227279 . 228276) (\TEDIT.CREATEMENU 228278 . 228843) (\TEDIT.MENU.WHENHELDFN 228845 . 229750) ( -\TEDIT.MENU.WHENSELECTEDFN 229752 . 230063))))) + (FILEMAP (NIL (18633 19529 (TEDIT.DEFER.UPDATES 18643 . 19527)) (19530 44992 (\TEDIT.WINDOW.CREATE +19540 . 26152) (\TEDIT.WINDOW.GETREGION 26154 . 28675) (\TEDIT.WINDOW.SETUP 28677 . 32790) ( +\TEDIT.MINIMAL.WINDOW.SETUP 32792 . 40994) (\TEDIT.CLEARPANE 40996 . 41713) (\TEDIT.FILL.PANES 41715 + . 44990)) (44993 67900 (\TEDIT.CURSORMOVEDFN 45003 . 49876) (\TEDIT.CURSOROUTFN 49878 . 50323) ( +\TEDIT.ACTIVE.WINDOWP 50325 . 51376) (\TEDIT.EXPANDFN 51378 . 51941) (\TEDIT.MAINW 51943 . 53223) ( +\TEDIT.MAINSTREAM 53225 . 53492) (\TEDIT.PRIMARYPANE 53494 . 54264) (\TEDIT.PANELIST 54266 . 54762) ( +\TEDIT.NEWREGIONFN 54764 . 57280) (\TEDIT.SET.WINDOW.EXTENT 57282 . 62536) (\TEDIT.SHRINK.ICONCREATE +62538 . 65271) (\TEDIT.SHRINKFN 65273 . 65682) (\TEDIT.PANEREGION 65684 . 67898)) (67932 99396 ( +\TEDIT.BUTTONEVENTFN 67942 . 80504) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80506 . 87229) ( +\TEDIT.BUTTONEVENTFN.GETOPERATION 87231 . 89073) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 89075 . 92312) ( +\TEDIT.BUTTONEVENTFN.INACTIVE 92314 . 94656) (\TEDIT.BUTTONEVENTFN.INTITLE 94658 . 96493) ( +\TEDIT.COPYINSERTFN 96495 . 97627) (\TEDIT.FOREIGN.COPY 97629 . 99394)) (99397 116506 ( +\TEDIT.PANE.SPLIT 99407 . 103886) (\TEDIT.SPLITW 103888 . 111347) (\TEDIT.UNSPLITW 111349 . 115163) ( +\TEDIT.LINKPANES 115165 . 115928) (\TEDIT.UNLINKPANE 115930 . 116504)) (117863 118754 (TEDITWINDOWP +117873 . 118752)) (118791 121894 (TEDIT.GETINPUT 118801 . 121244) (\TEDIT.MAKEFILENAME 121246 . 121892 +)) (121943 130244 (TEDIT.PROMPTWINDOW 121953 . 122267) (TEDIT.PROMPTPRINT 122269 . 124896) ( +TEDIT.PROMPTCLEAR 124898 . 126617) (TEDIT.PROMPTFLASH 126619 . 128551) (\TEDIT.PROMPT.PAGEFULLFN +128553 . 130242)) (130482 140123 (\TEDIT.FILENAME 130492 . 131264) (\TEDIT.DEFAULT.TITLE 131266 . +133645) (\TEDIT.WINDOW.TITLE 133647 . 135816) (\TEDIT.LIKELY.FILENAME 135818 . 137605) ( +\TEDIT.UPDATE.TITLE 137607 . 140121)) (140166 148694 (TEDIT.DEACTIVATE.WINDOW 140176 . 146294) ( +\TEDIT.RESHAPEFN 146296 . 148466) (\TEDIT.REPAINTFN 148468 . 148692)) (148695 191074 (\TEDIT.SCROLLFN +148705 . 150950) (\TEDIT.SCROLLCH.TOP 150952 . 153063) (\TEDIT.SCROLLCH.BOTTOM 153065 . 157395) ( +\TEDIT.SCROLLUP 157397 . 163014) (\TEDIT.TOPLINE.YTOP 163016 . 164685) (\TEDIT.SCROLLDOWN 164687 . +171617) (\TEDIT.SCROLL.CARET 171619 . 174457) (\TEDIT.VISIBLECARETP 174459 . 176753) ( +\TEDIT.VISIBLECHARP 176755 . 177846) (\TEDIT.BITMAPLINES 177848 . 181768) (\TEDIT.SETPANE.TOPLINE +181770 . 182561) (\TEDIT.SHIFTLINES 182563 . 191072)) (191075 201944 (\TEDIT.ONSCREEN? 191085 . 195636 +) (\TEDIT.ONSCREEN.REGION 195638 . 199289) (\TEDIT.AFTERMOVEFN 199291 . 200188) (OFFSCREENP 200190 . +201942)) (201986 204603 (\TEDIT.PROCIDLEFN 201996 . 203533) (\TEDIT.PROCENTRYFN 203535 . 203980) ( +\TEDIT.PROCEXITFN 203982 . 204601)) (204682 217836 (\TEDIT.DOWNCARET 204692 . 205485) ( +\TEDIT.FLASHCARET 205487 . 207598) (\TEDIT.UPCARET 207600 . 208704) (TEDIT.NORMALIZECARET 208706 . +211924) (\TEDIT.SETCARET 211926 . 217206) (\TEDIT.CARET 217208 . 217834)) (217870 230197 ( +TEDIT.ADD.MENUITEM 217880 . 220171) (TEDIT.DEFAULT.MENUFN 220173 . 227409) (TEDIT.REMOVE.MENUITEM +227411 . 228408) (\TEDIT.CREATEMENU 228410 . 228975) (\TEDIT.MENU.WHENHELDFN 228977 . 229882) ( +\TEDIT.MENU.WHENSELECTEDFN 229884 . 230195))))) STOP diff --git a/library/tedit/TEDIT-WINDOW.LCOM b/library/tedit/TEDIT-WINDOW.LCOM index c0580944dfbe2325a6d087d54b0c6c684e82ed65..60a64bd8c9077ce2abca58c00214c0b0ce7f889c 100644 GIT binary patch delta 386 zcmX@x#B#2QWkR^1k)f_{Vv(+qfsv_#k+GGD@x%;UNn=d~E+r!aBpD+sBNHoA^NIUp zCu`L3#%AUzD7l6D_$VMN($mvZQb);%+o(KSl0!peX=2=#N@Y(nv6!9 z#hI$B7#B>QT%*R}?vY~b@L`L?E9@Bl^X1hUj_1`R_KBLz=iM|W3$C$E4Y{{RI;LsK*X17n34pr<@T^nhOU l(F<_&V{#3i99UZ{Xl$+!>>3gr0(7*SA5f>k=Bu?8%>dVZV_EV?!$g)ZCwE^_Rnt_k3J7uy^Yjl5)^!2u1Zp%#xZ2R%%GAKh$Z+yGMr}sJ z&A%9{s~BfYE~`=Fi1J7=cKEO*c=D1O-Fh{jbOs<$k51Vn#Rz6{f%s8dc)Xby9X)fH zz4-YAkR>) Date: Sun, 23 Mar 2025 11:41:52 -0700 Subject: [PATCH 16/26] glitch --- library/tedit/TEDIT-LOOKS | 55 +++++++++++++++++---------------- library/tedit/TEDIT-LOOKS.LCOM | Bin 38878 -> 38827 bytes 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/library/tedit/TEDIT-LOOKS b/library/tedit/TEDIT-LOOKS index 947026121..bb6726176 100644 --- a/library/tedit/TEDIT-LOOKS +++ b/library/tedit/TEDIT-LOOKS @@ -1,11 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "22-Mar-2025 21:51:05" {WMEDLEY}tedit>TEDIT-LOOKS.;397 155398 +(FILECREATED "23-Mar-2025 11:36:24" {WMEDLEY}tedit>TEDIT-LOOKS.;398 155504 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.CHARLOOKS.CHANGE.FONT \TEDIT.FONTCLASS.TO.FONT \TEDIT.CHANGE.CHARLOOKS - \TEDIT.FONT.NEXTSIZE) + :CHANGES-TO (FNS \TEDIT.FONT.NEXTSIZE \TEDIT.CHARLOOKS.CHANGE.FONT \TEDIT.FONTCLASS.TO.FONT + \TEDIT.CHANGE.CHARLOOKS) (VARS TEDIT-LOOKSCOMS) :PREVIOUS-DATE "19-Mar-2025 13:20:52" {WMEDLEY}tedit>TEDIT-LOOKS.;395) @@ -1725,13 +1725,14 @@ TEMP)]) (\TEDIT.FONT.NEXTSIZE - [LAMBDA (FONT INCREMENT) (* ; "Edited 21-Mar-2025 23:09 by rmk") + [LAMBDA (FONT INCREMENT) (* ; "Edited 23-Mar-2025 11:36 by rmk") + (* ; "Edited 21-Mar-2025 23:18 by rmk") (* ;; "Returns the size of a FONT that is INCREMENT larger or smaller than FONT. If INCREMENT is a positive integer, then that is added to FONT's size, if negative subtracted. If +, the next larger available font, - the next smaller. NIL if an appropriate font doesn't exist.") (if (FIXP INCREMENT) then (IPLUS (FONTPROP FONT 'SIZE) - SIZEINCREMENT) + INCREMENT) else (LET [(FONTS (SORT (FONTSAVAILABLE FONT '* (FONTPROP FONT 'FACE) (FONTPROP FONT 'ROTATION) (FONTPROP FONT 'DEVICE) @@ -2470,26 +2471,26 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (22712 24654 (\TEDIT.CHARLOOKS.DEFPRINT 22722 . 23858) (\TEDIT.PARALOOKS.DEFPRINT 23860 - . 24652)) (24758 25854 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24768 . 25476) (\TEDIT.CREATE.FACE.MENU 25478 - . 25650) (\TEDIT.CREATE.SIZE.MENU 25652 . 25852)) (26755 26944 (\TEDIT.CHARLOOK.FEATUREP 26765 . -26942)) (27246 50518 (\TEDIT.CHARLOOKS.FROM.FONT 27256 . 29469) (\TEDIT.EQCLOOKS 29471 . 32093) ( -\TEDIT.SAMECLOOKS 32095 . 34765) (TEDIT.CARETLOOKS 34767 . 36313) (TEDIT.COPY.LOOKS 36315 . 39598) ( -\TEDIT.UNPARSE.CHARLOOKS.LIST 39600 . 42567) (\TEDIT.MODIFYLOOKS 42569 . 44563) (TEDIT.NEW.FONT 44565 - . 45012) (\TEDIT.CARETLOOKS.VERIFY 45014 . 45851) (\TEDIT.CARETPIECE 45853 . 46158) ( -\TEDIT.GET.INSERT.CHARLOOKS 46160 . 48896) (\TEDIT.GET.TERMSA.WIDTHS 48898 . 49314) ( -\TEDIT.PARSE.CHARLOOKS.LIST 49316 . 50516)) (50519 67037 (\TEDIT.TRANSLATE.ASCIICHARS 50529 . 61015) ( -\TEDIT.CONVERT.TO.FORMATTED 61017 . 67035)) (68049 75160 (\TEDIT.UNIQUIFY.CHARLOOKS 68059 . 69719) ( -\TEDIT.UNIQUIFY.PARALOOKS 69721 . 70988) (\TEDIT.UNIQUIFY.ALL 70990 . 72965) ( -\TEDIT.FLUSH.UNUSED.LOOKS 72967 . 75158)) (75193 86289 (TEDIT.LOOKS 75203 . 77592) (TEDIT.GET.LOOKS -77594 . 79623) (TEDIT.SUBLOOKS 79625 . 83653) (TEDIT.FINDLOOKS 83655 . 86287)) (86364 115741 ( -\TEDIT.CHANGE.CHARLOOKS 86374 . 95610) (\TEDIT.CHANGE.CHARLOOKS.NEW 95612 . 99237) ( -\TEDIT.CHARLOOKS.CHANGE.FONT 99239 . 107110) (\TEDIT.FONT.NEXTSIZE 107112 . 108628) (\TEDIT.LOOKS -108630 . 111959) (\TEDIT.FONTCOPY 111961 . 113462) (\TEDIT.COERCE.FONTCLASS 113464 . 114615) ( -\TEDIT.FONTCLASS.TO.FONT 114617 . 115739)) (115784 147058 (\TEDIT.EQFMTSPEC 115794 . 119009) ( -TEDIT.GET.PARALOOKS 119011 . 123058) (\TEDIT.PARSE.PARALOOKS.LIST 123060 . 130402) (TEDIT.PARALOOKS -130404 . 131444) (\TEDIT.CHANGE.PARALOOKS 131446 . 138731) (\TEDIT.CHANGE.PARALOOKS.NEW 138733 . -142716) (TEDIT.COPY.PARALOOKS 142718 . 145392) (\TEDIT.PARABOUNDS 145394 . 147056)) (147118 154516 ( -TEDIT.SUBPARALOOKS 147128 . 150912) (SAMEPARALOOKS 150914 . 154514)) (154517 155204 ( -\TEDIT.MARK.REVISION 154527 . 155202))))) + (FILEMAP (NIL (22713 24655 (\TEDIT.CHARLOOKS.DEFPRINT 22723 . 23859) (\TEDIT.PARALOOKS.DEFPRINT 23861 + . 24653)) (24759 25855 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24769 . 25477) (\TEDIT.CREATE.FACE.MENU 25479 + . 25651) (\TEDIT.CREATE.SIZE.MENU 25653 . 25853)) (26756 26945 (\TEDIT.CHARLOOK.FEATUREP 26766 . +26943)) (27247 50519 (\TEDIT.CHARLOOKS.FROM.FONT 27257 . 29470) (\TEDIT.EQCLOOKS 29472 . 32094) ( +\TEDIT.SAMECLOOKS 32096 . 34766) (TEDIT.CARETLOOKS 34768 . 36314) (TEDIT.COPY.LOOKS 36316 . 39599) ( +\TEDIT.UNPARSE.CHARLOOKS.LIST 39601 . 42568) (\TEDIT.MODIFYLOOKS 42570 . 44564) (TEDIT.NEW.FONT 44566 + . 45013) (\TEDIT.CARETLOOKS.VERIFY 45015 . 45852) (\TEDIT.CARETPIECE 45854 . 46159) ( +\TEDIT.GET.INSERT.CHARLOOKS 46161 . 48897) (\TEDIT.GET.TERMSA.WIDTHS 48899 . 49315) ( +\TEDIT.PARSE.CHARLOOKS.LIST 49317 . 50517)) (50520 67038 (\TEDIT.TRANSLATE.ASCIICHARS 50530 . 61016) ( +\TEDIT.CONVERT.TO.FORMATTED 61018 . 67036)) (68050 75161 (\TEDIT.UNIQUIFY.CHARLOOKS 68060 . 69720) ( +\TEDIT.UNIQUIFY.PARALOOKS 69722 . 70989) (\TEDIT.UNIQUIFY.ALL 70991 . 72966) ( +\TEDIT.FLUSH.UNUSED.LOOKS 72968 . 75159)) (75194 86290 (TEDIT.LOOKS 75204 . 77593) (TEDIT.GET.LOOKS +77595 . 79624) (TEDIT.SUBLOOKS 79626 . 83654) (TEDIT.FINDLOOKS 83656 . 86288)) (86365 115847 ( +\TEDIT.CHANGE.CHARLOOKS 86375 . 95611) (\TEDIT.CHANGE.CHARLOOKS.NEW 95613 . 99238) ( +\TEDIT.CHARLOOKS.CHANGE.FONT 99240 . 107111) (\TEDIT.FONT.NEXTSIZE 107113 . 108734) (\TEDIT.LOOKS +108736 . 112065) (\TEDIT.FONTCOPY 112067 . 113568) (\TEDIT.COERCE.FONTCLASS 113570 . 114721) ( +\TEDIT.FONTCLASS.TO.FONT 114723 . 115845)) (115890 147164 (\TEDIT.EQFMTSPEC 115900 . 119115) ( +TEDIT.GET.PARALOOKS 119117 . 123164) (\TEDIT.PARSE.PARALOOKS.LIST 123166 . 130508) (TEDIT.PARALOOKS +130510 . 131550) (\TEDIT.CHANGE.PARALOOKS 131552 . 138837) (\TEDIT.CHANGE.PARALOOKS.NEW 138839 . +142822) (TEDIT.COPY.PARALOOKS 142824 . 145498) (\TEDIT.PARABOUNDS 145500 . 147162)) (147224 154622 ( +TEDIT.SUBPARALOOKS 147234 . 151018) (SAMEPARALOOKS 151020 . 154620)) (154623 155310 ( +\TEDIT.MARK.REVISION 154633 . 155308))))) STOP diff --git a/library/tedit/TEDIT-LOOKS.LCOM b/library/tedit/TEDIT-LOOKS.LCOM index 4f8c503ff49575cb958648c9929b6e9bafd93f93..9f93d3861101f205d36049128632f418e458616e 100644 GIT binary patch delta 145 zcmcb&o@w=ZrU?$%BwXwEEEh)O-&67XWupCDH%@ delta 187 zcmZ3zp6T9trU?Q3h;IJQSmLdv;HF@r5bPP{>gnek*?A Hz8YQt;j=S5 From 272bfdd2b890a1b9a56cd4ba29e0f803943f1d26 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sun, 23 Mar 2025 15:28:19 -0700 Subject: [PATCH 17/26] + or - as Size in the charlooks menu --- library/tedit/TEDIT-BUTTONS | 50 +++++++++++++------------ library/tedit/TEDIT-BUTTONS.LCOM | Bin 35095 -> 35165 bytes library/tedit/TEDIT-COMMAND | 18 ++++----- library/tedit/TEDIT-COMMAND.LCOM | Bin 5643 -> 5644 bytes library/tedit/TEDIT-FNKEYS | 55 +++++++++++++-------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 37406 -> 37413 bytes library/tedit/TEDIT-LOOKS | 35 ++++++++++------- library/tedit/TEDIT-LOOKS.LCOM | Bin 38827 -> 39012 bytes library/tedit/TEDIT-MENU | 62 ++++++++++++++++--------------- library/tedit/TEDIT-MENU.LCOM | Bin 47314 -> 47358 bytes 10 files changed, 117 insertions(+), 103 deletions(-) diff --git a/library/tedit/TEDIT-BUTTONS b/library/tedit/TEDIT-BUTTONS index e0d1dc9a3..70ec2bd6b 100644 --- a/library/tedit/TEDIT-BUTTONS +++ b/library/tedit/TEDIT-BUTTONS @@ -1,10 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "22-Mar-2025 14:01:28" {WMEDLEY}TEDIT>TEDIT-BUTTONS.;220 124351 +(FILECREATED "23-Mar-2025 15:02:32" {WMEDLEY}tedit>TEDIT-BUTTONS.;222 124551 :EDIT-BY rmk - :CHANGES-TO (FNS MB.BUTTONEVENTINFN) + :CHANGES-TO (FNS MB.FIELD.INSURETYPE MB.BUTTONEVENTINFN) :PREVIOUS-DATE "14-Mar-2025 15:29:51" {WMEDLEY}TEDIT>TEDIT-BUTTONS.;219) @@ -1885,7 +1885,8 @@ XKERN _ 0]) (MB.FIELD.INSURETYPE - [LAMBDA (FIELDTYPE STR TSTREAM) (* ; "Edited 4-Dec-2024 20:09 by rmk") + [LAMBDA (FIELDTYPE STR TSTREAM) (* ; "Edited 23-Mar-2025 15:01 by rmk") + (* ; "Edited 4-Dec-2024 20:09 by rmk") (* ; "Edited 8-Nov-2024 08:37 by rmk") (* ; "Edited 29-Sep-2024 21:52 by rmk") (* ; "Edited 31-Aug-2024 12:46 by rmk") @@ -1906,6 +1907,7 @@ ((TEXT STRING) (* ;  "String should be a string, not NIL atom") (SETQ VAL (OR STR '**EMPTY**))) + (TRIMMEDSTRING (SETQ VAL (OR TRIMMED '**EMPTY**))) ((NUMBER PICAS POSITIVENUMBER SIGNEDNUMBER CARDINAL) (SETQ TRIMMED (MKATOM TRIMMED)) (if (OR (EQ 0 (NCHARS TRIMMED)) @@ -1958,25 +1960,25 @@ (MB.FIELD.INIT) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3233 19086 (MB.ADD 3243 . 9672) (MB.DELETE 9674 . 10048) (MB.GET 10050 . 16820) ( -MB.GET.MBARG 16822 . 18491) (TEDIT.BACKTOMAIN 18493 . 19084)) (19130 39066 (MB.BUTTONEVENTINFN 19140 - . 20708) (MB.DISPLAYFN 20710 . 22769) (MB.SETIMAGE 22771 . 23939) (MB.SIZEFN 23941 . 25489) ( -MB.WHENOPERATEDONFN 25491 . 27440) (MB.COPYFN 27442 . 27900) (MB.GETFN 27902 . 28863) (MB.PUTFN 28865 - . 29965) (MB.SHOWSELFN 29967 . 31476) (MB.CREATE 31478 . 35501) (MB.CHANGENAME 35503 . 35985) ( -MB.INIT 35987 . 37448) (MB.TRACK.UNTIL 37450 . 38145) (MB.DON'T 38147 . 38443) (MB.SPEC.REMAINDER -38445 . 39064)) (39228 49218 (MB.3STATE.CREATE 39238 . 40102) (MB.3STATE.DISPLAYFN 40104 . 41090) ( -MB.3STATE.SHOWSELFN 41092 . 43403) (MB.3STATE.INIT 43405 . 44816) (MB.3STATE.SETSTATEFN 44818 . 45476) - (MB.3STATE.BUTTONEVENTINFN 45478 . 49216)) (49373 80041 (MB.NWAY.CREATE 49383 . 55425) ( -MB.NWAY.DISPLAYFN 55427 . 56290) (MB.NWAY.WHENOPERATEDONFN 56292 . 58482) (MB.NWAY.SIZEFN 58484 . -62420) (MB.NWAY.SELECT 62422 . 65992) (MB.NWAY.BUTTONEVENTINFN 65994 . 69206) (MB.NWAY.NEWMENUBUTTON -69208 . 69920) (MB.NWAY.COPYFN 69922 . 70889) (MB.NWAY.INIT 70891 . 72382) (MB.NWAY.ARRANGEBUTTONS -72384 . 74355) (MB.NWAY.ADDITEM 74357 . 78219) (MB.NWAY.FINDSUBOBJ 78221 . 78735) (MB.NWAY.SETSTATEFN -78737 . 80039)) (80120 92007 (MB.TOGGLE.CREATE 80130 . 81125) (MB.TOGGLE.DISPLAYFN 81127 . 82610) ( -MB.TOGGLE.INIT 82612 . 84411) (MB.SET.TOGGLE 84413 . 85614) (MB.TOGGLE.SETSTATEFN 85616 . 86456) ( -MB.TOGGLE.BUTTONEVENTINFN 86458 . 90662) (MB.TOGGLE.WHENOPERATEDONFN 90664 . 92005)) (92088 124272 ( -MB.FIELD.CREATE 92098 . 97549) (MB.FIELD.DISPLAYFN 97551 . 98342) (MB.FIELD.IMAGEBOXFN 98344 . 99826) -(MB.FIELD.PREFIXCREATE 99828 . 103764) (MB.FIELD.SUFFIXCREATE 103766 . 105426) (MB.FIELD.INIT 105428 - . 107195) (MB.FIELD.WHENOPERATEDONFN 107197 . 108468) (MB.FIELD.GETSTATEFN 108470 . 112404) ( -MB.FIELD.SETSTATEFN 112406 . 117101) (MB.FIELD.BUTTONEVENTINFN 117103 . 119408) (MB.FIELD.SIZEFN -119410 . 119650) (MB.FIELD.INSURETYPE 119652 . 124270))))) + (FILEMAP (NIL (3253 19106 (MB.ADD 3263 . 9692) (MB.DELETE 9694 . 10068) (MB.GET 10070 . 16840) ( +MB.GET.MBARG 16842 . 18511) (TEDIT.BACKTOMAIN 18513 . 19104)) (19150 39086 (MB.BUTTONEVENTINFN 19160 + . 20728) (MB.DISPLAYFN 20730 . 22789) (MB.SETIMAGE 22791 . 23959) (MB.SIZEFN 23961 . 25509) ( +MB.WHENOPERATEDONFN 25511 . 27460) (MB.COPYFN 27462 . 27920) (MB.GETFN 27922 . 28883) (MB.PUTFN 28885 + . 29985) (MB.SHOWSELFN 29987 . 31496) (MB.CREATE 31498 . 35521) (MB.CHANGENAME 35523 . 36005) ( +MB.INIT 36007 . 37468) (MB.TRACK.UNTIL 37470 . 38165) (MB.DON'T 38167 . 38463) (MB.SPEC.REMAINDER +38465 . 39084)) (39248 49238 (MB.3STATE.CREATE 39258 . 40122) (MB.3STATE.DISPLAYFN 40124 . 41110) ( +MB.3STATE.SHOWSELFN 41112 . 43423) (MB.3STATE.INIT 43425 . 44836) (MB.3STATE.SETSTATEFN 44838 . 45496) + (MB.3STATE.BUTTONEVENTINFN 45498 . 49236)) (49393 80061 (MB.NWAY.CREATE 49403 . 55445) ( +MB.NWAY.DISPLAYFN 55447 . 56310) (MB.NWAY.WHENOPERATEDONFN 56312 . 58502) (MB.NWAY.SIZEFN 58504 . +62440) (MB.NWAY.SELECT 62442 . 66012) (MB.NWAY.BUTTONEVENTINFN 66014 . 69226) (MB.NWAY.NEWMENUBUTTON +69228 . 69940) (MB.NWAY.COPYFN 69942 . 70909) (MB.NWAY.INIT 70911 . 72402) (MB.NWAY.ARRANGEBUTTONS +72404 . 74375) (MB.NWAY.ADDITEM 74377 . 78239) (MB.NWAY.FINDSUBOBJ 78241 . 78755) (MB.NWAY.SETSTATEFN +78757 . 80059)) (80140 92027 (MB.TOGGLE.CREATE 80150 . 81145) (MB.TOGGLE.DISPLAYFN 81147 . 82630) ( +MB.TOGGLE.INIT 82632 . 84431) (MB.SET.TOGGLE 84433 . 85634) (MB.TOGGLE.SETSTATEFN 85636 . 86476) ( +MB.TOGGLE.BUTTONEVENTINFN 86478 . 90682) (MB.TOGGLE.WHENOPERATEDONFN 90684 . 92025)) (92108 124472 ( +MB.FIELD.CREATE 92118 . 97569) (MB.FIELD.DISPLAYFN 97571 . 98362) (MB.FIELD.IMAGEBOXFN 98364 . 99846) +(MB.FIELD.PREFIXCREATE 99848 . 103784) (MB.FIELD.SUFFIXCREATE 103786 . 105446) (MB.FIELD.INIT 105448 + . 107215) (MB.FIELD.WHENOPERATEDONFN 107217 . 108488) (MB.FIELD.GETSTATEFN 108490 . 112424) ( +MB.FIELD.SETSTATEFN 112426 . 117121) (MB.FIELD.BUTTONEVENTINFN 117123 . 119428) (MB.FIELD.SIZEFN +119430 . 119670) (MB.FIELD.INSURETYPE 119672 . 124470))))) STOP diff --git a/library/tedit/TEDIT-BUTTONS.LCOM b/library/tedit/TEDIT-BUTTONS.LCOM index 03bcc9fbeec7d2ded76d7d4838b52eea1e73fb9f..4c497af1ec4b81c4a0688153a84dc0d8ae781389 100644 GIT binary patch delta 706 zcmZ`%&ubGw6i(7Zv4TV+QbFMv6>21LXJ%)!8zpp;oi>B}BkWFW1HGgeBxoB+qYz3+ z^e-^ogPs(;D0q^^zrc%EJqkVhM+o9Ae*1Q(Ulz>bB423;;kiNKI>vbN3Z>ULv#kPmgNDyUv(6@8xb+X3 zEbMPM%(7W?c;jAYyVvRs%KxJUgjE{$lb8P@4?jN6M6Z+4{;B7wL}J0blaOaAHc>g; z8S2NM)!r>mgXz`i#gHUNAIz6;zrC*=i!teLY*(jvo=&W&NP(^CR0UCEb{&YJgLBgq zo&!Wj;8ts<9{`~QTv3ais%J4EME~8F+nPfWg*CqE12&2fGlypeCoW<`fvV?LO#zrv zaF|m8IpLfHFxJA8gUnfsj5!YJ8Zh7Y{0o4JRAx^vYx<95EZ|5RA~^g!(nm!MLDQ*t zHV{RHIP@O772vjCC<*S&xXev8dRst&mvbLyg*%gL9J z(oNsuu4w~8=#O#*AC;GW)*EEjURPm8SuFm-sL93n+>w7Fkhi-Yz8POzP!%;i9G^?+ zH2gX~pQj3}T!s7$9dm=bv&-z9+*?jSu*SF98PG^O` z?6`A%el^?n?FnnXpY*+J-}uMR7hmngo3&G#P}nyjlV;ltMP31A7>cLdlm*Zz0F@58 zu7T1Blo`&8w9Euhg0I$ywNjEWcp~>S5QbpkTI%G~9Pp^_=DfrJDU zHzUn+H7W+eWycI^xvNBW*}!fsRar|TpNY0bG4y)EO*ZcJ03$aS*O^p2ha|X4v#^El zwR9X^ejdfJFtmTp9&b<=syk9zq~)%X&qd~TDe?@=xDs6;5wm=tedit>TEDIT-COMMAND.;162 19338 +(FILECREATED "23-Mar-2025 15:27:20" {WMEDLEY}tedit>TEDIT-COMMAND.;163 19331 :EDIT-BY rmk - :CHANGES-TO (VARS TEDIT-COMMANDCOMS) - (FNS \TEDIT.COMMAND.FUNCTION? \TEDIT.COMMAND.LOOP) + :CHANGES-TO (FNS \TEDIT.COMMAND.FUNCTION? \TEDIT.COMMAND.LOOP) + (VARS TEDIT-COMMANDCOMS) :PREVIOUS-DATE "16-Mar-2025 14:20:07" {WMEDLEY}tedit>TEDIT-COMMAND.;160) @@ -136,7 +136,7 @@ (FSETTOBJ TEXTOBJ EDITOPACTIVE NIL)))]) (\TEDIT.COMMAND.FUNCTION? - [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 23-Mar-2025 10:00 by rmk") + [LAMBDA (TSTREAM CHARCODE) (* ; "Edited 23-Mar-2025 15:27 by rmk") (DECLARE (SPECVARS TSTREAM CHARCODE)) (* ;; "If CHARCODE is a function in TSTREAM's read table, execute the function.") @@ -156,8 +156,8 @@ (* ;; "A form but not a LAMBDA. TSTREAM, TEXTOBJ, and CHARCODE are specvars") (EVAL FN) - else (APPLY* FN TSTREAM TEXTOBJ (TEXTSEL TEXTOBJ)) - T))]) + else (APPLY* FN TSTREAM TEXTOBJ (TEXTSEL TEXTOBJ))) + T)]) ) (DEFINEQ @@ -306,7 +306,7 @@ (GLOBALVARS || TEDIT.INTERRUPTS) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2688 10249 (\TEDIT.COMMAND.LOOP 2698 . 9039) (\TEDIT.COMMAND.FUNCTION? 9041 . 10247)) ( -10250 19048 (\TEDIT.INTERRUPT.SETUP 10260 . 11907) (\TEDIT.MARKACTIVE 11909 . 12238) ( -\TEDIT.MARKINACTIVE 12240 . 12456) (\TEDIT.COMMAND.RESET.SETUP 12458 . 19046))))) + (FILEMAP (NIL (2688 10242 (\TEDIT.COMMAND.LOOP 2698 . 9039) (\TEDIT.COMMAND.FUNCTION? 9041 . 10240)) ( +10243 19041 (\TEDIT.INTERRUPT.SETUP 10253 . 11900) (\TEDIT.MARKACTIVE 11902 . 12231) ( +\TEDIT.MARKINACTIVE 12233 . 12449) (\TEDIT.COMMAND.RESET.SETUP 12451 . 19039))))) STOP diff --git a/library/tedit/TEDIT-COMMAND.LCOM b/library/tedit/TEDIT-COMMAND.LCOM index 0ece03960232115c5fe7699a0e500e8a9e459c7d..e1f35fabbd4dd5b7edbe54d31185a78001ad15ea 100644 GIT binary patch delta 124 zcmeCy>Cu^x!ftA1WNu|-FfrSj(RkwW*>HZfHoLKcp{230;pA#YnaNEe!jlg(%8P4+ zIR*tQgt)qRhUhx``}#Wixd5r)%?}tSvNKjrF5+|&*LL(c>BPnW1SgreKok>WWXdMd R$)`CLnKpdf{FYOW2LO7DBBlTU delta 122 zcmeCt>DHN$!fs$?WM*Y#GBMkl(P-lG*-*am#AM?VU9t;3L&m8 zo*}x<{=UABel9>Ncyfb?*yL4=@|zzq_OmlqOfKSd61Q~pIO)X300bwQxIh#WV`R!E R<;kZx6&VFKzvGnS0RSj^AnyPG diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 191fc23f9..7fe885d0b 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,10 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "23-Mar-2025 10:33:09" {WMEDLEY}tedit>TEDIT-FNKEYS.;233 99934 +(FILECREATED "23-Mar-2025 14:58:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;234 100060 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.BUTTONS.BUILD \TEDIT.KEY.SIZE) + :CHANGES-TO (FNS CHARNAME TEDIT.BUTTONS.BUILD \TEDIT.KEY.SIZE) (VARS TEDIT.CHARACTIONS) :PREVIOUS-DATE "19-Mar-2025 15:47:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;231) @@ -64,7 +64,8 @@ (DEFINEQ (CHARNAME - [LAMBDA (CODE OCTALCHARS) (* ; "Edited 18-Mar-2025 20:55 by rmk") + [LAMBDA (CODE OCTALCHARS) (* ; "Edited 23-Mar-2025 14:57 by rmk") + (* ; "Edited 18-Mar-2025 20:55 by rmk") (* ; "Edited 6-Dec-2023 20:30 by rmk") (* ; "Edited 20-Sep-2021 15:03 by rmk:") @@ -126,7 +127,7 @@ then (CONCAT CSETNAME "," CHARNAME) else CHARNAME)) (CL:UNLESS (EQ CODE (CHARCODE.DECODE STRING)) - (HELP "Character name doesn't map to code" (LIST STRING CODE))) + (\TEDIT.THELP "Character name doesn't map to code" (LIST STRING CODE))) STRING]) ) @@ -1874,27 +1875,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3744 7965 (CHARNAME 3754 . 7963)) (8021 21898 (TEDIT.INSTALL.CHARBINDINGS 8031 . 11214) - (TEDIT.CLEAR.CHARBINDINGS 11216 . 13807) (TEDIT.GET.CHARACTION 13809 . 16456) (TEDIT.GET.CHARBINDING -16458 . 18382) (TEDIT.GET.ALL.CHARBINDINGS 18384 . 20038) (TEDIT.GET.ALL.CHARACTIONS 20040 . 21896)) ( -21958 31576 (\TEDIT.KEY.CHARLOOKS 21968 . 22910) (\TEDIT.KEY.QUAD 22912 . 25005) (\TEDIT.DEFAULTSSEL -25007 . 25618) (\TEDIT.SETDEFAULT.FROM.SEL 25620 . 26297) (\TEDIT.KEY.SIZE 26299 . 27495) ( -\TEDIT.SUBSCRIPTSEL 27497 . 27700) (\TEDIT.SUPERSCRIPTSEL 27702 . 27906) (\TEDIT.KEY.TRANSFORM 27908 - . 29718) (\TEDIT.KEY.OPENLINE 29720 . 30174) (\TEDIT.KEY.FAMILYN 30176 . 31574)) (31577 31866 ( -CAP-CASECODE 31587 . 31864)) (31900 34526 (\TEDIT.SHOWCARETLOOKS 31910 . 33619) (\TEDIT.DESCRIBEFONT -33621 . 34524)) (34557 49293 (\TEDIT.ONECHAR.BACKWARD 34567 . 35696) (\TEDIT.ONECHAR.FORWARD 35698 . -36916) (\TEDIT.ONELINE.UP 36918 . 39879) (\TEDIT.ONELINE.DOWN 39881 . 41538) (\TEDIT.ONELINE.MOVE -41540 . 43754) (\TEDIT.ONEWORD.BACKWARD 43756 . 44908) (\TEDIT.ONEWORD.FORWARD 44910 . 46061) ( -\TEDIT.LINE.BEGIN 46063 . 47114) (\TEDIT.LINE.END 47116 . 48325) (\TEDIT.DOCUMENT.BEGIN 48327 . 48686) - (\TEDIT.DOCUMENT.END 48688 . 49291)) (49294 51138 (\TEDIT.LINEDELETE.FORWARD 49304 . 50204) ( -\TEDIT.LINEDELETE.BACKWARD 50206 . 51136)) (51139 53397 (\TEDIT.KEY.NEST 51149 . 53395)) (53451 61406 -(\TEDIT.KEY.FIND 53461 . 58546) (\TEDIT.KEY.FIND.SEARCHSTRING 58548 . 59688) (\TEDIT.GET.TARGET.STRING - 59690 . 61404)) (61437 64069 (\TEDIT.KEY.SUBSTITUTE 61447 . 61668) (\TEDIT.MANPAGE 61670 . 62917) ( -\TEDIT.CALL.ED 62919 . 63749) (\TEDIT.SELECT.ALL 63751 . 64067)) (64096 69676 (\TEDIT.CLIPBOARD 64106 - . 65861) (\TEDIT.COPYTOCLIPBOARD 65863 . 66643) (\TEDIT.EXTRACTTOCLIPBOARD 66645 . 66840) ( -\TEDIT.WRITE.SEL 66842 . 69674)) (70028 81743 (\TEDIT.READTABLE 70038 . 70974) ( -\TEDIT.WORDBOUND.READTABLE 70976 . 73605) (TEDIT.GETSYNTAX 73607 . 75126) (TEDIT.SETSYNTAX 75128 . -76333) (TEDIT.GETFUNCTION 76335 . 77507) (TEDIT.SETFUNCTION 77509 . 79495) (TEDIT.WORDGET 79497 . -79758) (TEDIT.WORDSET 79760 . 80391) (TEDIT.ATOMBOUND.READTABLE 80393 . 81741)) (92331 98870 ( -TEDIT.BUTTONS.BUILD 92341 . 97138) (TEDIT.BUTTONBITMAP.FILL 97140 . 98868))))) + (FILEMAP (NIL (3753 8091 (CHARNAME 3763 . 8089)) (8147 22024 (TEDIT.INSTALL.CHARBINDINGS 8157 . 11340) + (TEDIT.CLEAR.CHARBINDINGS 11342 . 13933) (TEDIT.GET.CHARACTION 13935 . 16582) (TEDIT.GET.CHARBINDING +16584 . 18508) (TEDIT.GET.ALL.CHARBINDINGS 18510 . 20164) (TEDIT.GET.ALL.CHARACTIONS 20166 . 22022)) ( +22084 31702 (\TEDIT.KEY.CHARLOOKS 22094 . 23036) (\TEDIT.KEY.QUAD 23038 . 25131) (\TEDIT.DEFAULTSSEL +25133 . 25744) (\TEDIT.SETDEFAULT.FROM.SEL 25746 . 26423) (\TEDIT.KEY.SIZE 26425 . 27621) ( +\TEDIT.SUBSCRIPTSEL 27623 . 27826) (\TEDIT.SUPERSCRIPTSEL 27828 . 28032) (\TEDIT.KEY.TRANSFORM 28034 + . 29844) (\TEDIT.KEY.OPENLINE 29846 . 30300) (\TEDIT.KEY.FAMILYN 30302 . 31700)) (31703 31992 ( +CAP-CASECODE 31713 . 31990)) (32026 34652 (\TEDIT.SHOWCARETLOOKS 32036 . 33745) (\TEDIT.DESCRIBEFONT +33747 . 34650)) (34683 49419 (\TEDIT.ONECHAR.BACKWARD 34693 . 35822) (\TEDIT.ONECHAR.FORWARD 35824 . +37042) (\TEDIT.ONELINE.UP 37044 . 40005) (\TEDIT.ONELINE.DOWN 40007 . 41664) (\TEDIT.ONELINE.MOVE +41666 . 43880) (\TEDIT.ONEWORD.BACKWARD 43882 . 45034) (\TEDIT.ONEWORD.FORWARD 45036 . 46187) ( +\TEDIT.LINE.BEGIN 46189 . 47240) (\TEDIT.LINE.END 47242 . 48451) (\TEDIT.DOCUMENT.BEGIN 48453 . 48812) + (\TEDIT.DOCUMENT.END 48814 . 49417)) (49420 51264 (\TEDIT.LINEDELETE.FORWARD 49430 . 50330) ( +\TEDIT.LINEDELETE.BACKWARD 50332 . 51262)) (51265 53523 (\TEDIT.KEY.NEST 51275 . 53521)) (53577 61532 +(\TEDIT.KEY.FIND 53587 . 58672) (\TEDIT.KEY.FIND.SEARCHSTRING 58674 . 59814) (\TEDIT.GET.TARGET.STRING + 59816 . 61530)) (61563 64195 (\TEDIT.KEY.SUBSTITUTE 61573 . 61794) (\TEDIT.MANPAGE 61796 . 63043) ( +\TEDIT.CALL.ED 63045 . 63875) (\TEDIT.SELECT.ALL 63877 . 64193)) (64222 69802 (\TEDIT.CLIPBOARD 64232 + . 65987) (\TEDIT.COPYTOCLIPBOARD 65989 . 66769) (\TEDIT.EXTRACTTOCLIPBOARD 66771 . 66966) ( +\TEDIT.WRITE.SEL 66968 . 69800)) (70154 81869 (\TEDIT.READTABLE 70164 . 71100) ( +\TEDIT.WORDBOUND.READTABLE 71102 . 73731) (TEDIT.GETSYNTAX 73733 . 75252) (TEDIT.SETSYNTAX 75254 . +76459) (TEDIT.GETFUNCTION 76461 . 77633) (TEDIT.SETFUNCTION 77635 . 79621) (TEDIT.WORDGET 79623 . +79884) (TEDIT.WORDSET 79886 . 80517) (TEDIT.ATOMBOUND.READTABLE 80519 . 81867)) (92457 98996 ( +TEDIT.BUTTONS.BUILD 92467 . 97264) (TEDIT.BUTTONBITMAP.FILL 97266 . 98994))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index a83af079a5ae6f830e285b4dbd0fc0a31daf4b7f..478d51cd0e85890a57d6cdf4d9a91ec4fbb3c4b0 100644 GIT binary patch delta 100 zcmbQYglXv#rU@zRCRU~vR)!`Mv#l6SCN9(CaQ1Kv@^kcco%lQyE?2F^VWMDYU|?Wo sFu8dn@rAPRG2)O(T7QaYx6_Kr%apAv4r;m0FOr+)c^nh diff --git a/library/tedit/TEDIT-LOOKS b/library/tedit/TEDIT-LOOKS index bb6726176..db1ed347d 100644 --- a/library/tedit/TEDIT-LOOKS +++ b/library/tedit/TEDIT-LOOKS @@ -1,10 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "23-Mar-2025 11:36:24" {WMEDLEY}tedit>TEDIT-LOOKS.;398 155504 +(FILECREATED "23-Mar-2025 15:10:37" {WMEDLEY}tedit>TEDIT-LOOKS.;399 155940 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.FONT.NEXTSIZE \TEDIT.CHARLOOKS.CHANGE.FONT \TEDIT.FONTCLASS.TO.FONT + :CHANGES-TO (FNS \TEDIT.CHARLOOKS.CHANGE.FONT \TEDIT.FONT.NEXTSIZE \TEDIT.FONTCLASS.TO.FONT \TEDIT.CHANGE.CHARLOOKS) (VARS TEDIT-LOOKSCOMS) @@ -1593,7 +1593,7 @@ NIL) finally (RETURN NEWCHARLOOKS]) (\TEDIT.CHARLOOKS.CHANGE.FONT - [LAMBDA (NEWLOOKS OLDCHARLOOKS TEXTOBJ) (* ; "Edited 22-Mar-2025 21:50 by rmk") + [LAMBDA (NEWLOOKS OLDCHARLOOKS TEXTOBJ) (* ; "Edited 23-Mar-2025 15:10 by rmk") (* ; "Edited 21-Mar-2025 13:54 by rmk") (* ; "Edited 29-Jan-2025 23:52 by rmk") (* ; "Edited 10-Jan-2025 11:01 by rmk") @@ -1637,7 +1637,7 @@ (WEIGHT (LISTGET NEWLOOKS 'WEIGHT)) (SLOPE (LISTGET NEWLOOKS 'SLOPE)) (EXPANSION (LISTGET NEWLOOKS 'EXPANSION)) - (SIZE (LISTGET NEWLOOKS 'SIZE)) + [SIZE (MKATOM (LISTGET NEWLOOKS 'SIZE] (SIZEINCREMENT (LISTGET NEWLOOKS 'SIZEINCREMENT)) (OLDFONT (FGETCLOOKS OLDCHARLOOKS CLFONT)) FONTSPEC TEMP) @@ -1679,6 +1679,15 @@ (push FONTSPEC 'EXPANSION EXPANSION)) elseif FACE then (push FONTSPEC 'FACE FACE)) + (if (FIXP SIZE) + then (CL:WHEN SIZEINCREMENT + (TEDIT.PROMPTPRINT TEXTOBJ + "Cannot specify both SIZE and SIZEINCREMENT font attributes--aborted" T + ) + (RETURN NIL)) + elseif (MEMB SIZE '(+ -)) + then (SETQ SIZEINCREMENT SIZE) + (SETQ SIZE NIL)) [if SIZE then (push FONTSPEC 'SIZE SIZE) elseif SIZEINCREMENT @@ -2483,14 +2492,14 @@ \TEDIT.CONVERT.TO.FORMATTED 61018 . 67036)) (68050 75161 (\TEDIT.UNIQUIFY.CHARLOOKS 68060 . 69720) ( \TEDIT.UNIQUIFY.PARALOOKS 69722 . 70989) (\TEDIT.UNIQUIFY.ALL 70991 . 72966) ( \TEDIT.FLUSH.UNUSED.LOOKS 72968 . 75159)) (75194 86290 (TEDIT.LOOKS 75204 . 77593) (TEDIT.GET.LOOKS -77595 . 79624) (TEDIT.SUBLOOKS 79626 . 83654) (TEDIT.FINDLOOKS 83656 . 86288)) (86365 115847 ( +77595 . 79624) (TEDIT.SUBLOOKS 79626 . 83654) (TEDIT.FINDLOOKS 83656 . 86288)) (86365 116283 ( \TEDIT.CHANGE.CHARLOOKS 86375 . 95611) (\TEDIT.CHANGE.CHARLOOKS.NEW 95613 . 99238) ( -\TEDIT.CHARLOOKS.CHANGE.FONT 99240 . 107111) (\TEDIT.FONT.NEXTSIZE 107113 . 108734) (\TEDIT.LOOKS -108736 . 112065) (\TEDIT.FONTCOPY 112067 . 113568) (\TEDIT.COERCE.FONTCLASS 113570 . 114721) ( -\TEDIT.FONTCLASS.TO.FONT 114723 . 115845)) (115890 147164 (\TEDIT.EQFMTSPEC 115900 . 119115) ( -TEDIT.GET.PARALOOKS 119117 . 123164) (\TEDIT.PARSE.PARALOOKS.LIST 123166 . 130508) (TEDIT.PARALOOKS -130510 . 131550) (\TEDIT.CHANGE.PARALOOKS 131552 . 138837) (\TEDIT.CHANGE.PARALOOKS.NEW 138839 . -142822) (TEDIT.COPY.PARALOOKS 142824 . 145498) (\TEDIT.PARABOUNDS 145500 . 147162)) (147224 154622 ( -TEDIT.SUBPARALOOKS 147234 . 151018) (SAMEPARALOOKS 151020 . 154620)) (154623 155310 ( -\TEDIT.MARK.REVISION 154633 . 155308))))) +\TEDIT.CHARLOOKS.CHANGE.FONT 99240 . 107547) (\TEDIT.FONT.NEXTSIZE 107549 . 109170) (\TEDIT.LOOKS +109172 . 112501) (\TEDIT.FONTCOPY 112503 . 114004) (\TEDIT.COERCE.FONTCLASS 114006 . 115157) ( +\TEDIT.FONTCLASS.TO.FONT 115159 . 116281)) (116326 147600 (\TEDIT.EQFMTSPEC 116336 . 119551) ( +TEDIT.GET.PARALOOKS 119553 . 123600) (\TEDIT.PARSE.PARALOOKS.LIST 123602 . 130944) (TEDIT.PARALOOKS +130946 . 131986) (\TEDIT.CHANGE.PARALOOKS 131988 . 139273) (\TEDIT.CHANGE.PARALOOKS.NEW 139275 . +143258) (TEDIT.COPY.PARALOOKS 143260 . 145934) (\TEDIT.PARABOUNDS 145936 . 147598)) (147660 155058 ( +TEDIT.SUBPARALOOKS 147670 . 151454) (SAMEPARALOOKS 151456 . 155056)) (155059 155746 ( +\TEDIT.MARK.REVISION 155069 . 155744))))) STOP diff --git a/library/tedit/TEDIT-LOOKS.LCOM b/library/tedit/TEDIT-LOOKS.LCOM index 9f93d3861101f205d36049128632f418e458616e..3c91a859d9bc6c7740b69d5a1e4bbd99dddaf96b 100644 GIT binary patch delta 718 zcmZWn&ubGw6mC+BHe#AX5)>+Zwt^`(VSeoFkKQ($NwQ{kCvLW}6{Q3swg?rZc=6DB z>eVm^UIjgQu(nqrH*fwA9z1&T4-jWJF&;WF!}q@TeQ)N?%%{)UpQqV3!^>f(V0Jt+ooe;o$Je5Y%FZPMy~1)%q0&Fk_B^ z)M4h1`gNRB$0wEZ@0qWB!O3Ul=GB+hvKqJY$y`{R(?fl0{n!{%I4g~1;p}$(c|z`A zP1e0a8srlEPUd$D5V{~S43bDz3~F4=AqxT?)PXu`G%Q}CrUB}`C|(1K?P&&?>VChNF;%x;I${hw z8G3FE*uaw$M%;}#U`o@l3-+|6i6H2>u?*I86@6pS;CaQqlX+QH8s+JSOzp*U6Sa_;@e#}?D;YTk|>4jYF>Bzfcvd> z3dd713z|!?*Vo!&{piA8DpcF0b3+BV6tXHU5W-^Jket`i5-1< zH}J&{n5H`IJT4iCK*iPHD%mLX#X3;iR)5?T<%+dD#S|)cp{iMga+)re(~brQ!?ZO& Z^dcVcFjl@;&N8H)ijAyI&fki1=P#&qw=Dnw delta 602 zcmZWlzi$&U808W{pr}DeO{>E4iKVTCD*rxT7jQ1l#jWprx;vmnFd&7Al@X~MVkCG( zj7%Ls>crN61169VEBpyK7a9q5^7H%Nd-nT&e(s!n>b#xy@E#R=gw0+gk(_gliOL|?wrk1lonhYb6(tna^NU;U5CpBtFL{FT&|N5B#C-_6DblQBGL^vE>3%NY~Q z_xCrujI)J?B^NX_!E+5zNiWX0fL!N8pp5$2{@N}4pJv%I)OdG)aLf^;u1Hk_n2N;@ zE3Fz0n8@~8f+TI=&dN4N5=Q!=Nj0!oEFq20A&p6E8tFQ%Oxd^!C}NOKRArqzsDUIB z<~s%=`5YVvBoY{_5J?0AeORiZHm(4|7}VC4fhP$((k7cUK*AO)ojtIs0)hm%@i?3a zOrxwx0Vf246^HC|Cgw{67IAC91jEqT5nxOtedit>TEDIT-MENU.;463 161836 +(FILECREATED "23-Mar-2025 14:56:57" {WMEDLEY}tedit>TEDIT-MENU.;464 162009 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.CHARMENU.FILLIN) + :CHANGES-TO (FNS \TEDIT.CHARMENU.SPEC \TEDIT.CHARMENU.FILLIN) :PREVIOUS-DATE "19-Mar-2025 10:01:40" {WMEDLEY}tedit>TEDIT-MENU.;461) @@ -1787,7 +1787,8 @@ 'CHARLOOKS]) (\TEDIT.CHARMENU.SPEC - [LAMBDA (TSTREAM) (* ; "Edited 15-Mar-2025 23:38 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 23-Mar-2025 14:48 by rmk") + (* ; "Edited 15-Mar-2025 23:38 by rmk") (* ; "Edited 26-Jan-2025 22:05 by rmk") (* ; "Edited 10-Jan-2025 10:49 by rmk") (* ; "Edited 3-Jan-2025 11:21 by rmk") @@ -1846,8 +1847,9 @@ 3 (3STATE (LABEL Italic)) 3 - (FIELD (PRELABEL "Size:") - (FIELDTYPE NUMBER)) + (FIELD (IDENTIFIER SIZE) + (PRELABEL "Size:") + (FIELDTYPE TRIMMEDSTRING)) EOL (NWAY (IDENTIFIER OFFSETTYPE) (BUTTONS (Normal Superscript Subscript)) @@ -2632,29 +2634,29 @@ (ADDTOVAR LAMA ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (5117 51488 (DRAWMARGINSCALE 5127 . 8586) (MARGINBAR 8588 . 15713) (MARGINBAR.CREATE -15715 . 19134) (MB.MARGINBAR.BUTTONEVENTINFN 19136 . 26775) (MB.MARGINBAR.SELFN.TABS 26777 . 32017) ( -MB.MARGINBAR.SELFN.TABS.KIND 32019 . 32954) (MARGINBAR.GETSTATEFN 32956 . 36834) (MARGINBAR.SETSTATEFN - 36836 . 37046) (MARGINBAR.NEUTRALIZE 37048 . 37461) (MARGINBAR.LOOKS 37463 . 40569) ( -MB.MARGINBAR.SIZEFN 40571 . 41174) (MB.MARGINBAR.DISPLAYFN 41176 . 44237) (MDESCALE 44239 . 44779) ( -MSCALE 44781 . 45111) (MB.MARGINBAR.SHOWTAB 45113 . 47436) (MB.MARGINBAR.TABTRACK 47438 . 48823) ( -MARGINBAR.INIT 48825 . 50218) (\TEDIT.PARALOOKS.TO.MARBAR 50220 . 51486)) (52313 59219 ( -TEDIT.MENUSTREAM 52323 . 53323) (TEDITMENUP 53325 . 54294) (\TEDIT.MENU.START 54296 . 58643) ( -\TEDIT.MENU.BUTTONEVENTFN 58645 . 59217)) (59538 67460 (\TEDIT.MENU.CREATE 59548 . 61359) ( -\TEDIT.MENU.PARSE 61361 . 65050) (\TEDIT.MENU.NEUTRALIZE 65052 . 67123) (\TEDITMENU.RECORD.UNFORMATTED - 67125 . 67458)) (67526 87518 (\TEDIT.EXPANDEDMENU.CREATE 67536 . 72938) (\TEDIT.EXPANDEDMENU.START -72940 . 74370) (\TEDIT.EXPANDEDMENU.FN 74372 . 77627) (\TEDIT.EXPANDEDMENU.ACTIONFN 77629 . 87516)) ( -87580 103137 (\TEDIT.PARAMENU.CREATE 87590 . 93611) (\TEDIT.PARAMENU.START 93613 . 94545) ( -\TEDIT.APPLY.PARALOOKS 94547 . 95599) (\TEDIT.SHOW.PARALOOKS 95601 . 98384) (\TEDIT.PARAMENU.FILLIN -98386 . 103135)) (103342 129375 (\TEDIT.CHARMENU.CREATE 103352 . 105956) (\TEDIT.CHARMENU.START 105958 - . 107055) (\TEDIT.CHARMENU.SPEC 107057 . 111588) (\TEDIT.CHARMENU.PARSE 111590 . 114758) ( -\TEDIT.CHARMENU.FILLIN 114760 . 119214) (\TEDIT.SHOW.CHARLOOKS 119216 . 122473) ( -\TEDIT.APPLY.CHARLOOKS 122475 . 123636) (\TEDIT.OFFSETTYPE.STATEFN 123638 . 125601) ( -\TEDIT.OTHER.STATECHANGEFN 125603 . 127248) (\TEDIT.OTHER.SELECTFN 127250 . 129373)) (129437 155876 ( -\TEDIT.PAGEMENU.CREATE 129447 . 136641) (\TEDIT.SHOW.PAGELOOKS 136643 . 138438) ( -\TEDIT.PAGEMENU.FILLIN 138440 . 139990) (\TEDIT.PAGEREGION.UNPARSE 139992 . 149182) ( -\TEDIT.APPLY.PAGELOOKS 149184 . 151111) (\TEDIT.CHANGE.PAGELOOKS 151113 . 155032) ( -\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 155034 . 155874)) (155877 161680 (\TEDIT.PAGEMENU.CREATE.HEADINGS -155887 . 158699) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 158701 . 160126) ( -\TEDIT.PAGEMENU.HEADINGS.STATEFN 160128 . 161678))))) + (FILEMAP (NIL (5138 51509 (DRAWMARGINSCALE 5148 . 8607) (MARGINBAR 8609 . 15734) (MARGINBAR.CREATE +15736 . 19155) (MB.MARGINBAR.BUTTONEVENTINFN 19157 . 26796) (MB.MARGINBAR.SELFN.TABS 26798 . 32038) ( +MB.MARGINBAR.SELFN.TABS.KIND 32040 . 32975) (MARGINBAR.GETSTATEFN 32977 . 36855) (MARGINBAR.SETSTATEFN + 36857 . 37067) (MARGINBAR.NEUTRALIZE 37069 . 37482) (MARGINBAR.LOOKS 37484 . 40590) ( +MB.MARGINBAR.SIZEFN 40592 . 41195) (MB.MARGINBAR.DISPLAYFN 41197 . 44258) (MDESCALE 44260 . 44800) ( +MSCALE 44802 . 45132) (MB.MARGINBAR.SHOWTAB 45134 . 47457) (MB.MARGINBAR.TABTRACK 47459 . 48844) ( +MARGINBAR.INIT 48846 . 50239) (\TEDIT.PARALOOKS.TO.MARBAR 50241 . 51507)) (52334 59240 ( +TEDIT.MENUSTREAM 52344 . 53344) (TEDITMENUP 53346 . 54315) (\TEDIT.MENU.START 54317 . 58664) ( +\TEDIT.MENU.BUTTONEVENTFN 58666 . 59238)) (59559 67481 (\TEDIT.MENU.CREATE 59569 . 61380) ( +\TEDIT.MENU.PARSE 61382 . 65071) (\TEDIT.MENU.NEUTRALIZE 65073 . 67144) (\TEDITMENU.RECORD.UNFORMATTED + 67146 . 67479)) (67547 87539 (\TEDIT.EXPANDEDMENU.CREATE 67557 . 72959) (\TEDIT.EXPANDEDMENU.START +72961 . 74391) (\TEDIT.EXPANDEDMENU.FN 74393 . 77648) (\TEDIT.EXPANDEDMENU.ACTIONFN 77650 . 87537)) ( +87601 103158 (\TEDIT.PARAMENU.CREATE 87611 . 93632) (\TEDIT.PARAMENU.START 93634 . 94566) ( +\TEDIT.APPLY.PARALOOKS 94568 . 95620) (\TEDIT.SHOW.PARALOOKS 95622 . 98405) (\TEDIT.PARAMENU.FILLIN +98407 . 103156)) (103363 129548 (\TEDIT.CHARMENU.CREATE 103373 . 105977) (\TEDIT.CHARMENU.START 105979 + . 107076) (\TEDIT.CHARMENU.SPEC 107078 . 111761) (\TEDIT.CHARMENU.PARSE 111763 . 114931) ( +\TEDIT.CHARMENU.FILLIN 114933 . 119387) (\TEDIT.SHOW.CHARLOOKS 119389 . 122646) ( +\TEDIT.APPLY.CHARLOOKS 122648 . 123809) (\TEDIT.OFFSETTYPE.STATEFN 123811 . 125774) ( +\TEDIT.OTHER.STATECHANGEFN 125776 . 127421) (\TEDIT.OTHER.SELECTFN 127423 . 129546)) (129610 156049 ( +\TEDIT.PAGEMENU.CREATE 129620 . 136814) (\TEDIT.SHOW.PAGELOOKS 136816 . 138611) ( +\TEDIT.PAGEMENU.FILLIN 138613 . 140163) (\TEDIT.PAGEREGION.UNPARSE 140165 . 149355) ( +\TEDIT.APPLY.PAGELOOKS 149357 . 151284) (\TEDIT.CHANGE.PAGELOOKS 151286 . 155205) ( +\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 155207 . 156047)) (156050 161853 (\TEDIT.PAGEMENU.CREATE.HEADINGS +156060 . 158872) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 158874 . 160299) ( +\TEDIT.PAGEMENU.HEADINGS.STATEFN 160301 . 161851))))) STOP diff --git a/library/tedit/TEDIT-MENU.LCOM b/library/tedit/TEDIT-MENU.LCOM index 83ff6ca8ad9b8e84e8148aab7fd48da3ed581bf9..b5d5821883b12090a68ddef530b43f67e880d4a3 100644 GIT binary patch delta 154 zcmccgk?G$@rU?#4z)CNPZC=H=J8$wTcW%RA&nQ<-1&x3pS06_wS04qX;LNI2Dvn?2nCoZv@RLVZ_xd&Di)fybe q3WjEe7RF|iix>?im9lN#%eXsla#w-u Date: Mon, 24 Mar 2025 09:31:54 -0700 Subject: [PATCH 18/26] Fix can't find font error --- library/tedit/TEDIT-ABBREV | 18 +++++++++++------- library/tedit/TEDIT-ABBREV.LCOM | Bin 5024 -> 5013 bytes library/tedit/TEDIT-BUTTONS | 11 ++++++----- library/tedit/TEDIT-BUTTONS.LCOM | Bin 35165 -> 35180 bytes 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/library/tedit/TEDIT-ABBREV b/library/tedit/TEDIT-ABBREV index b66407106..29aaca270 100644 --- a/library/tedit/TEDIT-ABBREV +++ b/library/tedit/TEDIT-ABBREV @@ -1,13 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "20-Mar-2025 22:21:20" {WMEDLEY}tedit>TEDIT-ABBREV.;19 15563 +(FILECREATED "23-Mar-2025 17:09:00" {WMEDLEY}tedit>TEDIT-ABBREV.;20 15864 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.ABBREV.PARSE \TEDIT.ABBREV.EXPAND \TEDIT.TRY.ABBREV) - (VARS TEDIT-ABBREVCOMS) + :CHANGES-TO (FNS \TEDIT.ABBREV.PARSE) - :PREVIOUS-DATE "11-Mar-2025 23:30:40" {WMEDLEY}tedit>TEDIT-ABBREV.;12) + :PREVIOUS-DATE "20-Mar-2025 22:21:20" {WMEDLEY}tedit>TEDIT-ABBREV.;19) (PRETTYCOMPRINT TEDIT-ABBREVCOMS) @@ -97,7 +96,8 @@ else (TEDIT.PROMPTPRINT TSTREAM "No abbreviation to expand" T]) (\TEDIT.ABBREV.PARSE - [LAMBDA (TSTREAM SEL) (* ; "Edited 20-Mar-2025 22:21 by rmk") + [LAMBDA (TSTREAM SEL) (* ; "Edited 23-Mar-2025 17:08 by rmk") + (* ; "Edited 20-Mar-2025 22:21 by rmk") (* ;; "This produces candidate abbreviation-strings by parsing the characters around the point. Each candidate is returned as a list (KEY STARTCH# LEN).") @@ -147,6 +147,10 @@ (FGETSEL SEL CH#) LEN))) (SETQ FIRST# (\TEDIT.WORD.FIRST TSTREAM PT#)) + (SETQ LEN (ADD1 (IDIFFERENCE PT# FIRST#))) + (CL:UNLESS (EQ LEN 1) (* ; "Already there") + (push CANDIDATES (LIST (TEDIT.SEL.AS.STRING TSTREAM FIRST# LEN) + FIRST# LEN))) (SETQ LAST# (\TEDIT.WORD.LAST TSTREAM FIRST#)) (SETQ LEN (ADD1 (IDIFFERENCE LAST# FIRST#))) (CL:UNLESS (EQ LEN 1) (* ; "Already there") @@ -301,6 +305,6 @@ ("DATE" . \TEDIT.EXPAND.DATE) (">>DATE<<" . \TEDIT.EXPAND.DATE))) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3014 14219 (\TEDIT.ABBREV.EXPAND 3024 . 5135) (\TEDIT.ABBREV.PARSE 5137 . 11921) ( -\TEDIT.EXPAND.DATE 11923 . 12556) (\TEDIT.TRY.ABBREV 12558 . 14217))))) + (FILEMAP (NIL (2933 14520 (\TEDIT.ABBREV.EXPAND 2943 . 5054) (\TEDIT.ABBREV.PARSE 5056 . 12222) ( +\TEDIT.EXPAND.DATE 12224 . 12857) (\TEDIT.TRY.ABBREV 12859 . 14518))))) STOP diff --git a/library/tedit/TEDIT-ABBREV.LCOM b/library/tedit/TEDIT-ABBREV.LCOM index 899cc5884289fe97a2fd7ab92db72223c8d566ac..787808832e90b0574be7dccf688fc6307b3940eb 100644 GIT binary patch delta 586 zcmZvZ%SyvQ6o!rBrBy_%3kfa`anS~Bn4Fo(G+7zb)P~+Pi5Jj~P*LozxD|W^YjERA z_wKsY_t3Wx^Z}e!gBCl>|D1om`Iv|NUH;~9nHC!--69g?UMV17ShatGZzX%%bU#@e;_#1+fwNb;FH}C=P?>HZU~d z_n>;M1& delta 570 zcmZvYKTE?<6vatJXrwsUqTqDNU|XS&+;`tg^5Wua8nw_in#4bYi=cy!;_PRzK3tsi z8wj2KDt-!a)wH!z)b*Tu&iQd4>QD8%lNGnsKf7*mmrLM0P)d)?wMDCNTHJPX zrrYf_K4S67z8-YIyi{siM>@@5;J&rZAkNWKNNy;`J0;|! z4+|Hpx@jyvj@}mUt!1Hnh>}61a}d5V+ODn%5x^kY8*d4cKkmJ~wn>U+c*jZFVLhGY zK)ySLVq8mEWl>?lGOQEKj?GUEqOlbh%db)UQ(R znQgmP;X+M2IZbdC=LlJn=77HUZzD?YFEomvn5ml2@?{Atedit>TEDIT-BUTTONS.;222 124551 +(FILECREATED "24-Mar-2025 09:26:13" {WMEDLEY}tedit>TEDIT-BUTTONS.;223 124611 :EDIT-BY rmk @@ -1885,7 +1885,7 @@ XKERN _ 0]) (MB.FIELD.INSURETYPE - [LAMBDA (FIELDTYPE STR TSTREAM) (* ; "Edited 23-Mar-2025 15:01 by rmk") + [LAMBDA (FIELDTYPE STR TSTREAM) (* ; "Edited 24-Mar-2025 09:26 by rmk") (* ; "Edited 4-Dec-2024 20:09 by rmk") (* ; "Edited 8-Nov-2024 08:37 by rmk") (* ; "Edited 29-Sep-2024 21:52 by rmk") @@ -1907,7 +1907,8 @@ ((TEXT STRING) (* ;  "String should be a string, not NIL atom") (SETQ VAL (OR STR '**EMPTY**))) - (TRIMMEDSTRING (SETQ VAL (OR TRIMMED '**EMPTY**))) + (TRIMMEDSTRING (CL:UNLESS (STREQUAL "" TRIMMED) + (SETQ VAL TRIMMED))) ((NUMBER PICAS POSITIVENUMBER SIGNEDNUMBER CARDINAL) (SETQ TRIMMED (MKATOM TRIMMED)) (if (OR (EQ 0 (NCHARS TRIMMED)) @@ -1975,10 +1976,10 @@ MB.NWAY.DISPLAYFN 55447 . 56310) (MB.NWAY.WHENOPERATEDONFN 56312 . 58502) (MB.NW 72404 . 74375) (MB.NWAY.ADDITEM 74377 . 78239) (MB.NWAY.FINDSUBOBJ 78241 . 78755) (MB.NWAY.SETSTATEFN 78757 . 80059)) (80140 92027 (MB.TOGGLE.CREATE 80150 . 81145) (MB.TOGGLE.DISPLAYFN 81147 . 82630) ( MB.TOGGLE.INIT 82632 . 84431) (MB.SET.TOGGLE 84433 . 85634) (MB.TOGGLE.SETSTATEFN 85636 . 86476) ( -MB.TOGGLE.BUTTONEVENTINFN 86478 . 90682) (MB.TOGGLE.WHENOPERATEDONFN 90684 . 92025)) (92108 124472 ( +MB.TOGGLE.BUTTONEVENTINFN 86478 . 90682) (MB.TOGGLE.WHENOPERATEDONFN 90684 . 92025)) (92108 124532 ( MB.FIELD.CREATE 92118 . 97569) (MB.FIELD.DISPLAYFN 97571 . 98362) (MB.FIELD.IMAGEBOXFN 98364 . 99846) (MB.FIELD.PREFIXCREATE 99848 . 103784) (MB.FIELD.SUFFIXCREATE 103786 . 105446) (MB.FIELD.INIT 105448 . 107215) (MB.FIELD.WHENOPERATEDONFN 107217 . 108488) (MB.FIELD.GETSTATEFN 108490 . 112424) ( MB.FIELD.SETSTATEFN 112426 . 117121) (MB.FIELD.BUTTONEVENTINFN 117123 . 119428) (MB.FIELD.SIZEFN -119430 . 119670) (MB.FIELD.INSURETYPE 119672 . 124470))))) +119430 . 119670) (MB.FIELD.INSURETYPE 119672 . 124530))))) STOP diff --git a/library/tedit/TEDIT-BUTTONS.LCOM b/library/tedit/TEDIT-BUTTONS.LCOM index 4c497af1ec4b81c4a0688153a84dc0d8ae781389..5bc86b10f1783471bb0abfe0424493efcb81e029 100644 GIT binary patch delta 637 zcmZuu%W4!s6rCBti0+b&2jI2o6& z%=Frgn}8dM^8tIjV0bmHupNzrVeax zm3CJNJKDP6WJkvz=DzJOFE9|wyJY&d`DcIexYcM}63-jvT&==%rF?(TTl}`PTV>%t zY;w|E52rs4oaW`P;`7Prm-6)8^^u1sS_Y9`(V>iUaN9-lQ0OcH^K7JkC{zK~rAT#H zC4Lr2Fz#N=89y(j91o%m1!i|qE9WXpa-FLv)u5gSKTCaKu3e5~B$Ga3MY}DH-C?_JKFF9ADu`0kiBS6@ zoe)yfZ~n)(=~;h|q1G&a9SWGStU;=zpRJ|QV;Ptg%Q%1@=F&1d<)s+ky5`~TGCKD_ kDJx%&Z{Kh!EWCJyo!!^i#Lk=Tr_c5*xDKr8r}6iNzul3i7ytkO delta 602 zcmZutv2N2)6iv(!wM#3g#8RO{rZy$W?>)cxxkwc+&MP*=c4WVzR$^(T3Pp&fYD<@@ za>K|(>!nkNE-VaG5zI&|4EzEgfW#LtAnYcgfVjhz?z!ild(ZuTVthR@Ua#I@^uS}2My!vnNV4*@msKxnUzx?Ci`k7HGU6W5sc}x~*u#~+#6ceZ3 z`^qIa_;Se0>1TO<@$-{6Q81=^MZSN@_NPm87BTTetCp|tYEQL0V2(iWNa`p669l2_ z$v6Sy459Xl!i`!AjETSN+`*ViIF|j@7}T**C}$tisj6ebjY3yyP|gvkpo!eZSOb(c zvWs-)CUM3zA{tO}9L2Xm?Cf1S1JV$`o5lL!WrWeuz1i#$No|T`Eoeq0Ft}zM2WBc$7&2&0=1e7I(n^E%b%Vbka5coWgCQ$ zf5uHZ9G}0Mci3pXurQLe?JLFX+mSR(E4$O5H3ZKd_HQkjm|H-79+X(9qPvT&-X7Mm g-P`T%b@w;1_2T))=1z4o{{;J!FvJIM`yVU60J=n-0ssI2 From 51587966a59ce7ea84e7be5569a15a0486313a72 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Mon, 24 Mar 2025 11:32:46 -0700 Subject: [PATCH 19/26] Fix initial window size --- library/tedit/TEDIT-WINDOW | 87 +++++++++++++++++--------------- library/tedit/TEDIT-WINDOW.LCOM | Bin 65870 -> 65910 bytes 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/library/tedit/TEDIT-WINDOW b/library/tedit/TEDIT-WINDOW index a6e9c7263..33b453c17 100644 --- a/library/tedit/TEDIT-WINDOW +++ b/library/tedit/TEDIT-WINDOW @@ -1,10 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "21-Mar-2025 23:43:50" {WMEDLEY}tedit>TEDIT-WINDOW.;783 236238 +(FILECREATED "24-Mar-2025 11:28:19" {WMEDLEY}TEDIT>TEDIT-WINDOW.;785 236419 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.UPDATE.TITLE) + :CHANGES-TO (FNS \TEDIT.WINDOW.GETREGION \TEDIT.UPDATE.TITLE) :PREVIOUS-DATE "18-Mar-2025 21:56:50" {WMEDLEY}tedit>TEDIT-WINDOW.;782) @@ -457,7 +457,8 @@ WINDOW]) (\TEDIT.WINDOW.GETREGION - [LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 18-Mar-2025 21:52 by rmk") + [LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 24-Mar-2025 11:28 by rmk") + (* ; "Edited 18-Mar-2025 21:52 by rmk") (* ; "Edited 19-Feb-2025 16:48 by rmk") (* ; "Edited 18-Feb-2025 10:09 by rmk") (LET ((TEXTOBJ (GETTSTR TSTREAM TEXTOBJ)) @@ -485,13 +486,15 @@ (SETQ CHNO (FGETLD L LCHARLIM)) (FGETLD L LHEIGHT] (* ; "36 for right margin selection") - (add WIDTH \TEDIT.LINEREGION.WIDTH 36 (CL:IF (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE) - 0 - \TEDIT.OP.WIDTH)) - (add HEIGHT PHEIGHT (TIMES 3 WBorder) + (add WIDTH \TEDIT.LINEREGION.WIDTH 36 (ADD1 (TIMES 2 WBorder) + 1) + (CL:IF (FGETTOBJ TEXTOBJ TXTNOTSPLITTABLE) + 0 + \TEDIT.OP.WIDTH)) + (add HEIGHT PHEIGHT (ADD1 (TIMES 2 WBorder)) (FONTPROP WindowTitleDisplayStream 'HEIGHT)) (GETBOXREGION WIDTH HEIGHT) - else (GETREGION WIDTH HEIGHT]) + else (GETREGION 200 100]) (\TEDIT.WINDOW.SETUP [LAMBDA (PANE TSTREAM PROPS AFTERPANE LCHAR1) (* ; "Edited 25-Nov-2024 20:10 by rmk") @@ -3712,38 +3715,38 @@ (RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _ TEDIT.ICON.TITLE.REGION)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (18633 19529 (TEDIT.DEFER.UPDATES 18643 . 19527)) (19530 44992 (\TEDIT.WINDOW.CREATE -19540 . 26152) (\TEDIT.WINDOW.GETREGION 26154 . 28675) (\TEDIT.WINDOW.SETUP 28677 . 32790) ( -\TEDIT.MINIMAL.WINDOW.SETUP 32792 . 40994) (\TEDIT.CLEARPANE 40996 . 41713) (\TEDIT.FILL.PANES 41715 - . 44990)) (44993 67900 (\TEDIT.CURSORMOVEDFN 45003 . 49876) (\TEDIT.CURSOROUTFN 49878 . 50323) ( -\TEDIT.ACTIVE.WINDOWP 50325 . 51376) (\TEDIT.EXPANDFN 51378 . 51941) (\TEDIT.MAINW 51943 . 53223) ( -\TEDIT.MAINSTREAM 53225 . 53492) (\TEDIT.PRIMARYPANE 53494 . 54264) (\TEDIT.PANELIST 54266 . 54762) ( -\TEDIT.NEWREGIONFN 54764 . 57280) (\TEDIT.SET.WINDOW.EXTENT 57282 . 62536) (\TEDIT.SHRINK.ICONCREATE -62538 . 65271) (\TEDIT.SHRINKFN 65273 . 65682) (\TEDIT.PANEREGION 65684 . 67898)) (67932 99396 ( -\TEDIT.BUTTONEVENTFN 67942 . 80504) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80506 . 87229) ( -\TEDIT.BUTTONEVENTFN.GETOPERATION 87231 . 89073) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 89075 . 92312) ( -\TEDIT.BUTTONEVENTFN.INACTIVE 92314 . 94656) (\TEDIT.BUTTONEVENTFN.INTITLE 94658 . 96493) ( -\TEDIT.COPYINSERTFN 96495 . 97627) (\TEDIT.FOREIGN.COPY 97629 . 99394)) (99397 116506 ( -\TEDIT.PANE.SPLIT 99407 . 103886) (\TEDIT.SPLITW 103888 . 111347) (\TEDIT.UNSPLITW 111349 . 115163) ( -\TEDIT.LINKPANES 115165 . 115928) (\TEDIT.UNLINKPANE 115930 . 116504)) (117863 118754 (TEDITWINDOWP -117873 . 118752)) (118791 121894 (TEDIT.GETINPUT 118801 . 121244) (\TEDIT.MAKEFILENAME 121246 . 121892 -)) (121943 130244 (TEDIT.PROMPTWINDOW 121953 . 122267) (TEDIT.PROMPTPRINT 122269 . 124896) ( -TEDIT.PROMPTCLEAR 124898 . 126617) (TEDIT.PROMPTFLASH 126619 . 128551) (\TEDIT.PROMPT.PAGEFULLFN -128553 . 130242)) (130482 140123 (\TEDIT.FILENAME 130492 . 131264) (\TEDIT.DEFAULT.TITLE 131266 . -133645) (\TEDIT.WINDOW.TITLE 133647 . 135816) (\TEDIT.LIKELY.FILENAME 135818 . 137605) ( -\TEDIT.UPDATE.TITLE 137607 . 140121)) (140166 148694 (TEDIT.DEACTIVATE.WINDOW 140176 . 146294) ( -\TEDIT.RESHAPEFN 146296 . 148466) (\TEDIT.REPAINTFN 148468 . 148692)) (148695 191074 (\TEDIT.SCROLLFN -148705 . 150950) (\TEDIT.SCROLLCH.TOP 150952 . 153063) (\TEDIT.SCROLLCH.BOTTOM 153065 . 157395) ( -\TEDIT.SCROLLUP 157397 . 163014) (\TEDIT.TOPLINE.YTOP 163016 . 164685) (\TEDIT.SCROLLDOWN 164687 . -171617) (\TEDIT.SCROLL.CARET 171619 . 174457) (\TEDIT.VISIBLECARETP 174459 . 176753) ( -\TEDIT.VISIBLECHARP 176755 . 177846) (\TEDIT.BITMAPLINES 177848 . 181768) (\TEDIT.SETPANE.TOPLINE -181770 . 182561) (\TEDIT.SHIFTLINES 182563 . 191072)) (191075 201944 (\TEDIT.ONSCREEN? 191085 . 195636 -) (\TEDIT.ONSCREEN.REGION 195638 . 199289) (\TEDIT.AFTERMOVEFN 199291 . 200188) (OFFSCREENP 200190 . -201942)) (201986 204603 (\TEDIT.PROCIDLEFN 201996 . 203533) (\TEDIT.PROCENTRYFN 203535 . 203980) ( -\TEDIT.PROCEXITFN 203982 . 204601)) (204682 217836 (\TEDIT.DOWNCARET 204692 . 205485) ( -\TEDIT.FLASHCARET 205487 . 207598) (\TEDIT.UPCARET 207600 . 208704) (TEDIT.NORMALIZECARET 208706 . -211924) (\TEDIT.SETCARET 211926 . 217206) (\TEDIT.CARET 217208 . 217834)) (217870 230197 ( -TEDIT.ADD.MENUITEM 217880 . 220171) (TEDIT.DEFAULT.MENUFN 220173 . 227409) (TEDIT.REMOVE.MENUITEM -227411 . 228408) (\TEDIT.CREATEMENU 228410 . 228975) (\TEDIT.MENU.WHENHELDFN 228977 . 229882) ( -\TEDIT.MENU.WHENSELECTEDFN 229884 . 230195))))) + (FILEMAP (NIL (18657 19553 (TEDIT.DEFER.UPDATES 18667 . 19551)) (19554 45173 (\TEDIT.WINDOW.CREATE +19564 . 26176) (\TEDIT.WINDOW.GETREGION 26178 . 28856) (\TEDIT.WINDOW.SETUP 28858 . 32971) ( +\TEDIT.MINIMAL.WINDOW.SETUP 32973 . 41175) (\TEDIT.CLEARPANE 41177 . 41894) (\TEDIT.FILL.PANES 41896 + . 45171)) (45174 68081 (\TEDIT.CURSORMOVEDFN 45184 . 50057) (\TEDIT.CURSOROUTFN 50059 . 50504) ( +\TEDIT.ACTIVE.WINDOWP 50506 . 51557) (\TEDIT.EXPANDFN 51559 . 52122) (\TEDIT.MAINW 52124 . 53404) ( +\TEDIT.MAINSTREAM 53406 . 53673) (\TEDIT.PRIMARYPANE 53675 . 54445) (\TEDIT.PANELIST 54447 . 54943) ( +\TEDIT.NEWREGIONFN 54945 . 57461) (\TEDIT.SET.WINDOW.EXTENT 57463 . 62717) (\TEDIT.SHRINK.ICONCREATE +62719 . 65452) (\TEDIT.SHRINKFN 65454 . 65863) (\TEDIT.PANEREGION 65865 . 68079)) (68113 99577 ( +\TEDIT.BUTTONEVENTFN 68123 . 80685) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80687 . 87410) ( +\TEDIT.BUTTONEVENTFN.GETOPERATION 87412 . 89254) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 89256 . 92493) ( +\TEDIT.BUTTONEVENTFN.INACTIVE 92495 . 94837) (\TEDIT.BUTTONEVENTFN.INTITLE 94839 . 96674) ( +\TEDIT.COPYINSERTFN 96676 . 97808) (\TEDIT.FOREIGN.COPY 97810 . 99575)) (99578 116687 ( +\TEDIT.PANE.SPLIT 99588 . 104067) (\TEDIT.SPLITW 104069 . 111528) (\TEDIT.UNSPLITW 111530 . 115344) ( +\TEDIT.LINKPANES 115346 . 116109) (\TEDIT.UNLINKPANE 116111 . 116685)) (118044 118935 (TEDITWINDOWP +118054 . 118933)) (118972 122075 (TEDIT.GETINPUT 118982 . 121425) (\TEDIT.MAKEFILENAME 121427 . 122073 +)) (122124 130425 (TEDIT.PROMPTWINDOW 122134 . 122448) (TEDIT.PROMPTPRINT 122450 . 125077) ( +TEDIT.PROMPTCLEAR 125079 . 126798) (TEDIT.PROMPTFLASH 126800 . 128732) (\TEDIT.PROMPT.PAGEFULLFN +128734 . 130423)) (130663 140304 (\TEDIT.FILENAME 130673 . 131445) (\TEDIT.DEFAULT.TITLE 131447 . +133826) (\TEDIT.WINDOW.TITLE 133828 . 135997) (\TEDIT.LIKELY.FILENAME 135999 . 137786) ( +\TEDIT.UPDATE.TITLE 137788 . 140302)) (140347 148875 (TEDIT.DEACTIVATE.WINDOW 140357 . 146475) ( +\TEDIT.RESHAPEFN 146477 . 148647) (\TEDIT.REPAINTFN 148649 . 148873)) (148876 191255 (\TEDIT.SCROLLFN +148886 . 151131) (\TEDIT.SCROLLCH.TOP 151133 . 153244) (\TEDIT.SCROLLCH.BOTTOM 153246 . 157576) ( +\TEDIT.SCROLLUP 157578 . 163195) (\TEDIT.TOPLINE.YTOP 163197 . 164866) (\TEDIT.SCROLLDOWN 164868 . +171798) (\TEDIT.SCROLL.CARET 171800 . 174638) (\TEDIT.VISIBLECARETP 174640 . 176934) ( +\TEDIT.VISIBLECHARP 176936 . 178027) (\TEDIT.BITMAPLINES 178029 . 181949) (\TEDIT.SETPANE.TOPLINE +181951 . 182742) (\TEDIT.SHIFTLINES 182744 . 191253)) (191256 202125 (\TEDIT.ONSCREEN? 191266 . 195817 +) (\TEDIT.ONSCREEN.REGION 195819 . 199470) (\TEDIT.AFTERMOVEFN 199472 . 200369) (OFFSCREENP 200371 . +202123)) (202167 204784 (\TEDIT.PROCIDLEFN 202177 . 203714) (\TEDIT.PROCENTRYFN 203716 . 204161) ( +\TEDIT.PROCEXITFN 204163 . 204782)) (204863 218017 (\TEDIT.DOWNCARET 204873 . 205666) ( +\TEDIT.FLASHCARET 205668 . 207779) (\TEDIT.UPCARET 207781 . 208885) (TEDIT.NORMALIZECARET 208887 . +212105) (\TEDIT.SETCARET 212107 . 217387) (\TEDIT.CARET 217389 . 218015)) (218051 230378 ( +TEDIT.ADD.MENUITEM 218061 . 220352) (TEDIT.DEFAULT.MENUFN 220354 . 227590) (TEDIT.REMOVE.MENUITEM +227592 . 228589) (\TEDIT.CREATEMENU 228591 . 229156) (\TEDIT.MENU.WHENHELDFN 229158 . 230063) ( +\TEDIT.MENU.WHENSELECTEDFN 230065 . 230376))))) STOP diff --git a/library/tedit/TEDIT-WINDOW.LCOM b/library/tedit/TEDIT-WINDOW.LCOM index 60a64bd8c9077ce2abca58c00214c0b0ce7f889c..fd48679f9b4279a608c753d4cbf734b751a600fb 100644 GIT binary patch delta 274 zcmX@t#PY3)WkQ6oiLP&Ak*<+}k*R{Ap_P$^m7(RtY!&ekR~OF^J20sm?&;^^AFgL@ zZecocndxL>cEO1+JY2D8R8pu8_jPsgagD6C$;nJAN-U~`7=dY!f|0SAiJ|4>Qbu)< zft#l?&fsKhovg<_h4Ibg!`z#La+t!Uu4Ui2;&IB#AnU`ztd;}@Ah;6g<#Yum6)wXD z5<9_lCCbx_3&a%2IgyhBVKHbJTbL=hyM_e0x_kQjDHxki-ovw3)XY@D&EGG?#WmPD T$TJ|sKS;sY#B_5X?}5(%4a!oN delta 205 zcmey?#B#2QWkQ6op{{RYk*<+}k*R`_v6YFjm8rqRY?aCX8O0clCoVIcyn~Tv;%iS) zEXtG=CckCW;4lX2Gcz)_m|V%IzIg}ZL{7%a$zI%37#~f(&%N2rkrP~3qCCC0KuiG`&7fgyZld7s8WQB{?&kH*I?%$&wvpBAO&M%^Ud3M4}1myz2!We From bdd92ecf49fbc48acd97ac8665950cca9ea1e910 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Mon, 24 Mar 2025 11:33:40 -0700 Subject: [PATCH 20/26] Update TEDIT-RELEASENOTES.TEDIT --- library/tedit/TEDIT-RELEASENOTES.TEDIT | Bin 36057 -> 36105 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/library/tedit/TEDIT-RELEASENOTES.TEDIT b/library/tedit/TEDIT-RELEASENOTES.TEDIT index 068ecd54a67736890729f0a6fb50178d590bb26d..442d59266204e977d9c49dbf5fc990b4fa177617 100644 GIT binary patch delta 3526 zcmZveNoW;85Qe)aG4A_9qM}jbnz-*GiW{!rii!&o%@dwW6b&!WB^hwTfCh06qM#lG zFA-FN9z^jf9=xe|5JV6>dJ#N$u>YE=N_UNcy!3qY*V@&c_vLQXaW8t-SvhW9xuwwD zRA{PgJbd^}p;T;aDV}PsJ=%Drc%s;HuKQ-?tW!2hUZ0(2P4|zpe{J6igP+I@PX?F9 z+KQy1R41R?OUDQD`~FVVkbJv7vL99!MmG6bny`qL&H?a9U|96SqPP2p;x!d zHN$+%eMFP`a+)cR8qw7%ayF_`O=d3Q6!SlL1&D(vFP8?k{!N zj>w3q#KLK!#Y|ihX{e=47}NrIv7>{&!sTph7*LVOi2UOTi) zGoYzMzHVTX+2`A7TBV3|irrh58cPx;;5a>c8b3*mw{hpjAjfEKyM-pDl zCbOArjx6)9fCVRk9C2C!CK^uE{>+dWhDDF(?)Hm|t*z*O*|xPRM)Cvk9^t7Ho*{Urycyu+ zzHz@27ht~z*EEoWgRW?&F=og7@@)VpV=fPwNtfURfX3Zd9P)iYv0eiiB=|rSSDhOf z-^n}Q1`?WGU$IpyR%p=S1DH}V+(bB~D=>8$r`0_2ZT?$t5Elv>AUKgrZM1f>TZ3I1 zoWzj{I*|AP$aLdLA|;1p8E=f+2#XhV!i!LJ0dp?ioqG0$R@H`b5lb7Pc>7u#*SgaZYD7hH`|%8 zWFZ5Q&W_{bg4$;yY>7y!io z7!damghBGZwW3V{E1SoOEcX>?TJ8$7xT0g3lK*PVW$h+ENLRE(S}oi2-j|?F;)SlH zK8`f`5_}z6qrnmlf?mTUxPbts`z9`m4UP^T;%C03$~^>ElB=NSpP!T?nFzr!N+)5o zl7UG6FyS5Q1dwkq*yf#D5&*==osFx$3C>+v0rOV@i*8GVA8$h%^G z7V_2Xa=MdBu>EA0)b!?K|9LyR4>LpzKPk<~obu)j47N?8)W zWi*A+AtpsDJDWkSD2ZB`NX!jPV1y(W0C<}dbpUX+E=8LMp!!LMlqdi+v;cYKK4e8b z2ay`MsD74A!U7V>isk@>BKX0(pmiX2f70o?RwM+VZvpTsurB~4J8Xi?2zSObu|`I4 zhzX?!s|F@6^kjp+cN0n4`tDFaB<*xq-9y?O6e0wUsMv2ctm)7X_{sW~kxt%*#?fFfqPTu)8kkIV zA}V68c5+mMBO08?kqJ7G_yEZ^X+Vi{OQ2}>6-aGBgX0?XFmUnH4m@O11h!KFvtNTC zRm9z^6?z2hb*+dm_ypBt%6sW65T?xs&cu5AnGTlRG$;mVsFqD+vsR{r`k!hVw8mC5 zVK<8yh?|2g|iDz?D}!{cHI zv0zuht%u5%;~5$tnSNzbv@!F2;O5BAQow8@KqFB+6(6+ZwgNV|Ze5k*FM5cJam^gh zdga6H2>{}M3W)m=ghBGZwW41EE1SoOZ1NRoTILF~xT0g3lK*PV4ecg7NCR3Tt(NV1 z?@Q1o@j_S9L`Tl}61)Iy*I>N{L9byF+&}=0zKM%sgQJ5V@rW-ebw7eD$yG4^pP!T? znFyhA^^fEhb}N!UOn8Te0OSn@+k99{0)QBqvvJcm!MW>I!2DIfqT90T)tKT=B0IJo T*}3uTB>dJeXsukb7FPs From 29a2fcea1f8e7d33a2d21049de774d02759639f1 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Mon, 24 Mar 2025 12:08:23 -0700 Subject: [PATCH 21/26] Fix GETREGION call for empty document --- library/tedit/TEDIT-WINDOW | 75 ++++++++++++++++---------------- library/tedit/TEDIT-WINDOW.LCOM | Bin 65910 -> 65953 bytes 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/library/tedit/TEDIT-WINDOW b/library/tedit/TEDIT-WINDOW index 33b453c17..85141f62b 100644 --- a/library/tedit/TEDIT-WINDOW +++ b/library/tedit/TEDIT-WINDOW @@ -1,6 +1,6 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "24-Mar-2025 11:28:19" {WMEDLEY}TEDIT>TEDIT-WINDOW.;785 236419 +(FILECREATED "24-Mar-2025 11:30:23" {WMEDLEY}tedit>TEDIT-WINDOW.;786 236503 :EDIT-BY rmk @@ -457,7 +457,7 @@ WINDOW]) (\TEDIT.WINDOW.GETREGION - [LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 24-Mar-2025 11:28 by rmk") + [LAMBDA (TSTREAM REGIONTYPE PHEIGHT) (* ; "Edited 24-Mar-2025 11:29 by rmk") (* ; "Edited 18-Mar-2025 21:52 by rmk") (* ; "Edited 19-Feb-2025 16:48 by rmk") (* ; "Edited 18-Feb-2025 10:09 by rmk") @@ -494,7 +494,8 @@ (add HEIGHT PHEIGHT (ADD1 (TIMES 2 WBorder)) (FONTPROP WindowTitleDisplayStream 'HEIGHT)) (GETBOXREGION WIDTH HEIGHT) - else (GETREGION 200 100]) + else (GETREGION (IMAX 200 (ADD1 (TIMES 2 WBorder))) + (IMAX 100 (ADD1 (TIMES 2 WBorder]) (\TEDIT.WINDOW.SETUP [LAMBDA (PANE TSTREAM PROPS AFTERPANE LCHAR1) (* ; "Edited 25-Nov-2024 20:10 by rmk") @@ -3715,38 +3716,38 @@ (RPAQ? TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON _ TEDITICON MASK _ TEDITMASK TITLEREG _ TEDIT.ICON.TITLE.REGION)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (18657 19553 (TEDIT.DEFER.UPDATES 18667 . 19551)) (19554 45173 (\TEDIT.WINDOW.CREATE -19564 . 26176) (\TEDIT.WINDOW.GETREGION 26178 . 28856) (\TEDIT.WINDOW.SETUP 28858 . 32971) ( -\TEDIT.MINIMAL.WINDOW.SETUP 32973 . 41175) (\TEDIT.CLEARPANE 41177 . 41894) (\TEDIT.FILL.PANES 41896 - . 45171)) (45174 68081 (\TEDIT.CURSORMOVEDFN 45184 . 50057) (\TEDIT.CURSOROUTFN 50059 . 50504) ( -\TEDIT.ACTIVE.WINDOWP 50506 . 51557) (\TEDIT.EXPANDFN 51559 . 52122) (\TEDIT.MAINW 52124 . 53404) ( -\TEDIT.MAINSTREAM 53406 . 53673) (\TEDIT.PRIMARYPANE 53675 . 54445) (\TEDIT.PANELIST 54447 . 54943) ( -\TEDIT.NEWREGIONFN 54945 . 57461) (\TEDIT.SET.WINDOW.EXTENT 57463 . 62717) (\TEDIT.SHRINK.ICONCREATE -62719 . 65452) (\TEDIT.SHRINKFN 65454 . 65863) (\TEDIT.PANEREGION 65865 . 68079)) (68113 99577 ( -\TEDIT.BUTTONEVENTFN 68123 . 80685) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80687 . 87410) ( -\TEDIT.BUTTONEVENTFN.GETOPERATION 87412 . 89254) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 89256 . 92493) ( -\TEDIT.BUTTONEVENTFN.INACTIVE 92495 . 94837) (\TEDIT.BUTTONEVENTFN.INTITLE 94839 . 96674) ( -\TEDIT.COPYINSERTFN 96676 . 97808) (\TEDIT.FOREIGN.COPY 97810 . 99575)) (99578 116687 ( -\TEDIT.PANE.SPLIT 99588 . 104067) (\TEDIT.SPLITW 104069 . 111528) (\TEDIT.UNSPLITW 111530 . 115344) ( -\TEDIT.LINKPANES 115346 . 116109) (\TEDIT.UNLINKPANE 116111 . 116685)) (118044 118935 (TEDITWINDOWP -118054 . 118933)) (118972 122075 (TEDIT.GETINPUT 118982 . 121425) (\TEDIT.MAKEFILENAME 121427 . 122073 -)) (122124 130425 (TEDIT.PROMPTWINDOW 122134 . 122448) (TEDIT.PROMPTPRINT 122450 . 125077) ( -TEDIT.PROMPTCLEAR 125079 . 126798) (TEDIT.PROMPTFLASH 126800 . 128732) (\TEDIT.PROMPT.PAGEFULLFN -128734 . 130423)) (130663 140304 (\TEDIT.FILENAME 130673 . 131445) (\TEDIT.DEFAULT.TITLE 131447 . -133826) (\TEDIT.WINDOW.TITLE 133828 . 135997) (\TEDIT.LIKELY.FILENAME 135999 . 137786) ( -\TEDIT.UPDATE.TITLE 137788 . 140302)) (140347 148875 (TEDIT.DEACTIVATE.WINDOW 140357 . 146475) ( -\TEDIT.RESHAPEFN 146477 . 148647) (\TEDIT.REPAINTFN 148649 . 148873)) (148876 191255 (\TEDIT.SCROLLFN -148886 . 151131) (\TEDIT.SCROLLCH.TOP 151133 . 153244) (\TEDIT.SCROLLCH.BOTTOM 153246 . 157576) ( -\TEDIT.SCROLLUP 157578 . 163195) (\TEDIT.TOPLINE.YTOP 163197 . 164866) (\TEDIT.SCROLLDOWN 164868 . -171798) (\TEDIT.SCROLL.CARET 171800 . 174638) (\TEDIT.VISIBLECARETP 174640 . 176934) ( -\TEDIT.VISIBLECHARP 176936 . 178027) (\TEDIT.BITMAPLINES 178029 . 181949) (\TEDIT.SETPANE.TOPLINE -181951 . 182742) (\TEDIT.SHIFTLINES 182744 . 191253)) (191256 202125 (\TEDIT.ONSCREEN? 191266 . 195817 -) (\TEDIT.ONSCREEN.REGION 195819 . 199470) (\TEDIT.AFTERMOVEFN 199472 . 200369) (OFFSCREENP 200371 . -202123)) (202167 204784 (\TEDIT.PROCIDLEFN 202177 . 203714) (\TEDIT.PROCENTRYFN 203716 . 204161) ( -\TEDIT.PROCEXITFN 204163 . 204782)) (204863 218017 (\TEDIT.DOWNCARET 204873 . 205666) ( -\TEDIT.FLASHCARET 205668 . 207779) (\TEDIT.UPCARET 207781 . 208885) (TEDIT.NORMALIZECARET 208887 . -212105) (\TEDIT.SETCARET 212107 . 217387) (\TEDIT.CARET 217389 . 218015)) (218051 230378 ( -TEDIT.ADD.MENUITEM 218061 . 220352) (TEDIT.DEFAULT.MENUFN 220354 . 227590) (TEDIT.REMOVE.MENUITEM -227592 . 228589) (\TEDIT.CREATEMENU 228591 . 229156) (\TEDIT.MENU.WHENHELDFN 229158 . 230063) ( -\TEDIT.MENU.WHENSELECTEDFN 230065 . 230376))))) + (FILEMAP (NIL (18657 19553 (TEDIT.DEFER.UPDATES 18667 . 19551)) (19554 45257 (\TEDIT.WINDOW.CREATE +19564 . 26176) (\TEDIT.WINDOW.GETREGION 26178 . 28940) (\TEDIT.WINDOW.SETUP 28942 . 33055) ( +\TEDIT.MINIMAL.WINDOW.SETUP 33057 . 41259) (\TEDIT.CLEARPANE 41261 . 41978) (\TEDIT.FILL.PANES 41980 + . 45255)) (45258 68165 (\TEDIT.CURSORMOVEDFN 45268 . 50141) (\TEDIT.CURSOROUTFN 50143 . 50588) ( +\TEDIT.ACTIVE.WINDOWP 50590 . 51641) (\TEDIT.EXPANDFN 51643 . 52206) (\TEDIT.MAINW 52208 . 53488) ( +\TEDIT.MAINSTREAM 53490 . 53757) (\TEDIT.PRIMARYPANE 53759 . 54529) (\TEDIT.PANELIST 54531 . 55027) ( +\TEDIT.NEWREGIONFN 55029 . 57545) (\TEDIT.SET.WINDOW.EXTENT 57547 . 62801) (\TEDIT.SHRINK.ICONCREATE +62803 . 65536) (\TEDIT.SHRINKFN 65538 . 65947) (\TEDIT.PANEREGION 65949 . 68163)) (68197 99661 ( +\TEDIT.BUTTONEVENTFN 68207 . 80769) (\TEDIT.BUTTONEVENTFN.DOOPERATION 80771 . 87494) ( +\TEDIT.BUTTONEVENTFN.GETOPERATION 87496 . 89338) (\TEDIT.BUTTONEVENTFN.CURSEL.INIT 89340 . 92577) ( +\TEDIT.BUTTONEVENTFN.INACTIVE 92579 . 94921) (\TEDIT.BUTTONEVENTFN.INTITLE 94923 . 96758) ( +\TEDIT.COPYINSERTFN 96760 . 97892) (\TEDIT.FOREIGN.COPY 97894 . 99659)) (99662 116771 ( +\TEDIT.PANE.SPLIT 99672 . 104151) (\TEDIT.SPLITW 104153 . 111612) (\TEDIT.UNSPLITW 111614 . 115428) ( +\TEDIT.LINKPANES 115430 . 116193) (\TEDIT.UNLINKPANE 116195 . 116769)) (118128 119019 (TEDITWINDOWP +118138 . 119017)) (119056 122159 (TEDIT.GETINPUT 119066 . 121509) (\TEDIT.MAKEFILENAME 121511 . 122157 +)) (122208 130509 (TEDIT.PROMPTWINDOW 122218 . 122532) (TEDIT.PROMPTPRINT 122534 . 125161) ( +TEDIT.PROMPTCLEAR 125163 . 126882) (TEDIT.PROMPTFLASH 126884 . 128816) (\TEDIT.PROMPT.PAGEFULLFN +128818 . 130507)) (130747 140388 (\TEDIT.FILENAME 130757 . 131529) (\TEDIT.DEFAULT.TITLE 131531 . +133910) (\TEDIT.WINDOW.TITLE 133912 . 136081) (\TEDIT.LIKELY.FILENAME 136083 . 137870) ( +\TEDIT.UPDATE.TITLE 137872 . 140386)) (140431 148959 (TEDIT.DEACTIVATE.WINDOW 140441 . 146559) ( +\TEDIT.RESHAPEFN 146561 . 148731) (\TEDIT.REPAINTFN 148733 . 148957)) (148960 191339 (\TEDIT.SCROLLFN +148970 . 151215) (\TEDIT.SCROLLCH.TOP 151217 . 153328) (\TEDIT.SCROLLCH.BOTTOM 153330 . 157660) ( +\TEDIT.SCROLLUP 157662 . 163279) (\TEDIT.TOPLINE.YTOP 163281 . 164950) (\TEDIT.SCROLLDOWN 164952 . +171882) (\TEDIT.SCROLL.CARET 171884 . 174722) (\TEDIT.VISIBLECARETP 174724 . 177018) ( +\TEDIT.VISIBLECHARP 177020 . 178111) (\TEDIT.BITMAPLINES 178113 . 182033) (\TEDIT.SETPANE.TOPLINE +182035 . 182826) (\TEDIT.SHIFTLINES 182828 . 191337)) (191340 202209 (\TEDIT.ONSCREEN? 191350 . 195901 +) (\TEDIT.ONSCREEN.REGION 195903 . 199554) (\TEDIT.AFTERMOVEFN 199556 . 200453) (OFFSCREENP 200455 . +202207)) (202251 204868 (\TEDIT.PROCIDLEFN 202261 . 203798) (\TEDIT.PROCENTRYFN 203800 . 204245) ( +\TEDIT.PROCEXITFN 204247 . 204866)) (204947 218101 (\TEDIT.DOWNCARET 204957 . 205750) ( +\TEDIT.FLASHCARET 205752 . 207863) (\TEDIT.UPCARET 207865 . 208969) (TEDIT.NORMALIZECARET 208971 . +212189) (\TEDIT.SETCARET 212191 . 217471) (\TEDIT.CARET 217473 . 218099)) (218135 230462 ( +TEDIT.ADD.MENUITEM 218145 . 220436) (TEDIT.DEFAULT.MENUFN 220438 . 227674) (TEDIT.REMOVE.MENUITEM +227676 . 228673) (\TEDIT.CREATEMENU 228675 . 229240) (\TEDIT.MENU.WHENHELDFN 229242 . 230147) ( +\TEDIT.MENU.WHENSELECTEDFN 230149 . 230460))))) STOP diff --git a/library/tedit/TEDIT-WINDOW.LCOM b/library/tedit/TEDIT-WINDOW.LCOM index fd48679f9b4279a608c753d4cbf734b751a600fb..e9ef7b8fd3918b362d0677e74105a0a20d262578 100644 GIT binary patch delta 548 zcmYjL&u`KI6sEwYuz_7eupz{}n3>GONPj@tb{dSbc9uTu8u<}pcR-gwqseZ1S;q8W z;=x(HdEw&Gun}$=uHe;X;h!*(VDz}rg3I3Fz4v|Zd*6G1oBr0Z|NXN$p4s5|lg6@j zK|~4RNx4a(T=DcST1A6J>-WOQKy2jO{85HBR-%TLxb*Ne6VO6 zu^vVmwh?Ln3^+H=dM4LS)JJC@kZfCo5uX0zH>e(xpO8Xw{1GXG?5W--rx*JeqpI?r zvuK;kw&^Y1Id2SY>Bq()Q~%wnzn+dNJK3vQ30%j1(5}im?nC5k?VH(GMlI#Y?9Yhr zX00%46^_i>ROeYqa%tEWbxqusQ3Za@MOiG*2rkXT<9t=ruowd_IRUzull4R%wL(T$ zWK{%qZQY_nZ||oC$fK&~#N91TF6yWOpA!D-v6v{yIb8ytXRLQangVV;1;vb(Q4k;O MPE3-WKcVLM60|9ysQ>@~ delta 560 zcmZ43%<`>?WkMROk%g6^<-}|i@eo%R&k#E>sT=O;=i(o(XKij_I&s+?bFdmEh3ar$ zR~H}G$Xc76%%q~kqDqKrOg#!l#%3mlmYXXXbvc!d6nqo{6bua%oIU*ffhtPh*LyjhvI+U1C3 z1Nqrmf}%YB0{(oTH%Ix4_zQj99PBUV;4cC;GG5}OMD~q%k^TM>CwZ>Ki|zLp$i5OU zu;DT%$ihwg>vN1YXk>ldG|g|r48~Z9+gRfH_WMoo=kxnK$)9hZ4^zy>|3&^{LQ$Rx zAU#)dRIcPOg-cz_zH!Cll$Al&hlN=!5Sd6XC%9C&4A`&}Tvwtzy}(Wp$T^Xd0%0*| z7+aVrxVwe~skyp)`uiyun}fMd{t-bC0V6XDg&4Oe*C77@VDMW^J}4x@WMMJcnYUBZ z%v8b6-!H_)HP|`GGa$r2NWs{|R3Qc&)q4H`df}cfAs!0GhL)4_pGyiFSy(6pI0iZT S`1^YYD;QcBZ Date: Tue, 25 Mar 2025 13:35:10 -0700 Subject: [PATCH 22/26] Cleaned up CHARNAME for comparison with Matt's CHARCODE.ENCODE --- library/tedit/TEDIT-FNKEYS | 133 ++++++++++++++++---------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 37413 -> 37298 bytes 2 files changed, 68 insertions(+), 65 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 7fe885d0b..362c55455 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,13 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "23-Mar-2025 14:58:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;234 100060 +(FILECREATED "25-Mar-2025 12:07:15" {WMEDLEY}tedit>TEDIT-FNKEYS.;243 99920 :EDIT-BY rmk - :CHANGES-TO (FNS CHARNAME TEDIT.BUTTONS.BUILD \TEDIT.KEY.SIZE) - (VARS TEDIT.CHARACTIONS) + :CHANGES-TO (FNS CHARNAME) - :PREVIOUS-DATE "19-Mar-2025 15:47:14" {WMEDLEY}tedit>TEDIT-FNKEYS.;231) + :PREVIOUS-DATE "23-Mar-2025 14:58:14" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;234) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -64,14 +63,21 @@ (DEFINEQ (CHARNAME - [LAMBDA (CODE OCTALCHARS) (* ; "Edited 23-Mar-2025 14:57 by rmk") + [LAMBDA (CODE OCTALCHARS) (* ; "Edited 25-Mar-2025 12:07 by rmk") + (* ; "Edited 23-Mar-2025 14:57 by rmk") (* ; "Edited 18-Mar-2025 20:55 by rmk") (* ; "Edited 6-Dec-2023 20:30 by rmk") (* ; "Edited 20-Sep-2021 15:03 by rmk:") - (* ;; "Tries to produce a character name for CODE, of the form charset,char. ^ is prefixed to chars in the control range, # to chars in the upper panel of each charset.") + (* ;; "Otherwise, if OCTALCHARS the result is of the form %"cset,octal-char%" where cset is a known name (Meta) or the octal string for an unknown name.") - (* ;; "If OCTALCHARS, the character set part is returned as its octal string") + (* ;; "If not OCTALCHARS, the character-name part is constructed from its Ascii equivalent, modified by ^ or #. But the %"0,%" is suppressed for character set 0 unless the input is an unnamed digit code (48..).") + + (* ;; "Produce a character name for CODE, first trying for the assigned name in CHARACTERNAMES. ") + + (DECLARE (USEDFREE CHARACTERSETNAMES CHARACTERNAMES)) + + (* ;; "") (if (LISTP CODE) then (CONS (CHARNAME (CAR CODE) @@ -86,49 +92,46 @@ else (IEQP CODE (CHARCODE.DECODE (CADR CN] else (LET ((CHARSET (LRSH CODE 8)) (CHAR (LOGAND CODE 255)) - CSETNAME CHARNAME PANEL0NAME STRING (PANEL0CODE (LOGAND CODE 127))) + (ASCIICODE (LOGAND CODE 127)) + CSETNAME CHARNAME ASCIINAME) (SETQ CSETNAME (if [CAR (find CN in CHARACTERSETNAMES suchthat (STRING.EQUAL CHARSET (CADR CN] - elseif (OCTALSTRING CHARSET))) - [SETQ CHARNAME (IF OCTALCHARS - THEN (OCTALSTRING CHAR) - ELSE (CAR (for CC in CHARACTERNAMES when (EQ CHAR (CADR CC)) + else (OCTALSTRING CHARSET))) + [SETQ CHARNAME (if OCTALCHARS + then (OCTALSTRING CHAR) + else (CAR (for CC in CHARACTERNAMES when (EQ CHAR (CADR CC)) smallest (NCHARS (CAR CC] (CL:WHEN (STREQUAL CHARNAME "Tenexeol") (SETQ CHARNAME "^_")) - (* ;; "Didn't find the special character name, let's find a corresponding name in panel 0 to prefix with #") + (* ;; "Didn't find the special character name, let's find a corresponding Asciiname to prefix with ^ and/or #") (CL:UNLESS CHARNAME - [SETQ PANEL0NAME (IF [CAR (FOR CC IN CHARACTERNAMES - WHEN (EQ PANEL0CODE (CADR CC)) - SMALLEST (NCHARS (CAR CC] - ELSEIF (ILEQ PANEL0CODE (CHARCODE SPACE)) - THEN [CONCAT "^" (CHARACTER (IPLUS PANEL0CODE (CHARCODE - @] - ELSEIF (AND (IGEQ PANEL0CODE (CHARCODE 0)) - (ILEQ PANEL0CODE (CHARCODE 9))) - THEN (IF (EQ CHARSET 0) - THEN - (* ;; - "We won't do the comma thing, don't do octal") - - (CONCAT (IDIFFERENCE PANEL0CODE (CHARCODE - 0))) - ELSE (OCTALSTRING PANEL0CODE)) - ELSE - (* ;; "Not a control, not a digit") - - (CONCAT (CHARACTER PANEL0CODE] - (SETQ CHARNAME (IF (IGEQ CHAR 128) - THEN (CONCAT "#" PANEL0NAME) - ELSE PANEL0NAME))) - (SETQ STRING (if CSETNAME - then (CONCAT CSETNAME "," CHARNAME) - else CHARNAME)) - (CL:UNLESS (EQ CODE (CHARCODE.DECODE STRING)) - (\TEDIT.THELP "Character name doesn't map to code" (LIST STRING CODE))) - STRING]) + [SETQ ASCIINAME (if [CAR (for CC in CHARACTERNAMES + when (EQ ASCIICODE (CADR CC)) + smallest (NCHARS (CAR CC] + elseif (ILESSP ASCIICODE (CHARCODE SPACE)) + then [CONCAT "^" (CHARACTER (IPLUS ASCIICODE (CHARCODE @] + elseif (AND (IGEQ ASCIICODE (CHARCODE 0)) + (ILEQ ASCIICODE (CHARCODE 9))) + then (SETQ OCTALCHARS T) + (* ; + "If a digit is not named, %"0,%" must be prepended.") + (OCTALSTRING ASCIICODE) + else + (* ;; "Not a control, not a digit") + + (CONCAT (CHARACTER ASCIICODE] + (SETQ CHARNAME (CL:IF (IGEQ CHAR 128) + (CONCAT "#" ASCIINAME) + ASCIINAME))) + + (* ;; "(CHARCODE %"101%") is bad, need %"0,101%"") + + (CL:IF (AND (ZEROP CHARSET) + (NOT OCTALCHARS)) + CHARNAME + (CONCAT CSETNAME "," CHARNAME))]) ) @@ -1875,27 +1878,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3753 8091 (CHARNAME 3763 . 8089)) (8147 22024 (TEDIT.INSTALL.CHARBINDINGS 8157 . 11340) - (TEDIT.CLEAR.CHARBINDINGS 11342 . 13933) (TEDIT.GET.CHARACTION 13935 . 16582) (TEDIT.GET.CHARBINDING -16584 . 18508) (TEDIT.GET.ALL.CHARBINDINGS 18510 . 20164) (TEDIT.GET.ALL.CHARACTIONS 20166 . 22022)) ( -22084 31702 (\TEDIT.KEY.CHARLOOKS 22094 . 23036) (\TEDIT.KEY.QUAD 23038 . 25131) (\TEDIT.DEFAULTSSEL -25133 . 25744) (\TEDIT.SETDEFAULT.FROM.SEL 25746 . 26423) (\TEDIT.KEY.SIZE 26425 . 27621) ( -\TEDIT.SUBSCRIPTSEL 27623 . 27826) (\TEDIT.SUPERSCRIPTSEL 27828 . 28032) (\TEDIT.KEY.TRANSFORM 28034 - . 29844) (\TEDIT.KEY.OPENLINE 29846 . 30300) (\TEDIT.KEY.FAMILYN 30302 . 31700)) (31703 31992 ( -CAP-CASECODE 31713 . 31990)) (32026 34652 (\TEDIT.SHOWCARETLOOKS 32036 . 33745) (\TEDIT.DESCRIBEFONT -33747 . 34650)) (34683 49419 (\TEDIT.ONECHAR.BACKWARD 34693 . 35822) (\TEDIT.ONECHAR.FORWARD 35824 . -37042) (\TEDIT.ONELINE.UP 37044 . 40005) (\TEDIT.ONELINE.DOWN 40007 . 41664) (\TEDIT.ONELINE.MOVE -41666 . 43880) (\TEDIT.ONEWORD.BACKWARD 43882 . 45034) (\TEDIT.ONEWORD.FORWARD 45036 . 46187) ( -\TEDIT.LINE.BEGIN 46189 . 47240) (\TEDIT.LINE.END 47242 . 48451) (\TEDIT.DOCUMENT.BEGIN 48453 . 48812) - (\TEDIT.DOCUMENT.END 48814 . 49417)) (49420 51264 (\TEDIT.LINEDELETE.FORWARD 49430 . 50330) ( -\TEDIT.LINEDELETE.BACKWARD 50332 . 51262)) (51265 53523 (\TEDIT.KEY.NEST 51275 . 53521)) (53577 61532 -(\TEDIT.KEY.FIND 53587 . 58672) (\TEDIT.KEY.FIND.SEARCHSTRING 58674 . 59814) (\TEDIT.GET.TARGET.STRING - 59816 . 61530)) (61563 64195 (\TEDIT.KEY.SUBSTITUTE 61573 . 61794) (\TEDIT.MANPAGE 61796 . 63043) ( -\TEDIT.CALL.ED 63045 . 63875) (\TEDIT.SELECT.ALL 63877 . 64193)) (64222 69802 (\TEDIT.CLIPBOARD 64232 - . 65987) (\TEDIT.COPYTOCLIPBOARD 65989 . 66769) (\TEDIT.EXTRACTTOCLIPBOARD 66771 . 66966) ( -\TEDIT.WRITE.SEL 66968 . 69800)) (70154 81869 (\TEDIT.READTABLE 70164 . 71100) ( -\TEDIT.WORDBOUND.READTABLE 71102 . 73731) (TEDIT.GETSYNTAX 73733 . 75252) (TEDIT.SETSYNTAX 75254 . -76459) (TEDIT.GETFUNCTION 76461 . 77633) (TEDIT.SETFUNCTION 77635 . 79621) (TEDIT.WORDGET 79623 . -79884) (TEDIT.WORDSET 79886 . 80517) (TEDIT.ATOMBOUND.READTABLE 80519 . 81867)) (92457 98996 ( -TEDIT.BUTTONS.BUILD 92467 . 97264) (TEDIT.BUTTONBITMAP.FILL 97266 . 98994))))) + (FILEMAP (NIL (3674 7951 (CHARNAME 3684 . 7949)) (8007 21884 (TEDIT.INSTALL.CHARBINDINGS 8017 . 11200) + (TEDIT.CLEAR.CHARBINDINGS 11202 . 13793) (TEDIT.GET.CHARACTION 13795 . 16442) (TEDIT.GET.CHARBINDING +16444 . 18368) (TEDIT.GET.ALL.CHARBINDINGS 18370 . 20024) (TEDIT.GET.ALL.CHARACTIONS 20026 . 21882)) ( +21944 31562 (\TEDIT.KEY.CHARLOOKS 21954 . 22896) (\TEDIT.KEY.QUAD 22898 . 24991) (\TEDIT.DEFAULTSSEL +24993 . 25604) (\TEDIT.SETDEFAULT.FROM.SEL 25606 . 26283) (\TEDIT.KEY.SIZE 26285 . 27481) ( +\TEDIT.SUBSCRIPTSEL 27483 . 27686) (\TEDIT.SUPERSCRIPTSEL 27688 . 27892) (\TEDIT.KEY.TRANSFORM 27894 + . 29704) (\TEDIT.KEY.OPENLINE 29706 . 30160) (\TEDIT.KEY.FAMILYN 30162 . 31560)) (31563 31852 ( +CAP-CASECODE 31573 . 31850)) (31886 34512 (\TEDIT.SHOWCARETLOOKS 31896 . 33605) (\TEDIT.DESCRIBEFONT +33607 . 34510)) (34543 49279 (\TEDIT.ONECHAR.BACKWARD 34553 . 35682) (\TEDIT.ONECHAR.FORWARD 35684 . +36902) (\TEDIT.ONELINE.UP 36904 . 39865) (\TEDIT.ONELINE.DOWN 39867 . 41524) (\TEDIT.ONELINE.MOVE +41526 . 43740) (\TEDIT.ONEWORD.BACKWARD 43742 . 44894) (\TEDIT.ONEWORD.FORWARD 44896 . 46047) ( +\TEDIT.LINE.BEGIN 46049 . 47100) (\TEDIT.LINE.END 47102 . 48311) (\TEDIT.DOCUMENT.BEGIN 48313 . 48672) + (\TEDIT.DOCUMENT.END 48674 . 49277)) (49280 51124 (\TEDIT.LINEDELETE.FORWARD 49290 . 50190) ( +\TEDIT.LINEDELETE.BACKWARD 50192 . 51122)) (51125 53383 (\TEDIT.KEY.NEST 51135 . 53381)) (53437 61392 +(\TEDIT.KEY.FIND 53447 . 58532) (\TEDIT.KEY.FIND.SEARCHSTRING 58534 . 59674) (\TEDIT.GET.TARGET.STRING + 59676 . 61390)) (61423 64055 (\TEDIT.KEY.SUBSTITUTE 61433 . 61654) (\TEDIT.MANPAGE 61656 . 62903) ( +\TEDIT.CALL.ED 62905 . 63735) (\TEDIT.SELECT.ALL 63737 . 64053)) (64082 69662 (\TEDIT.CLIPBOARD 64092 + . 65847) (\TEDIT.COPYTOCLIPBOARD 65849 . 66629) (\TEDIT.EXTRACTTOCLIPBOARD 66631 . 66826) ( +\TEDIT.WRITE.SEL 66828 . 69660)) (70014 81729 (\TEDIT.READTABLE 70024 . 70960) ( +\TEDIT.WORDBOUND.READTABLE 70962 . 73591) (TEDIT.GETSYNTAX 73593 . 75112) (TEDIT.SETSYNTAX 75114 . +76319) (TEDIT.GETFUNCTION 76321 . 77493) (TEDIT.SETFUNCTION 77495 . 79481) (TEDIT.WORDGET 79483 . +79744) (TEDIT.WORDSET 79746 . 80377) (TEDIT.ATOMBOUND.READTABLE 80379 . 81727)) (92317 98856 ( +TEDIT.BUTTONS.BUILD 92327 . 97124) (TEDIT.BUTTONBITMAP.FILL 97126 . 98854))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 478d51cd0e85890a57d6cdf4d9a91ec4fbb3c4b0..69a14f8da71a5ef753fbd8d5e22998236b6d10bf 100644 GIT binary patch delta 982 zcmZuwU2D@&7;aLxX%%d{Qbrx+HA7g$*5oApNGH;eW;R=z)3w>${8+ZJg4N(~c%cj_ zc&RteunPt8LWSW6)Yb~#m@EH-_c9O#+3*Kw(pKBSa*^}C&v`!H98O-nBpWZtNAtsp zSYdfRh8UCp7G;=JhD~hV5F$KBgO5UdZx=Bcl+GZu`I(;SgX8fy1*^-qE2{_dlN9Y6 zpHx&?D#@ZQ=YT>7MQ+eTJO_dxAgfByB^oltl02v2*>WuB$Q%{d8-?XFiFAhLDe!Gv zEXX-kUbuJ8tgfstuiriIWGH&)9h=mq<%M#50&%=`k{k{vK$4&cEYn$2AeJRXvF6CJ zflgH;(}Oe+UxFU%J4wq+9_I-Jh`hHoaVI!LFmk*t;O~F2@ zfn;qQCHqF!#DZJ~HpTY_>OiSJQd!nJpmX*Ae{36Z{u$?t5Kw0*;GJ-4i~{7G4z=j4 ZZogl4T*}O+i_eEp6AaZXR6iiYt_Ub1gqKXtS^-Up9$()H7>L1|Q=*`4%@&duTe(k1UVlU5|=Y7BDd6W0))-&??Ci!6A z+9XcYR}!HZPlK1@n8 zVqUjC_61I+a(Q`HK{I+JgEhTCvB`r)*?5Xiq*%Uwi%!H?+AC$nye3Y|kje<&a1PjU zkR-s!wow4x$Sc|fOeG*EYO=~$edKUYr{qb2g$ZDj;0TG5A-ifi<~Zhn(`Cak(PX87mYi=qB|c0lB;j?2)|J-#LpBPoqaX_HZ=jGFw9$YWu#ulM{f&3p!?#_J9T7ho^t6W25Z>jcT86!5 zw&HlH<@6U<#dU5h5GL3vg0=y43`T53ts@GJ>~Dn8h)LN9%pn^MlICFJRhd!unjy7V zPVO}W_T;tQM{1e*df)otIlVUBqBPT&Mn2bK_l;|beCef7$n`@$pG#>+on0EAyTW`N zUk_=LXaLW1e==fZWi Date: Tue, 25 Mar 2025 17:17:33 -0700 Subject: [PATCH 23/26] recurse on CL:CHARACTERP --- library/tedit/TEDIT-FNKEYS | 75 +++++++++++++++----------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 37298 -> 37305 bytes 2 files changed, 35 insertions(+), 40 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 362c55455..68a43c598 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,6 +1,6 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "25-Mar-2025 12:07:15" {WMEDLEY}tedit>TEDIT-FNKEYS.;243 99920 +(FILECREATED "25-Mar-2025 17:14:10" {WMEDLEY}tedit>TEDIT-FNKEYS.;247 99606 :EDIT-BY rmk @@ -63,17 +63,17 @@ (DEFINEQ (CHARNAME - [LAMBDA (CODE OCTALCHARS) (* ; "Edited 25-Mar-2025 12:07 by rmk") + [LAMBDA (CODE OCTALCHARS) (* ; "Edited 25-Mar-2025 17:13 by rmk") (* ; "Edited 23-Mar-2025 14:57 by rmk") (* ; "Edited 18-Mar-2025 20:55 by rmk") (* ; "Edited 6-Dec-2023 20:30 by rmk") (* ; "Edited 20-Sep-2021 15:03 by rmk:") - (* ;; "Otherwise, if OCTALCHARS the result is of the form %"cset,octal-char%" where cset is a known name (Meta) or the octal string for an unknown name.") + (* ;; "If CODE correspond to a named character, that character is returned.") - (* ;; "If not OCTALCHARS, the character-name part is constructed from its Ascii equivalent, modified by ^ or #. But the %"0,%" is suppressed for character set 0 unless the input is an unnamed digit code (48..).") + (* ;; "Otherwise, if OCTALCHARS the result is of the form %"cset,octal-char%" where cset is a known name (Meta) or the octal string for an unknown character set. Ascii codes show up with %"0,xx%"") - (* ;; "Produce a character name for CODE, first trying for the assigned name in CHARACTERNAMES. ") + (* ;; "If not OCTALCHARS, the character-name part is constructed from the name of its Ascii equivalent, modified by ^ or #. %"0,%" is suppressed in front of the names for character-set 0.") (DECLARE (USEDFREE CHARACTERSETNAMES CHARACTERNAMES)) @@ -85,6 +85,9 @@ (AND (CDR CODE) (CHARNAME (CDR CODE) OCTALCHARS))) + elseif (CL:CHARACTERP CODE) + then (CHARNAME (CL:CHAR-CODE CODE) + OCTALCHARS) elseif (NOT (CHARCODEP CODE)) then (\ILLEGAL.ARG CODE) elseif [CAR (find CN in CHARACTERNAMES suchthat (if (CHARCODEP (CADR CN)) @@ -101,8 +104,9 @@ then (OCTALSTRING CHAR) else (CAR (for CC in CHARACTERNAMES when (EQ CHAR (CADR CC)) smallest (NCHARS (CAR CC] - (CL:WHEN (STREQUAL CHARNAME "Tenexeol") - (SETQ CHARNAME "^_")) + (CL:WHEN (STREQUAL CHARNAME "Tenexeol") (* ; + "Put (%"^_%" Tenexeol) in CHARACTERNAMES ?") + (SETQ CHARNAME "^_")) (* ;; "Didn't find the special character name, let's find a corresponding Asciiname to prefix with ^ and/or #") @@ -112,22 +116,13 @@ smallest (NCHARS (CAR CC] elseif (ILESSP ASCIICODE (CHARCODE SPACE)) then [CONCAT "^" (CHARACTER (IPLUS ASCIICODE (CHARCODE @] - elseif (AND (IGEQ ASCIICODE (CHARCODE 0)) - (ILEQ ASCIICODE (CHARCODE 9))) - then (SETQ OCTALCHARS T) - (* ; - "If a digit is not named, %"0,%" must be prepended.") - (OCTALSTRING ASCIICODE) else - (* ;; "Not a control, not a digit") + (* ;; "Not named and not a control") (CONCAT (CHARACTER ASCIICODE] (SETQ CHARNAME (CL:IF (IGEQ CHAR 128) (CONCAT "#" ASCIINAME) ASCIINAME))) - - (* ;; "(CHARCODE %"101%") is bad, need %"0,101%"") - (CL:IF (AND (ZEROP CHARSET) (NOT OCTALCHARS)) CHARNAME @@ -1878,27 +1873,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3674 7951 (CHARNAME 3684 . 7949)) (8007 21884 (TEDIT.INSTALL.CHARBINDINGS 8017 . 11200) - (TEDIT.CLEAR.CHARBINDINGS 11202 . 13793) (TEDIT.GET.CHARACTION 13795 . 16442) (TEDIT.GET.CHARBINDING -16444 . 18368) (TEDIT.GET.ALL.CHARBINDINGS 18370 . 20024) (TEDIT.GET.ALL.CHARACTIONS 20026 . 21882)) ( -21944 31562 (\TEDIT.KEY.CHARLOOKS 21954 . 22896) (\TEDIT.KEY.QUAD 22898 . 24991) (\TEDIT.DEFAULTSSEL -24993 . 25604) (\TEDIT.SETDEFAULT.FROM.SEL 25606 . 26283) (\TEDIT.KEY.SIZE 26285 . 27481) ( -\TEDIT.SUBSCRIPTSEL 27483 . 27686) (\TEDIT.SUPERSCRIPTSEL 27688 . 27892) (\TEDIT.KEY.TRANSFORM 27894 - . 29704) (\TEDIT.KEY.OPENLINE 29706 . 30160) (\TEDIT.KEY.FAMILYN 30162 . 31560)) (31563 31852 ( -CAP-CASECODE 31573 . 31850)) (31886 34512 (\TEDIT.SHOWCARETLOOKS 31896 . 33605) (\TEDIT.DESCRIBEFONT -33607 . 34510)) (34543 49279 (\TEDIT.ONECHAR.BACKWARD 34553 . 35682) (\TEDIT.ONECHAR.FORWARD 35684 . -36902) (\TEDIT.ONELINE.UP 36904 . 39865) (\TEDIT.ONELINE.DOWN 39867 . 41524) (\TEDIT.ONELINE.MOVE -41526 . 43740) (\TEDIT.ONEWORD.BACKWARD 43742 . 44894) (\TEDIT.ONEWORD.FORWARD 44896 . 46047) ( -\TEDIT.LINE.BEGIN 46049 . 47100) (\TEDIT.LINE.END 47102 . 48311) (\TEDIT.DOCUMENT.BEGIN 48313 . 48672) - (\TEDIT.DOCUMENT.END 48674 . 49277)) (49280 51124 (\TEDIT.LINEDELETE.FORWARD 49290 . 50190) ( -\TEDIT.LINEDELETE.BACKWARD 50192 . 51122)) (51125 53383 (\TEDIT.KEY.NEST 51135 . 53381)) (53437 61392 -(\TEDIT.KEY.FIND 53447 . 58532) (\TEDIT.KEY.FIND.SEARCHSTRING 58534 . 59674) (\TEDIT.GET.TARGET.STRING - 59676 . 61390)) (61423 64055 (\TEDIT.KEY.SUBSTITUTE 61433 . 61654) (\TEDIT.MANPAGE 61656 . 62903) ( -\TEDIT.CALL.ED 62905 . 63735) (\TEDIT.SELECT.ALL 63737 . 64053)) (64082 69662 (\TEDIT.CLIPBOARD 64092 - . 65847) (\TEDIT.COPYTOCLIPBOARD 65849 . 66629) (\TEDIT.EXTRACTTOCLIPBOARD 66631 . 66826) ( -\TEDIT.WRITE.SEL 66828 . 69660)) (70014 81729 (\TEDIT.READTABLE 70024 . 70960) ( -\TEDIT.WORDBOUND.READTABLE 70962 . 73591) (TEDIT.GETSYNTAX 73593 . 75112) (TEDIT.SETSYNTAX 75114 . -76319) (TEDIT.GETFUNCTION 76321 . 77493) (TEDIT.SETFUNCTION 77495 . 79481) (TEDIT.WORDGET 79483 . -79744) (TEDIT.WORDSET 79746 . 80377) (TEDIT.ATOMBOUND.READTABLE 80379 . 81727)) (92317 98856 ( -TEDIT.BUTTONS.BUILD 92327 . 97124) (TEDIT.BUTTONBITMAP.FILL 97126 . 98854))))) + (FILEMAP (NIL (3674 7637 (CHARNAME 3684 . 7635)) (7693 21570 (TEDIT.INSTALL.CHARBINDINGS 7703 . 10886) + (TEDIT.CLEAR.CHARBINDINGS 10888 . 13479) (TEDIT.GET.CHARACTION 13481 . 16128) (TEDIT.GET.CHARBINDING +16130 . 18054) (TEDIT.GET.ALL.CHARBINDINGS 18056 . 19710) (TEDIT.GET.ALL.CHARACTIONS 19712 . 21568)) ( +21630 31248 (\TEDIT.KEY.CHARLOOKS 21640 . 22582) (\TEDIT.KEY.QUAD 22584 . 24677) (\TEDIT.DEFAULTSSEL +24679 . 25290) (\TEDIT.SETDEFAULT.FROM.SEL 25292 . 25969) (\TEDIT.KEY.SIZE 25971 . 27167) ( +\TEDIT.SUBSCRIPTSEL 27169 . 27372) (\TEDIT.SUPERSCRIPTSEL 27374 . 27578) (\TEDIT.KEY.TRANSFORM 27580 + . 29390) (\TEDIT.KEY.OPENLINE 29392 . 29846) (\TEDIT.KEY.FAMILYN 29848 . 31246)) (31249 31538 ( +CAP-CASECODE 31259 . 31536)) (31572 34198 (\TEDIT.SHOWCARETLOOKS 31582 . 33291) (\TEDIT.DESCRIBEFONT +33293 . 34196)) (34229 48965 (\TEDIT.ONECHAR.BACKWARD 34239 . 35368) (\TEDIT.ONECHAR.FORWARD 35370 . +36588) (\TEDIT.ONELINE.UP 36590 . 39551) (\TEDIT.ONELINE.DOWN 39553 . 41210) (\TEDIT.ONELINE.MOVE +41212 . 43426) (\TEDIT.ONEWORD.BACKWARD 43428 . 44580) (\TEDIT.ONEWORD.FORWARD 44582 . 45733) ( +\TEDIT.LINE.BEGIN 45735 . 46786) (\TEDIT.LINE.END 46788 . 47997) (\TEDIT.DOCUMENT.BEGIN 47999 . 48358) + (\TEDIT.DOCUMENT.END 48360 . 48963)) (48966 50810 (\TEDIT.LINEDELETE.FORWARD 48976 . 49876) ( +\TEDIT.LINEDELETE.BACKWARD 49878 . 50808)) (50811 53069 (\TEDIT.KEY.NEST 50821 . 53067)) (53123 61078 +(\TEDIT.KEY.FIND 53133 . 58218) (\TEDIT.KEY.FIND.SEARCHSTRING 58220 . 59360) (\TEDIT.GET.TARGET.STRING + 59362 . 61076)) (61109 63741 (\TEDIT.KEY.SUBSTITUTE 61119 . 61340) (\TEDIT.MANPAGE 61342 . 62589) ( +\TEDIT.CALL.ED 62591 . 63421) (\TEDIT.SELECT.ALL 63423 . 63739)) (63768 69348 (\TEDIT.CLIPBOARD 63778 + . 65533) (\TEDIT.COPYTOCLIPBOARD 65535 . 66315) (\TEDIT.EXTRACTTOCLIPBOARD 66317 . 66512) ( +\TEDIT.WRITE.SEL 66514 . 69346)) (69700 81415 (\TEDIT.READTABLE 69710 . 70646) ( +\TEDIT.WORDBOUND.READTABLE 70648 . 73277) (TEDIT.GETSYNTAX 73279 . 74798) (TEDIT.SETSYNTAX 74800 . +76005) (TEDIT.GETFUNCTION 76007 . 77179) (TEDIT.SETFUNCTION 77181 . 79167) (TEDIT.WORDGET 79169 . +79430) (TEDIT.WORDSET 79432 . 80063) (TEDIT.ATOMBOUND.READTABLE 80065 . 81413)) (92003 98542 ( +TEDIT.BUTTONS.BUILD 92013 . 96810) (TEDIT.BUTTONBITMAP.FILL 96812 . 98540))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 69a14f8da71a5ef753fbd8d5e22998236b6d10bf..acf5a026027c3ac1293f16d2f6181a0066befc61 100644 GIT binary patch delta 534 zcmY*VzfZzI7^Q81gh>dC#No3nXbkDy71}bGUP?twZL#2>A!rPXanjX+$%%wWy19~= zxDk-S!5HJ_YT_Sa;_e;gm$%$|FYkMI-y03Ymw|ZSj%y{PmJsS+l?1K-*qw2uf4d#m zz%YtRaeOJn1oEDWL`1VKjn>~xfhHpCnBsH76hoX@`{2@p8ROU2MP&GG20d|8xCw^h zXZr4(%SoE_GSVdLZKQD;@ zVC_?%S`FI=qUzvsS_guQ3p++D9=!Bmq(i;o+egRL0iaixGzC&tprdRP(`4Jy__-jP|I2;{5`1YwX{GGO){xpl?> J8ox$=yMNRHgZlsg delta 593 zcmY*Vze~eF6mAlKV5e3DMI0V+QIVRvOHERj9O>CAXQOF!5K)m1iUo0YC^+h3>FiW+ za?sWe4$?&z{{sICp@X}3iQ0P0d*6HC_r3S-xv93A>P=-7=L{={vh~xPLh5(dfB0fy zlz`(n*l3?9BMN;RPb5^gqO~R!noNl2s!vH*jq~Z$m@M77QAiz1kWMQ_t+R4Gu5`4^ zN9C&Vs=hDX#x0umr?t+kKO>swRp7l=@l0xX)%}Ppq6rT>jTa3~RSn*2Pw-0B>D_lv zj?^xXC|8Y7ZM|l~-s&z3{7o>44W3`}Xb2|4zbSG0scnH*qyhCp767pg@V$`oau}?Y z3P7+8CD|?mF_!=21{%=dJ_k8A2xX0JZBq^?Ye^)0GCu_p>pVZtGI=HgAS7(X00}k$ z8QFjHo&S(nu(!rJD^Q-HfmqKN&|(sS65Xgt+h4%ulXG}^;7CDWWk8l0F`~QUk~Kgo rvoJ22v1^|u?8L8P&=++u#k%^e4p{uBzAvK0`v*fhAgBF0{B`{eW`&X^ From 1e5dbb7a7bbca9a02a31a2b8258d845b3deb3e80 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Wed, 26 Mar 2025 10:04:27 -0700 Subject: [PATCH 24/26] Remove unnecessary references to \NORUNCODE, add variable for source linelength --- library/tedit/TEDIT-FILE | 71 ++++++++++++++++++-------------- library/tedit/TEDIT-FILE.LCOM | Bin 38516 -> 38692 bytes library/tedit/TEDIT-STREAM | 70 +++++++++++++++---------------- library/tedit/TEDIT-STREAM.LCOM | Bin 34841 -> 34850 bytes 4 files changed, 75 insertions(+), 66 deletions(-) diff --git a/library/tedit/TEDIT-FILE b/library/tedit/TEDIT-FILE index be3483912..a4e342a60 100644 --- a/library/tedit/TEDIT-FILE +++ b/library/tedit/TEDIT-FILE @@ -1,12 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "14-Mar-2025 15:29:22" {WMEDLEY}tedit>TEDIT-FILE.;605 161312 +(FILECREATED "26-Mar-2025 10:02:49" {WMEDLEY}tedit>TEDIT-FILE.;607 161915 :EDIT-BY rmk - :CHANGES-TO (FNS TEDIT.PUT TEDIT.GET) + :CHANGES-TO (VARS TEDIT-FILECOMS) + (FNS TEDITFROMLISPSOURCE \TEDIT.PUT.PCTB.NEXTNEW) - :PREVIOUS-DATE "22-Feb-2025 16:00:43" {MEDLEY}tedit>TEDIT-FILE.;27) + :PREVIOUS-DATE "14-Mar-2025 15:29:22" {WMEDLEY}tedit>TEDIT-FILE.;605) (PRETTYCOMPRINT TEDIT-FILECOMS) @@ -55,6 +56,7 @@ (FNS \TEDIT.PUT.PARALOOKS.LIST \TEDIT.PUT.SINGLE.PARALOOKS \TEDIT.PUT.PARALOOKS)) (GLOBALVARS TEDIT.INPUT.FORMATS *TEDIT-FILE-READTABLE*) (FNS TEDITFROMLISPSOURCE SHELLSCRIPTP TEDITFROMSHELLSCRIPT) + (INITVARS (TEDIT.SOURCE.LINELENGTH 110)) (ADDVARS (TEDIT.INPUT.FORMATS (LISPSOURCEFILEP TEDITFROMLISPSOURCE) (SHELLSCRIPTP TEDITFROMSHELLSCRIPT))) (INITVARS (* ; @@ -2007,6 +2009,7 @@ (\TEDIT.PUT.PCTB.NEXTNEW [LAMBDA (NEXTNEW PC OLDBYTE# RUNLEN EXTFORMAT TEXTOBJ EOLC NSHIFTBYTES) + (* ; "Edited 26-Mar-2025 09:27 by rmk") (* ; "Edited 21-Oct-2024 00:26 by rmk") (* ; "Edited 14-May-2024 18:54 by rmk") (* ; "Edited 13-May-2024 08:27 by rmk") @@ -2039,8 +2042,9 @@ (THINSTRING.PTYPE THINFILE.PTYPE) ((LIST FATSTRING.PTYPE FATFILE1.PTYPE) + (* ; + "PCHARSET is not relevant for FILEFILE2") (FSETPC NEXTNEW PBYTESPERCHAR 2) - (FSETPC NEXTNEW PCHARSET \NORUNCODE) FATFILE2.PTYPE) (PTYPE PC)))) (\TEDIT.THELP "EXTERNAL FORMAT NOT RECOGNIZED" EXTFORMAT)) @@ -2466,7 +2470,8 @@ (DEFINEQ (TEDITFROMLISPSOURCE - [LAMBDA (SOURCEFILE TSTREAM PROPS USERTEMP START END) (* ; "Edited 18-Feb-2025 23:34 by rmk") + [LAMBDA (SOURCEFILE TSTREAM PROPS USERTEMP START END) (* ; "Edited 26-Mar-2025 10:02 by rmk") + (* ; "Edited 18-Feb-2025 23:34 by rmk") (* ; "Edited 17-Nov-2024 10:03 by rmk") (* ; "Edited 25-Dec-2023 12:28 by rmk") (* ; "Edited 5-Dec-2023 23:46 by rmk") @@ -2481,13 +2486,15 @@ (* ;; "USERTEMP is the reader environment returned by LISPSOURCEFILEP") + (DECLARE (USEDFREE TEDIT.SOURCE.LINELENGTH)) (CL:UNLESS TSTREAM (SETQ TSTREAM (OPENTEXTSTREAM))) (* ;; "Estimate 110 characters per line in the default font?") - [PUTTEXTPROPS TSTREAM `(PARABREAKCHARS NIL OPENWIDTH ,(TIMES 110 (CHARWIDTH (CHARCODE SPACE) - DEFAULTFONT)) + [PUTTEXTPROPS TSTREAM `(PARABREAKCHARS NIL OPENWIDTH ,(TIMES TEDIT.SOURCE.LINELENGTH + (CHARWIDTH (CHARCODE SPACE) + DEFAULTFONT)) BOUNDTABLE ,(TEDIT.ATOMBOUND.READTABLE (fetch (READER-ENVIRONMENT REREADTABLE) of USERTEMP] @@ -2517,33 +2524,35 @@ TSTREAM]) ) +(RPAQ? TEDIT.SOURCE.LINELENGTH 110) + (ADDTOVAR TEDIT.INPUT.FORMATS (LISPSOURCEFILEP TEDITFROMLISPSOURCE) (SHELLSCRIPTP TEDITFROMSHELLSCRIPT)) (RPAQ? *TEDIT-FILE-READTABLE* (COPYREADTABLE \ORIGREADTABLE)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (5007 34555 (TEDIT.GET 5017 . 11137) (TEDIT.FORMATTEDFILEP 11139 . 12455) ( -TEDIT.FILEDATE 12457 . 13628) (TEDIT.INCLUDE 13630 . 21659) (TEDIT.RAW.INCLUDE 21661 . 22469) ( -TEDIT.PUT 22471 . 30720) (TEDIT.PUT.STREAM 30722 . 34553)) (34556 54326 (\TEDIT.GET.FOREIGN.FILE 34566 - . 37991) (\TEDIT.GET.UNFORMATTED.FILE 37993 . 41985) (\TEDIT.GET.FORMATTED.FILE 41987 . 44905) ( -\TEDIT.FORMATTEDSTREAMP 44907 . 47925) (\ARBIN 47927 . 48647) (\ATMIN 48649 . 49186) (\DWIN 49188 . -49567) (\STRINGIN 49569 . 50277) (\TEDIT.GET.TRAILER 50279 . 52795) (\TEDIT.CACHEFILE 52797 . 54324)) -(54492 68246 (\TEDIT.GET.PIECES3 54502 . 65008) (\TEDIT.GET.IDATE3 65010 . 66405) ( -\TEDIT.MAKE.STRINGPIECE 66407 . 68244)) (68247 80622 (\TEDIT.GET.UNFORMATTED.FILE.XCCS 68257 . 74373) -(\TEDIT.INTERPRET.XCCS.SHIFTS 74375 . 80620)) (80644 86666 (\TEDIT.GET.UNFORMATTED.FILE.UTF8 80654 . -86664)) (86689 95314 (\TEDIT.GET.CHARLOOKS.LIST 86699 . 87430) (\TEDIT.GET.SINGLE.CHARLOOKS 87432 . -92126) (\TEDIT.GET.CHARLOOKS 92128 . 93458) (\TEDIT.GET.PARALOOKS.INDEX 93460 . 94004) ( -\TEDIT.GET.CHARLOOKS.INDEX 94006 . 95312)) (95315 102972 (\TEDIT.GET.PARALOOKS.LIST 95325 . 95947) ( -\TEDIT.GET.SINGLE.PARALOOKS 95949 . 102970)) (102973 106563 (\TEDIT.GET.OBJECT 102983 . 106561)) ( -106625 138502 (\TEDIT.PUT.PCTB 106635 . 116285) (\TEDIT.PUT.PCTB.PIECEDATA 116287 . 119485) ( -\TEDIT.PUT.TRAILER 119487 . 120254) (\TEDIT.PUT.PCTB.MERGEABLE 120256 . 123690) ( -\TEDIT.PUT.UTF8.SPLITPIECES 123692 . 128394) (\TEDIT.PUT.PCTB.NEXTNEW 128396 . 132663) ( -\TEDIT.INSERT.NEWPIECES 132665 . 136100) (\TEDIT.PUTRESET 136102 . 136344) (\ARBOUT 136346 . 137070) ( -\ATMOUT 137072 . 137677) (\DWOUT 137679 . 137958) (\STRINGOUT 137960 . 138500)) (138503 150578 ( -\TEDIT.PUT.CHARLOOKS.LIST 138513 . 140185) (\TEDIT.PUT.SINGLE.CHARLOOKS 140187 . 145922) ( -\TEDIT.PUT.CHARLOOKS 145924 . 147149) (\TEDIT.PUT.CHARLOOKS1 147151 . 148202) (\TEDIT.PUT.OBJECT -148204 . 150576)) (150579 158218 (\TEDIT.PUT.PARALOOKS.LIST 150589 . 151491) ( -\TEDIT.PUT.SINGLE.PARALOOKS 151493 . 157077) (\TEDIT.PUT.PARALOOKS 157079 . 158216)) (158313 161082 ( -TEDITFROMLISPSOURCE 158323 . 160331) (SHELLSCRIPTP 160333 . 160562) (TEDITFROMSHELLSCRIPT 160564 . -161080))))) + (FILEMAP (NIL (5122 34670 (TEDIT.GET 5132 . 11252) (TEDIT.FORMATTEDFILEP 11254 . 12570) ( +TEDIT.FILEDATE 12572 . 13743) (TEDIT.INCLUDE 13745 . 21774) (TEDIT.RAW.INCLUDE 21776 . 22584) ( +TEDIT.PUT 22586 . 30835) (TEDIT.PUT.STREAM 30837 . 34668)) (34671 54441 (\TEDIT.GET.FOREIGN.FILE 34681 + . 38106) (\TEDIT.GET.UNFORMATTED.FILE 38108 . 42100) (\TEDIT.GET.FORMATTED.FILE 42102 . 45020) ( +\TEDIT.FORMATTEDSTREAMP 45022 . 48040) (\ARBIN 48042 . 48762) (\ATMIN 48764 . 49301) (\DWIN 49303 . +49682) (\STRINGIN 49684 . 50392) (\TEDIT.GET.TRAILER 50394 . 52910) (\TEDIT.CACHEFILE 52912 . 54439)) +(54607 68361 (\TEDIT.GET.PIECES3 54617 . 65123) (\TEDIT.GET.IDATE3 65125 . 66520) ( +\TEDIT.MAKE.STRINGPIECE 66522 . 68359)) (68362 80737 (\TEDIT.GET.UNFORMATTED.FILE.XCCS 68372 . 74488) +(\TEDIT.INTERPRET.XCCS.SHIFTS 74490 . 80735)) (80759 86781 (\TEDIT.GET.UNFORMATTED.FILE.UTF8 80769 . +86779)) (86804 95429 (\TEDIT.GET.CHARLOOKS.LIST 86814 . 87545) (\TEDIT.GET.SINGLE.CHARLOOKS 87547 . +92241) (\TEDIT.GET.CHARLOOKS 92243 . 93573) (\TEDIT.GET.PARALOOKS.INDEX 93575 . 94119) ( +\TEDIT.GET.CHARLOOKS.INDEX 94121 . 95427)) (95430 103087 (\TEDIT.GET.PARALOOKS.LIST 95440 . 96062) ( +\TEDIT.GET.SINGLE.PARALOOKS 96064 . 103085)) (103088 106678 (\TEDIT.GET.OBJECT 103098 . 106676)) ( +106740 138821 (\TEDIT.PUT.PCTB 106750 . 116400) (\TEDIT.PUT.PCTB.PIECEDATA 116402 . 119600) ( +\TEDIT.PUT.TRAILER 119602 . 120369) (\TEDIT.PUT.PCTB.MERGEABLE 120371 . 123805) ( +\TEDIT.PUT.UTF8.SPLITPIECES 123807 . 128509) (\TEDIT.PUT.PCTB.NEXTNEW 128511 . 132982) ( +\TEDIT.INSERT.NEWPIECES 132984 . 136419) (\TEDIT.PUTRESET 136421 . 136663) (\ARBOUT 136665 . 137389) ( +\ATMOUT 137391 . 137996) (\DWOUT 137998 . 138277) (\STRINGOUT 138279 . 138819)) (138822 150897 ( +\TEDIT.PUT.CHARLOOKS.LIST 138832 . 140504) (\TEDIT.PUT.SINGLE.CHARLOOKS 140506 . 146241) ( +\TEDIT.PUT.CHARLOOKS 146243 . 147468) (\TEDIT.PUT.CHARLOOKS1 147470 . 148521) (\TEDIT.PUT.OBJECT +148523 . 150895)) (150898 158537 (\TEDIT.PUT.PARALOOKS.LIST 150908 . 151810) ( +\TEDIT.PUT.SINGLE.PARALOOKS 151812 . 157396) (\TEDIT.PUT.PARALOOKS 157398 . 158535)) (158632 161644 ( +TEDITFROMLISPSOURCE 158642 . 160893) (SHELLSCRIPTP 160895 . 161124) (TEDITFROMSHELLSCRIPT 161126 . +161642))))) STOP diff --git a/library/tedit/TEDIT-FILE.LCOM b/library/tedit/TEDIT-FILE.LCOM index e8c08adbae1d2d3871beed4a3674e3be5de0c955..5f98cdea1fa89092edbbfff3248b45fb5fb5ee4b 100644 GIT binary patch delta 703 zcmZ{h&ui0Q7{{AbWUJ!APSm07X~5Bdjd`;sX>xFT*S_fjX_6*yrq^vPv##4p^&o&FE7u_^L;+g_xtS`ztiRKUz$*~ zTxF@9Q)ER2B%88g=8Xqyh1c9gr= z`@r$*oWVYA+?<|WO~hyL^86frn@HB0$pPzMeKA>U9vVEYtqmUc=bHS)F?MV735Qsp zoK7ow1F++G#gGQJTLwiztlOAOBHduCt+P;2!M90lj-ng;FYQ-NHP}uI@%l{fbL;)7 zg`ug^$W6(yUE&b8Oc%fc1SMkO$f1_!QV|j>2|jTczZxIg#a-ry)K`YL--Igrc-P@n zmg$_}3hYigO$rJWJ-3J{=nCvcq>|SRo-uij0sL8a^?r07jZfRIO^2~$|F;Q3vdGw0hD)(8+hz8B V>s==BadmcY@ZYP)4eZT!_a{uK#G3#B delta 593 zcmZuuJ#Q016!e`DAw~*?jrb6d$4UV#@ZsJ2^cBdP^V&J-zH~k(P-2WAl4(^8}Z0g6S5QqdqG;6G4O7>Sy&jtn%s;^}E;W_Nbp&TIMSEBX0S0c$1y=KT^W z6CJQ_lZvgH{T1t~UW6RN_#a5Ht?Ra`BY1GDyV^@Hc3^o8P`%}OfN}rF@wxxdHH?b6 zOLf;{PRwY+YQVoq*QNj)SjB{|OJ`_3Xo3LTM2T9-WNNUa2zC^+MK^3UOEsYcL`bQA zyFGDg*yXaVsR(k9`x{6m<`Bv9szmu*_mR@LlMyxA)vEMkCfiA~BffXv~`Ye4=zYK{(f+tKiT@k9}Zsr2Fc{4O#lD@ diff --git a/library/tedit/TEDIT-STREAM b/library/tedit/TEDIT-STREAM index fa06ee76e..9531c9776 100644 --- a/library/tedit/TEDIT-STREAM +++ b/library/tedit/TEDIT-STREAM @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "22-Mar-2025 21:37:13" {WMEDLEY}TEDIT>TEDIT-STREAM.;863 175354 +(FILECREATED "26-Mar-2025 00:29:46" {WMEDLEY}TEDIT>TEDIT-STREAM.;865 175471 :EDIT-BY rmk - :CHANGES-TO (FNS \TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS) + :CHANGES-TO (FNS \TEDIT.INSERTCH) - :PREVIOUS-DATE "19-Feb-2025 13:39:40" {WMEDLEY}TEDIT>TEDIT-STREAM.;862) + :PREVIOUS-DATE "22-Mar-2025 21:37:13" {WMEDLEY}TEDIT>TEDIT-STREAM.;863) (PRETTYCOMPRINT TEDIT-STREAMCOMS) @@ -2273,7 +2273,8 @@ T)))]) (\TEDIT.INSERTCH - [LAMBDA (CH CH# TEXTOBJ PARALAST) (* ; "Edited 22-Nov-2024 13:48 by rmk") + [LAMBDA (CH CH# TEXTOBJ PARALAST) (* ; "Edited 26-Mar-2025 00:29 by rmk") + (* ; "Edited 22-Nov-2024 13:48 by rmk") (* ; "Edited 22-Sep-2024 12:32 by rmk") (* ; "Edited 13-Aug-2024 08:30 by rmk") (* ; "Edited 18-May-2024 19:04 by rmk") @@ -2363,12 +2364,11 @@ (FSETPC PREVPC PBYTELEN ILEN) (FSETPC PREVPC PBINABLE T) (FSETPC PREVPC PCHARSET 0)) - (FATSTRING.PTYPE + (FATSTRING.PTYPE (* ; "PCHARSET is not relevant") (FSETPC PREVPC PBYTESPERCHAR 2) (FSETPC PREVPC PBYTELEN (UNFOLD ILEN 2)) - (FSETPC PREVPC PBINABLE NIL) - (FSETPC PREVPC PCHARSET \NORUNCODE)) - NIL) + (FSETPC PREVPC PBINABLE NIL)) + (\TEDIT.THELP "Unexpected PTYPE")) (\TEDIT.INSERTPIECE PREVPC INSERTPC TEXTOBJ)) (* ;; "The insertion is done and the pieces are properly integrated into the stream. ") @@ -2879,31 +2879,31 @@ (ADDTOVAR LAMA TEXTPROP) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (37126 67727 (\TEDIT.TEXTBIN 37136 . 47886) (\TEDIT.TEXTPEEKBIN 47888 . 53438) ( -\TEDIT.TEXTBACKFILEPTR 53440 . 59113) (\TEDIT.TEXTBOUT 59115 . 63517) (\TEDIT.INSTALL.FILEBUFFER 63519 - . 67725)) (68625 72673 (\TEDIT.TEXTOUTCHARFN 68635 . 70191) (\TEDIT.TEXTINCCODEFN 70193 . 70932) ( -\TEDIT.TEXTBACKCCODEFN 70934 . 71526) (\TEDIT.TEXTFORMATBYTESTREAM 71528 . 72231) ( -\TEDIT.TEXTFORMATBYTESTRING 72233 . 72671)) (72720 84241 (OPENTEXTSTREAM 72730 . 79682) ( -COPYTEXTSTREAM 79684 . 83464) (TEDIT.STREAMCHANGEDP 83466 . 83768) (TXTFILE 83770 . 84239)) (84242 -114102 (\TEDIT.REOPENTEXTSTREAM 84252 . 85604) (\TEDIT.OPENTEXTSTREAM.PIECES 85606 . 90036) ( -\TEDIT.OPENTEXTSTREAM.PROPS 90038 . 91140) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 91142 . 96228) ( -\TEDIT.OPENTEXTSTREAM.WINDOW 96230 . 98911) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 98913 . 101883) ( -\TEDIT.OPENTEXTFILE 101885 . 103598) (\TEDIT.CREATE.TEXTSTREAM 103600 . 104645) (\TEDIT.REOPEN.STREAM -104647 . 106983) (\TEDIT.TEXTINIT 106985 . 114100)) (114140 115328 (\TEDIT.TTYBOUT 114150 . 115326)) ( -115446 134238 (\TEDIT.TEXTCLOSEF 115456 . 116780) (\TEDIT.TEXTDSPFONT 116782 . 117752) ( -\TEDIT.TEXTEOFP 117754 . 119509) (\TEDIT.TEXTGETEOFPTR 119511 . 119834) (\TEDIT.TEXTSETEOFPTR 119836 - . 120926) (\TEDIT.TEXTGETFILEPTR 120928 . 123763) (\TEDIT.TEXTSETFILEINFO 123765 . 124273) ( -\TEDIT.TEXTOPENF 124275 . 125206) (\TEDIT.TEXTSETEOF 125208 . 125824) (\TEDIT.TEXTSETFILEPTR 125826 . -127867) (\TEDIT.TEXTDSPXPOSITION 127869 . 128886) (\TEDIT.TEXTDSPYPOSITION 128888 . 129629) ( -\TEDIT.TEXTLEFTMARGIN 129631 . 130222) (\TEDIT.TEXTRIGHTMARGIN 130224 . 133387) ( -\TEDIT.TEXTDSPCHARWIDTH 133389 . 133693) (\TEDIT.TEXTDSPSTRINGWIDTH 133695 . 134001) ( -\TEDIT.TEXTDSPLINEFEED 134003 . 134236)) (135285 156022 (\TEDIT.DELETE.SELPIECES 135295 . 138808) ( -\TEDIT.INSERTCH 138810 . 146604) (\TEDIT.INSERTCH.HISTORY 146606 . 150070) (\TEDIT.INSERTEOL 150072 . -151897) (\TEDIT.INSERTCH.INSERTION 151899 . 154736) (\TEDIT.INSERTCH.EXTEND 154738 . 156020)) (156023 -157527 (\TEDIT.NEXTCHANGEABLE.CHNO 156033 . 156748) (\TEDIT.LASTCHANGEABLE.CHNO 156750 . 157525)) ( -157528 159232 (\SETUPGETCH 157538 . 159230)) (159290 163748 (\TEDIT.INSTALL.PIECE 159300 . 163746)) ( -163786 172535 (TEXTPROP 163796 . 164143) (GETTEXTPROP 164145 . 164389) (PUTTEXTPROP 164391 . 164648) ( -GETTEXTPROPS 164650 . 165094) (PUTTEXTPROPS 165096 . 166000) (\TEDIT.TEXTPROP 166002 . 172533)) ( -172536 174606 (\TEDIT.TEXTOBJ.PROPNAMES 172546 . 173498) (\TEDIT.TEXTOBJ.PROPFETCHFN 173500 . 174016) -(\TEDIT.TEXTOBJ.PROPSTOREFN 174018 . 174604))))) + (FILEMAP (NIL (37107 67708 (\TEDIT.TEXTBIN 37117 . 47867) (\TEDIT.TEXTPEEKBIN 47869 . 53419) ( +\TEDIT.TEXTBACKFILEPTR 53421 . 59094) (\TEDIT.TEXTBOUT 59096 . 63498) (\TEDIT.INSTALL.FILEBUFFER 63500 + . 67706)) (68606 72654 (\TEDIT.TEXTOUTCHARFN 68616 . 70172) (\TEDIT.TEXTINCCODEFN 70174 . 70913) ( +\TEDIT.TEXTBACKCCODEFN 70915 . 71507) (\TEDIT.TEXTFORMATBYTESTREAM 71509 . 72212) ( +\TEDIT.TEXTFORMATBYTESTRING 72214 . 72652)) (72701 84222 (OPENTEXTSTREAM 72711 . 79663) ( +COPYTEXTSTREAM 79665 . 83445) (TEDIT.STREAMCHANGEDP 83447 . 83749) (TXTFILE 83751 . 84220)) (84223 +114083 (\TEDIT.REOPENTEXTSTREAM 84233 . 85585) (\TEDIT.OPENTEXTSTREAM.PIECES 85587 . 90017) ( +\TEDIT.OPENTEXTSTREAM.PROPS 90019 . 91121) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 91123 . 96209) ( +\TEDIT.OPENTEXTSTREAM.WINDOW 96211 . 98892) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 98894 . 101864) ( +\TEDIT.OPENTEXTFILE 101866 . 103579) (\TEDIT.CREATE.TEXTSTREAM 103581 . 104626) (\TEDIT.REOPEN.STREAM +104628 . 106964) (\TEDIT.TEXTINIT 106966 . 114081)) (114121 115309 (\TEDIT.TTYBOUT 114131 . 115307)) ( +115427 134219 (\TEDIT.TEXTCLOSEF 115437 . 116761) (\TEDIT.TEXTDSPFONT 116763 . 117733) ( +\TEDIT.TEXTEOFP 117735 . 119490) (\TEDIT.TEXTGETEOFPTR 119492 . 119815) (\TEDIT.TEXTSETEOFPTR 119817 + . 120907) (\TEDIT.TEXTGETFILEPTR 120909 . 123744) (\TEDIT.TEXTSETFILEINFO 123746 . 124254) ( +\TEDIT.TEXTOPENF 124256 . 125187) (\TEDIT.TEXTSETEOF 125189 . 125805) (\TEDIT.TEXTSETFILEPTR 125807 . +127848) (\TEDIT.TEXTDSPXPOSITION 127850 . 128867) (\TEDIT.TEXTDSPYPOSITION 128869 . 129610) ( +\TEDIT.TEXTLEFTMARGIN 129612 . 130203) (\TEDIT.TEXTRIGHTMARGIN 130205 . 133368) ( +\TEDIT.TEXTDSPCHARWIDTH 133370 . 133674) (\TEDIT.TEXTDSPSTRINGWIDTH 133676 . 133982) ( +\TEDIT.TEXTDSPLINEFEED 133984 . 134217)) (135266 156139 (\TEDIT.DELETE.SELPIECES 135276 . 138789) ( +\TEDIT.INSERTCH 138791 . 146721) (\TEDIT.INSERTCH.HISTORY 146723 . 150187) (\TEDIT.INSERTEOL 150189 . +152014) (\TEDIT.INSERTCH.INSERTION 152016 . 154853) (\TEDIT.INSERTCH.EXTEND 154855 . 156137)) (156140 +157644 (\TEDIT.NEXTCHANGEABLE.CHNO 156150 . 156865) (\TEDIT.LASTCHANGEABLE.CHNO 156867 . 157642)) ( +157645 159349 (\SETUPGETCH 157655 . 159347)) (159407 163865 (\TEDIT.INSTALL.PIECE 159417 . 163863)) ( +163903 172652 (TEXTPROP 163913 . 164260) (GETTEXTPROP 164262 . 164506) (PUTTEXTPROP 164508 . 164765) ( +GETTEXTPROPS 164767 . 165211) (PUTTEXTPROPS 165213 . 166117) (\TEDIT.TEXTPROP 166119 . 172650)) ( +172653 174723 (\TEDIT.TEXTOBJ.PROPNAMES 172663 . 173615) (\TEDIT.TEXTOBJ.PROPFETCHFN 173617 . 174133) +(\TEDIT.TEXTOBJ.PROPSTOREFN 174135 . 174721))))) STOP diff --git a/library/tedit/TEDIT-STREAM.LCOM b/library/tedit/TEDIT-STREAM.LCOM index 02afc7431106e044f03c2fe680b565ac8091aa7b..5423ed5c6f2f5647df9f9d8283ca059d93a5fc48 100644 GIT binary patch delta 415 zcmbO^foahMrU?v#lgeH5Is&j7$)cMnFjmDIa+(LbP6p&Tw>FFscq$HN4reHV1Oi7bV!_Cvj)j7!3F~rqH zLCFY-zh~6oFjX)#H#IRgoZP~wE&;PwQ^6`A$TiH#s}-dX2G*f%KWuzc7g;+?|; zmV5w`%>v4H<}&~RCy1Eb6KX4Np%4Rfp=XGmQ%IPjk0;171!GI2$qz!M)GUl(k`Q+V zc)B_RWzCIY!XX~6J^_>Y!(MY487a8>xhR+znonj4caT&tHnUJr3e8KcC`e5Pg;PLC TWPmF$SSCLVmDn5?zS{r*rWtX2 delta 328 zcmZ29fobLhrU?;~H#3S(%(aj-)>Pn9GBVKhO)SziGB7e#Ffy_-GO;o>pSVwU^2t*E z$^GiQJehewMQ))!J_<$#6W@!fU}!M4GB8ro Date: Wed, 26 Mar 2025 10:38:51 -0700 Subject: [PATCH 25/26] (CHARNAME NIL)=NIL --- library/tedit/TEDIT-FNKEYS | 54 +++++++++++++++++--------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 37305 -> 37264 bytes 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 68a43c598..373d79029 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "25-Mar-2025 17:14:10" {WMEDLEY}tedit>TEDIT-FNKEYS.;247 99606 +(FILECREATED "26-Mar-2025 10:37:43" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;248 99656 :EDIT-BY rmk :CHANGES-TO (FNS CHARNAME) - :PREVIOUS-DATE "23-Mar-2025 14:58:14" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;234) + :PREVIOUS-DATE "25-Mar-2025 17:14:10" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;247) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -63,7 +63,7 @@ (DEFINEQ (CHARNAME - [LAMBDA (CODE OCTALCHARS) (* ; "Edited 25-Mar-2025 17:13 by rmk") + [LAMBDA (CODE OCTALCHARS) (* ; "Edited 26-Mar-2025 10:37 by rmk") (* ; "Edited 23-Mar-2025 14:57 by rmk") (* ; "Edited 18-Mar-2025 20:55 by rmk") (* ; "Edited 6-Dec-2023 20:30 by rmk") @@ -88,6 +88,8 @@ elseif (CL:CHARACTERP CODE) then (CHARNAME (CL:CHAR-CODE CODE) OCTALCHARS) + elseif (NULL CODE) + then NIL elseif (NOT (CHARCODEP CODE)) then (\ILLEGAL.ARG CODE) elseif [CAR (find CN in CHARACTERNAMES suchthat (if (CHARCODEP (CADR CN)) @@ -1873,27 +1875,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3674 7637 (CHARNAME 3684 . 7635)) (7693 21570 (TEDIT.INSTALL.CHARBINDINGS 7703 . 10886) - (TEDIT.CLEAR.CHARBINDINGS 10888 . 13479) (TEDIT.GET.CHARACTION 13481 . 16128) (TEDIT.GET.CHARBINDING -16130 . 18054) (TEDIT.GET.ALL.CHARBINDINGS 18056 . 19710) (TEDIT.GET.ALL.CHARACTIONS 19712 . 21568)) ( -21630 31248 (\TEDIT.KEY.CHARLOOKS 21640 . 22582) (\TEDIT.KEY.QUAD 22584 . 24677) (\TEDIT.DEFAULTSSEL -24679 . 25290) (\TEDIT.SETDEFAULT.FROM.SEL 25292 . 25969) (\TEDIT.KEY.SIZE 25971 . 27167) ( -\TEDIT.SUBSCRIPTSEL 27169 . 27372) (\TEDIT.SUPERSCRIPTSEL 27374 . 27578) (\TEDIT.KEY.TRANSFORM 27580 - . 29390) (\TEDIT.KEY.OPENLINE 29392 . 29846) (\TEDIT.KEY.FAMILYN 29848 . 31246)) (31249 31538 ( -CAP-CASECODE 31259 . 31536)) (31572 34198 (\TEDIT.SHOWCARETLOOKS 31582 . 33291) (\TEDIT.DESCRIBEFONT -33293 . 34196)) (34229 48965 (\TEDIT.ONECHAR.BACKWARD 34239 . 35368) (\TEDIT.ONECHAR.FORWARD 35370 . -36588) (\TEDIT.ONELINE.UP 36590 . 39551) (\TEDIT.ONELINE.DOWN 39553 . 41210) (\TEDIT.ONELINE.MOVE -41212 . 43426) (\TEDIT.ONEWORD.BACKWARD 43428 . 44580) (\TEDIT.ONEWORD.FORWARD 44582 . 45733) ( -\TEDIT.LINE.BEGIN 45735 . 46786) (\TEDIT.LINE.END 46788 . 47997) (\TEDIT.DOCUMENT.BEGIN 47999 . 48358) - (\TEDIT.DOCUMENT.END 48360 . 48963)) (48966 50810 (\TEDIT.LINEDELETE.FORWARD 48976 . 49876) ( -\TEDIT.LINEDELETE.BACKWARD 49878 . 50808)) (50811 53069 (\TEDIT.KEY.NEST 50821 . 53067)) (53123 61078 -(\TEDIT.KEY.FIND 53133 . 58218) (\TEDIT.KEY.FIND.SEARCHSTRING 58220 . 59360) (\TEDIT.GET.TARGET.STRING - 59362 . 61076)) (61109 63741 (\TEDIT.KEY.SUBSTITUTE 61119 . 61340) (\TEDIT.MANPAGE 61342 . 62589) ( -\TEDIT.CALL.ED 62591 . 63421) (\TEDIT.SELECT.ALL 63423 . 63739)) (63768 69348 (\TEDIT.CLIPBOARD 63778 - . 65533) (\TEDIT.COPYTOCLIPBOARD 65535 . 66315) (\TEDIT.EXTRACTTOCLIPBOARD 66317 . 66512) ( -\TEDIT.WRITE.SEL 66514 . 69346)) (69700 81415 (\TEDIT.READTABLE 69710 . 70646) ( -\TEDIT.WORDBOUND.READTABLE 70648 . 73277) (TEDIT.GETSYNTAX 73279 . 74798) (TEDIT.SETSYNTAX 74800 . -76005) (TEDIT.GETFUNCTION 76007 . 77179) (TEDIT.SETFUNCTION 77181 . 79167) (TEDIT.WORDGET 79169 . -79430) (TEDIT.WORDSET 79432 . 80063) (TEDIT.ATOMBOUND.READTABLE 80065 . 81413)) (92003 98542 ( -TEDIT.BUTTONS.BUILD 92013 . 96810) (TEDIT.BUTTONBITMAP.FILL 96812 . 98540))))) + (FILEMAP (NIL (3674 7687 (CHARNAME 3684 . 7685)) (7743 21620 (TEDIT.INSTALL.CHARBINDINGS 7753 . 10936) + (TEDIT.CLEAR.CHARBINDINGS 10938 . 13529) (TEDIT.GET.CHARACTION 13531 . 16178) (TEDIT.GET.CHARBINDING +16180 . 18104) (TEDIT.GET.ALL.CHARBINDINGS 18106 . 19760) (TEDIT.GET.ALL.CHARACTIONS 19762 . 21618)) ( +21680 31298 (\TEDIT.KEY.CHARLOOKS 21690 . 22632) (\TEDIT.KEY.QUAD 22634 . 24727) (\TEDIT.DEFAULTSSEL +24729 . 25340) (\TEDIT.SETDEFAULT.FROM.SEL 25342 . 26019) (\TEDIT.KEY.SIZE 26021 . 27217) ( +\TEDIT.SUBSCRIPTSEL 27219 . 27422) (\TEDIT.SUPERSCRIPTSEL 27424 . 27628) (\TEDIT.KEY.TRANSFORM 27630 + . 29440) (\TEDIT.KEY.OPENLINE 29442 . 29896) (\TEDIT.KEY.FAMILYN 29898 . 31296)) (31299 31588 ( +CAP-CASECODE 31309 . 31586)) (31622 34248 (\TEDIT.SHOWCARETLOOKS 31632 . 33341) (\TEDIT.DESCRIBEFONT +33343 . 34246)) (34279 49015 (\TEDIT.ONECHAR.BACKWARD 34289 . 35418) (\TEDIT.ONECHAR.FORWARD 35420 . +36638) (\TEDIT.ONELINE.UP 36640 . 39601) (\TEDIT.ONELINE.DOWN 39603 . 41260) (\TEDIT.ONELINE.MOVE +41262 . 43476) (\TEDIT.ONEWORD.BACKWARD 43478 . 44630) (\TEDIT.ONEWORD.FORWARD 44632 . 45783) ( +\TEDIT.LINE.BEGIN 45785 . 46836) (\TEDIT.LINE.END 46838 . 48047) (\TEDIT.DOCUMENT.BEGIN 48049 . 48408) + (\TEDIT.DOCUMENT.END 48410 . 49013)) (49016 50860 (\TEDIT.LINEDELETE.FORWARD 49026 . 49926) ( +\TEDIT.LINEDELETE.BACKWARD 49928 . 50858)) (50861 53119 (\TEDIT.KEY.NEST 50871 . 53117)) (53173 61128 +(\TEDIT.KEY.FIND 53183 . 58268) (\TEDIT.KEY.FIND.SEARCHSTRING 58270 . 59410) (\TEDIT.GET.TARGET.STRING + 59412 . 61126)) (61159 63791 (\TEDIT.KEY.SUBSTITUTE 61169 . 61390) (\TEDIT.MANPAGE 61392 . 62639) ( +\TEDIT.CALL.ED 62641 . 63471) (\TEDIT.SELECT.ALL 63473 . 63789)) (63818 69398 (\TEDIT.CLIPBOARD 63828 + . 65583) (\TEDIT.COPYTOCLIPBOARD 65585 . 66365) (\TEDIT.EXTRACTTOCLIPBOARD 66367 . 66562) ( +\TEDIT.WRITE.SEL 66564 . 69396)) (69750 81465 (\TEDIT.READTABLE 69760 . 70696) ( +\TEDIT.WORDBOUND.READTABLE 70698 . 73327) (TEDIT.GETSYNTAX 73329 . 74848) (TEDIT.SETSYNTAX 74850 . +76055) (TEDIT.GETFUNCTION 76057 . 77229) (TEDIT.SETFUNCTION 77231 . 79217) (TEDIT.WORDGET 79219 . +79480) (TEDIT.WORDSET 79482 . 80113) (TEDIT.ATOMBOUND.READTABLE 80115 . 81463)) (92053 98592 ( +TEDIT.BUTTONS.BUILD 92063 . 96860) (TEDIT.BUTTONBITMAP.FILL 96862 . 98590))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index acf5a026027c3ac1293f16d2f6181a0066befc61..666b77ce4ecf5f557cd1a7f6e8ebb94fa439207c 100644 GIT binary patch delta 691 zcmZuvOKTHR6!y+os&Qiy+;nvq<0E3j+{Zi-nagyNOr1{Z%t)%Vl|qC@yDIJjT~*vz zrv8BzTqsCtiPA0v7w-H6u1ohW-0PjGAtUs1x#v6I`OZ1_b+j+N5p$`k&n~QO&JvYq zfK{6sHlsT)YUvMjZHAe3C@G|%P%Rr%8|yn?>v4f@G#U!@)?PmAovSBUsh4gy{lIf0 zk0;(7{8x0`R)O>w-I``5SeCA(>*!upD{RiNF|)CnenEF6W~3+R6^15Y6WlhBxSM!U z$QQgg6Xy}bjpeffeI@0{FR?bga=)Rsr)dIgQ-tpn6|PMnQD zr_RRUv`nYFH_yUO7QQr}=dAEg?FTs;hUl?`a=7dG657s|-2M6d*IR$|u|NFKmX?Nl z=xAON{yO-;XDtlro1Y_~J# zEdnMCI&Q*)T-pLGN)&yaz_K3%UW*3}9<@Nz(#q5gP74nLluWiGzJ)j>2IZ~-)MB7q Y7gp6kSyg~!{OVHyRO|5j)bH1S0eFY5Gynhq delta 675 zcmZuu&ubGw813wmiaD7G>ZSE#v}nLAJ3n@_NlMAGnIx;5O}klXYeO_rp~0L&FCwKN zcn~j*i#J6iBBGZ_iP($apWxq6`X6}L-HkO7oXhv#oA+kEZ{}bq9Sx;}jo=+hBQkh+ zHL?3(ySp3wK<6()5>uY7clueXQVpnDphkhx!M99tMphIB!*(Z({ok+SO!9igc7){# z(--C7ExM#UUayO?BR2Pzd)@o}PXEzLeCwPIM=k7%$l|nUnT--^cvHavS>X(j7 zyZpSq(DHECn?1|8kBC6tWvFYWP{?&vU*KgRZ;Ew9f% zoxrd1aG$Hts@xG?V-+~#U^QIJ^nt6!DP+bBWMI`y&$N8u0pkX^5p4pa`d>RGGafqi zP+~yS_r%(5(*cspMZ|VnRppPOO>$PFER?c{3J?|^8(t8RRUqMCHZ0$C;$RgB`Il=s zXxWYz>% From 6ff7694a6f421315b67844c0d892624bcc873124 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Thu, 27 Mar 2025 08:06:24 -0700 Subject: [PATCH 26/26] show "unbreakable" --- library/tedit/TEDIT-FNKEYS | 58 +++++++++++++++++--------------- library/tedit/TEDIT-FNKEYS.LCOM | Bin 37264 -> 37354 bytes 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/library/tedit/TEDIT-FNKEYS b/library/tedit/TEDIT-FNKEYS index 373d79029..3c30b6594 100644 --- a/library/tedit/TEDIT-FNKEYS +++ b/library/tedit/TEDIT-FNKEYS @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "26-Mar-2025 10:37:43" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;248 99656 +(FILECREATED "27-Mar-2025 08:04:27" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;249 99973 :EDIT-BY rmk - :CHANGES-TO (FNS CHARNAME) + :CHANGES-TO (FNS \TEDIT.SHOWCARETLOOKS) - :PREVIOUS-DATE "25-Mar-2025 17:14:10" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;247) + :PREVIOUS-DATE "26-Mar-2025 10:37:43" {WMEDLEY}TEDIT>TEDIT-FNKEYS.;248) (PRETTYCOMPRINT TEDIT-FNKEYSCOMS) @@ -535,7 +535,8 @@ (DEFINEQ (\TEDIT.SHOWCARETLOOKS - [LAMBDA (TSTREAM) (* ; "Edited 15-Mar-2025 20:40 by rmk") + [LAMBDA (TSTREAM) (* ; "Edited 27-Mar-2025 08:04 by rmk") + (* ; "Edited 15-Mar-2025 20:40 by rmk") (* ; "Edited 13-Mar-2025 23:52 by rmk") (* ; "Edited 5-Mar-2025 14:55 by rmk") (* ; "Edited 14-Dec-2023 21:07 by rmk") @@ -556,6 +557,9 @@ "") (CL:IF (GETCLOOKS LOOKS CLULINE) " underlined" + "") + (CL:IF (GETCLOOKS LOOKS CLUNBREAKABLE) + " unbreakable" "")) T]) @@ -1875,27 +1879,27 @@ (RPAQQ TEDIT.BUTTONBITMAP #*(78 48)OOOOOOOOOOOOOOOOOOOLON@@@@@@@@@@@@@@@AOLO@@@@@@@@@@@@@@@@@CLO@@@@@@@@@@@@@@@@@CLMH@@@@@@@@@@@@@@@@DLNLGOOOOOOOOOOOOOOHHLMFL@@@@@@@@@@@@@@M@LJK@@@@@@@@@@@@@@@B@DMF@@@@@@@@@@@@@@@A@DJN@@@@@@@@@@@@@@@AHDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMD@@@@@@@@@@@@@@@@HDJL@@@@@@@@@@@@@@@@HDMF@@@@@@@@@@@@@@@AHDJJ@@@@@@@@@@@@@@@A@DMG@@@@@@@@@@@@@@@B@DNEL@@@@@@@@@@@@@@O@LLIGOOOOOOOOOOOOOOMHLOBBJJJJJJJJJJJJJJJLLNDEEEEEEEEEEEEEEEEGLOHJJJJJJJJJJJJJJJJKLOLEEEEEEEEEEEEEEEEOLOOOOOOOOOOOOOOOOOOOL ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3674 7687 (CHARNAME 3684 . 7685)) (7743 21620 (TEDIT.INSTALL.CHARBINDINGS 7753 . 10936) - (TEDIT.CLEAR.CHARBINDINGS 10938 . 13529) (TEDIT.GET.CHARACTION 13531 . 16178) (TEDIT.GET.CHARBINDING -16180 . 18104) (TEDIT.GET.ALL.CHARBINDINGS 18106 . 19760) (TEDIT.GET.ALL.CHARACTIONS 19762 . 21618)) ( -21680 31298 (\TEDIT.KEY.CHARLOOKS 21690 . 22632) (\TEDIT.KEY.QUAD 22634 . 24727) (\TEDIT.DEFAULTSSEL -24729 . 25340) (\TEDIT.SETDEFAULT.FROM.SEL 25342 . 26019) (\TEDIT.KEY.SIZE 26021 . 27217) ( -\TEDIT.SUBSCRIPTSEL 27219 . 27422) (\TEDIT.SUPERSCRIPTSEL 27424 . 27628) (\TEDIT.KEY.TRANSFORM 27630 - . 29440) (\TEDIT.KEY.OPENLINE 29442 . 29896) (\TEDIT.KEY.FAMILYN 29898 . 31296)) (31299 31588 ( -CAP-CASECODE 31309 . 31586)) (31622 34248 (\TEDIT.SHOWCARETLOOKS 31632 . 33341) (\TEDIT.DESCRIBEFONT -33343 . 34246)) (34279 49015 (\TEDIT.ONECHAR.BACKWARD 34289 . 35418) (\TEDIT.ONECHAR.FORWARD 35420 . -36638) (\TEDIT.ONELINE.UP 36640 . 39601) (\TEDIT.ONELINE.DOWN 39603 . 41260) (\TEDIT.ONELINE.MOVE -41262 . 43476) (\TEDIT.ONEWORD.BACKWARD 43478 . 44630) (\TEDIT.ONEWORD.FORWARD 44632 . 45783) ( -\TEDIT.LINE.BEGIN 45785 . 46836) (\TEDIT.LINE.END 46838 . 48047) (\TEDIT.DOCUMENT.BEGIN 48049 . 48408) - (\TEDIT.DOCUMENT.END 48410 . 49013)) (49016 50860 (\TEDIT.LINEDELETE.FORWARD 49026 . 49926) ( -\TEDIT.LINEDELETE.BACKWARD 49928 . 50858)) (50861 53119 (\TEDIT.KEY.NEST 50871 . 53117)) (53173 61128 -(\TEDIT.KEY.FIND 53183 . 58268) (\TEDIT.KEY.FIND.SEARCHSTRING 58270 . 59410) (\TEDIT.GET.TARGET.STRING - 59412 . 61126)) (61159 63791 (\TEDIT.KEY.SUBSTITUTE 61169 . 61390) (\TEDIT.MANPAGE 61392 . 62639) ( -\TEDIT.CALL.ED 62641 . 63471) (\TEDIT.SELECT.ALL 63473 . 63789)) (63818 69398 (\TEDIT.CLIPBOARD 63828 - . 65583) (\TEDIT.COPYTOCLIPBOARD 65585 . 66365) (\TEDIT.EXTRACTTOCLIPBOARD 66367 . 66562) ( -\TEDIT.WRITE.SEL 66564 . 69396)) (69750 81465 (\TEDIT.READTABLE 69760 . 70696) ( -\TEDIT.WORDBOUND.READTABLE 70698 . 73327) (TEDIT.GETSYNTAX 73329 . 74848) (TEDIT.SETSYNTAX 74850 . -76055) (TEDIT.GETFUNCTION 76057 . 77229) (TEDIT.SETFUNCTION 77231 . 79217) (TEDIT.WORDGET 79219 . -79480) (TEDIT.WORDSET 79482 . 80113) (TEDIT.ATOMBOUND.READTABLE 80115 . 81463)) (92053 98592 ( -TEDIT.BUTTONS.BUILD 92063 . 96860) (TEDIT.BUTTONBITMAP.FILL 96862 . 98590))))) + (FILEMAP (NIL (3687 7700 (CHARNAME 3697 . 7698)) (7756 21633 (TEDIT.INSTALL.CHARBINDINGS 7766 . 10949) + (TEDIT.CLEAR.CHARBINDINGS 10951 . 13542) (TEDIT.GET.CHARACTION 13544 . 16191) (TEDIT.GET.CHARBINDING +16193 . 18117) (TEDIT.GET.ALL.CHARBINDINGS 18119 . 19773) (TEDIT.GET.ALL.CHARACTIONS 19775 . 21631)) ( +21693 31311 (\TEDIT.KEY.CHARLOOKS 21703 . 22645) (\TEDIT.KEY.QUAD 22647 . 24740) (\TEDIT.DEFAULTSSEL +24742 . 25353) (\TEDIT.SETDEFAULT.FROM.SEL 25355 . 26032) (\TEDIT.KEY.SIZE 26034 . 27230) ( +\TEDIT.SUBSCRIPTSEL 27232 . 27435) (\TEDIT.SUPERSCRIPTSEL 27437 . 27641) (\TEDIT.KEY.TRANSFORM 27643 + . 29453) (\TEDIT.KEY.OPENLINE 29455 . 29909) (\TEDIT.KEY.FAMILYN 29911 . 31309)) (31312 31601 ( +CAP-CASECODE 31322 . 31599)) (31635 34565 (\TEDIT.SHOWCARETLOOKS 31645 . 33658) (\TEDIT.DESCRIBEFONT +33660 . 34563)) (34596 49332 (\TEDIT.ONECHAR.BACKWARD 34606 . 35735) (\TEDIT.ONECHAR.FORWARD 35737 . +36955) (\TEDIT.ONELINE.UP 36957 . 39918) (\TEDIT.ONELINE.DOWN 39920 . 41577) (\TEDIT.ONELINE.MOVE +41579 . 43793) (\TEDIT.ONEWORD.BACKWARD 43795 . 44947) (\TEDIT.ONEWORD.FORWARD 44949 . 46100) ( +\TEDIT.LINE.BEGIN 46102 . 47153) (\TEDIT.LINE.END 47155 . 48364) (\TEDIT.DOCUMENT.BEGIN 48366 . 48725) + (\TEDIT.DOCUMENT.END 48727 . 49330)) (49333 51177 (\TEDIT.LINEDELETE.FORWARD 49343 . 50243) ( +\TEDIT.LINEDELETE.BACKWARD 50245 . 51175)) (51178 53436 (\TEDIT.KEY.NEST 51188 . 53434)) (53490 61445 +(\TEDIT.KEY.FIND 53500 . 58585) (\TEDIT.KEY.FIND.SEARCHSTRING 58587 . 59727) (\TEDIT.GET.TARGET.STRING + 59729 . 61443)) (61476 64108 (\TEDIT.KEY.SUBSTITUTE 61486 . 61707) (\TEDIT.MANPAGE 61709 . 62956) ( +\TEDIT.CALL.ED 62958 . 63788) (\TEDIT.SELECT.ALL 63790 . 64106)) (64135 69715 (\TEDIT.CLIPBOARD 64145 + . 65900) (\TEDIT.COPYTOCLIPBOARD 65902 . 66682) (\TEDIT.EXTRACTTOCLIPBOARD 66684 . 66879) ( +\TEDIT.WRITE.SEL 66881 . 69713)) (70067 81782 (\TEDIT.READTABLE 70077 . 71013) ( +\TEDIT.WORDBOUND.READTABLE 71015 . 73644) (TEDIT.GETSYNTAX 73646 . 75165) (TEDIT.SETSYNTAX 75167 . +76372) (TEDIT.GETFUNCTION 76374 . 77546) (TEDIT.SETFUNCTION 77548 . 79534) (TEDIT.WORDGET 79536 . +79797) (TEDIT.WORDSET 79799 . 80430) (TEDIT.ATOMBOUND.READTABLE 80432 . 81780)) (92370 98909 ( +TEDIT.BUTTONS.BUILD 92380 . 97177) (TEDIT.BUTTONBITMAP.FILL 97179 . 98907))))) STOP diff --git a/library/tedit/TEDIT-FNKEYS.LCOM b/library/tedit/TEDIT-FNKEYS.LCOM index 666b77ce4ecf5f557cd1a7f6e8ebb94fa439207c..5a7ed1a261253652200883515eabc90d84aea0b2 100644 GIT binary patch delta 281 zcmbQRnCaDGrU?(b5@s7SOM9A1!Ns~*%&C|!#Imp#9#MMPX$q1XF)mrS93YM0Z=EjpV85Jgf z&k&tFkx^I-*$M+IV{ZjguogNC8G$>fI;!pw$d7LyH>&3H{r6`VaBgM9q`y@M4drz$5%m>DT3DJdA5 gnkgtLl;$NBr6y)4Cgr3mO+Kvb%gD7^K&2rU0RDbQeE=p`^mS(1Algk(t z^k4>QDp&;sxrTZAhX(7q0JQ^kn2;=MUbr6Csp Dn_oe8