Selection highlighting should be correct if line contains a preceding diacritic. Find from expanded menu should work. Screen and selection should not be garbled after substitute. I have not yet replicated the break-on-put also reported in #2055
This commit is contained in:
commit
02411ef3f4
@ -1,12 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "17-Feb-2025 12:25:36" {WMEDLEY}<library>tedit>TEDIT-FIND.;136 36884
|
||||
(FILECREATED " 6-Mar-2025 20:18:04" {WMEDLEY}<library>TEDIT>TEDIT-FIND.;138 38227
|
||||
|
||||
:EDIT-BY rmk
|
||||
|
||||
:CHANGES-TO (FNS \TEDIT.BASICFIND)
|
||||
:CHANGES-TO (FNS TEDIT.SUBSTITUTE)
|
||||
|
||||
:PREVIOUS-DATE "15-Feb-2025 18:08:55" {WMEDLEY}<library>tedit>TEDIT-FIND.;135)
|
||||
:PREVIOUS-DATE "17-Feb-2025 12:25:36" {WMEDLEY}<library>TEDIT>TEDIT-FIND.;136)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT TEDIT-FINDCOMS)
|
||||
@ -94,7 +94,8 @@
|
||||
(CAR (\TEDIT.BASICFIND.BACKWARD TSTREAM TARGET START END))))])])
|
||||
|
||||
(TEDIT.SUBSTITUTE
|
||||
[LAMBDA (TSTREAM PATTERN REPLACEMENT CONFIRM?) (* ; "Edited 8-Dec-2024 15:47 by rmk")
|
||||
[LAMBDA (TSTREAM PATTERN REPLACEMENT CONFIRM?) (* ; "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")
|
||||
@ -123,11 +124,10 @@
|
||||
|
||||
(* ;; "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.")
|
||||
|
||||
[CL:UNLESS (SETQ SEARCHSTRING (OR PATTERN (TEDIT.GETINPUT TEXTOBJ "Search string:"
|
||||
(GETTEXTPROP TEXTOBJ
|
||||
'
|
||||
TEDIT.LAST.SUBSTITUTE.STRING
|
||||
]
|
||||
(CL:UNLESS SEARCHSTRING
|
||||
[SETQ SEARCHSTRING (OR PATTERN (TEDIT.GETINPUT TEXTOBJ "Search string:"
|
||||
(GETTEXTPROP TEXTOBJ
|
||||
'TEDIT.LAST.SUBSTITUTE.STRING])
|
||||
(CL:UNLESS [OR REPLACEMENT (SETQ REPLACEMENT (TEDIT.GETINPUT TEXTOBJ
|
||||
"Replace string:"
|
||||
(GETTEXTPROP TEXTOBJ
|
||||
@ -137,16 +137,17 @@
|
||||
]
|
||||
(TEDIT.PROMPTPRINT TEXTOBJ "[Aborted]")
|
||||
(RETURN))
|
||||
[RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ)
|
||||
[RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ "Substitute")
|
||||
'(PROGN (\TEDIT.MARKINACTIVE OLDVALUE]
|
||||
(if (type? SELPIECES REPLACEMENT)
|
||||
elseif (OR (STRINGP REPLACEMENT)
|
||||
(LITATOM REPLACEMENT))
|
||||
then (SETQ REPLACEMENT (\TEDIT.SELPIECES.FROM.STRING REPLACEMENT TEXTOBJ)))
|
||||
then (SETQ REPLACEMENT (\TEDIT.SELPIECES.FROM.STRING REPLACEMENT TEXTOBJ))
|
||||
else (RETURN NIL))
|
||||
|
||||
(* ;; "Could be NIL or empty string, meaning just delete all occurrences.")
|
||||
|
||||
(SETQ REPLACE-LEN (fetch (SELPIECES SPLEN) of REPLACEMENT))
|
||||
(SETQ REPLACE-LEN (GETSPC REPLACEMENT SPLEN))
|
||||
(SETQ ACTIONSTRING (CL:IF (ZEROP REPLACE-LEN)
|
||||
"delet"
|
||||
"substitut"))
|
||||
@ -163,7 +164,7 @@
|
||||
(TEDIT.PROMPTPRINT TEXTOBJ (CONCAT (L-CASE ACTIONSTRING T)
|
||||
"ing...")
|
||||
T)
|
||||
(SETQ SEL (fetch (TEXTOBJ SEL) of TEXTOBJ))
|
||||
(SETQ SEL (FGETTOBJ TEXTOBJ SEL))
|
||||
(\TEDIT.SHOWSEL SEL NIL TEXTOBJ)
|
||||
(\TEDIT.RESET.EXTEND.PENDING.DELETE TEXTOBJ)
|
||||
(* ; "Turn off any blue pending delete")
|
||||
@ -174,31 +175,39 @@
|
||||
[SETQ ENDCHAR# (CL:IF (ZEROP (GETSEL SEL DCH))
|
||||
(GETTOBJ TEXTOBJ TEXTLEN)
|
||||
(IPLUS STARTCHAR# (SUB1 (GETSEL SEL DCH))))]
|
||||
|
||||
(* ;;
|
||||
"NOTE: SEARCHSTRING may contain wild cards, so the hits may be of different lengths.")
|
||||
|
||||
[if CONFIRMFLG
|
||||
then
|
||||
(* ;; "In this case the selection moves along, ending up at the last hit.")
|
||||
|
||||
[bind PENDING.SEL CHOICE while (SETQ RANGE (TEDIT.FIND TEXTOBJ
|
||||
SEARCHSTRING STARTCHAR#
|
||||
ENDCHAR# T))
|
||||
(bind (LASTSEL _ (\TEDIT.COPYSEL SEL))
|
||||
while (SETQ RANGE (TEDIT.FIND TEXTOBJ SEARCHSTRING STARTCHAR# ENDCHAR#
|
||||
T))
|
||||
do (* ;
|
||||
"Show each substitution site and ask for permission")
|
||||
(SETQ PENDING.SEL (TEDIT.SETSEL TEXTOBJ (CAR RANGE)
|
||||
(ADD1 (IDIFFERENCE (CADR RANGE)
|
||||
(CAR RANGE)))
|
||||
'RIGHT T))
|
||||
(\TEDIT.SHOWSEL PENDING.SEL T TEXTOBJ)
|
||||
(TEDIT.NORMALIZECARET TEXTOBJ PENDING.SEL)
|
||||
(SELECTQ (U-CASE (NTHCHAR (TEDIT.GETINPUT TEXTOBJ
|
||||
(\TEDIT.UPDATE.SEL SEL (CAR RANGE)
|
||||
NIL
|
||||
'RIGHT
|
||||
'PENDINGDEL
|
||||
(ADD1 (CADR RANGE)))
|
||||
(\TEDIT.FIXSEL SEL TEXTOBJ)
|
||||
(\TEDIT.SHOWSEL SEL T TEXTOBJ)
|
||||
(TEDIT.NORMALIZECARET TEXTOBJ SEL)
|
||||
[SELECTQ (U-CASE (NTHCHAR (TEDIT.GETINPUT TEXTOBJ
|
||||
"OK to replace? ['q' quits]" "Yes")
|
||||
1))
|
||||
(Q (RETURN))
|
||||
(Q (GO $$OUT))
|
||||
(Y (* ; "Do this one")
|
||||
(\TEDIT.REPLACE.SELPIECES (\TEDIT.SELPIECES.COPY REPLACEMENT
|
||||
'COPY TEXTOBJ)
|
||||
TEXTOBJ PENDING.SEL)
|
||||
TEXTOBJ SEL)
|
||||
(\TEDIT.COPYSEL SEL LASTSEL)
|
||||
(* ; "This may be where we end up")
|
||||
(add NREPLACEMENTS 1)
|
||||
(SETQ STARTCHAR# (GETSEL PENDING.SEL CHLIM))
|
||||
(SETQ STARTCHAR# (GETSEL SEL CHLIM))
|
||||
(* ; "Next start, compensate for end")
|
||||
[add ENDCHAR# (IDIFFERENCE REPLACE-LEN
|
||||
(ADD1 (IDIFFERENCE (CADR RANGE)
|
||||
@ -207,13 +216,13 @@
|
||||
(* ;;
|
||||
"Turn off rejected selection, search for next starting one charcter later. ENDCHAR# is still OK.")
|
||||
|
||||
(\TEDIT.SHOWSEL PENDING.SEL NIL TEXTOBJ)
|
||||
(\TEDIT.SHOWSEL SEL NIL TEXTOBJ)
|
||||
(SETQ STARTCHAR# (ADD1 (CAR RANGE]
|
||||
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)
|
||||
(SAVESEL _ (\TEDIT.COPYSEL SEL))
|
||||
EVENTS while (SETQ RANGE (TEDIT.FIND TEXTOBJ SEARCHSTRING STARTCHAR#
|
||||
ENDCHAR# T))
|
||||
do (CL:UNLESS FIRSTHIT (* ; "For final line updating.")
|
||||
@ -238,12 +247,21 @@
|
||||
(add TOTALDIFF HITDIFF)
|
||||
finally (CL:UNLESS (EQ NREPLACEMENTS 0)
|
||||
|
||||
(* ;;
|
||||
"At least one replacement, update the lines that have changed.")
|
||||
(* ;; "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.")
|
||||
|
||||
(\TEDIT.UPDATE.LINES TEXTOBJ 'INSERTION FIRSTHIT
|
||||
(IDIFFERENCE (GETSEL SEL CHLIM)
|
||||
FIRSTHIT))
|
||||
(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)))
|
||||
|
||||
(* ;; "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?")
|
||||
|
||||
@ -251,6 +269,7 @@
|
||||
(\TEDIT.UPDATE.SEL SEL FIRSTHIT (IDIFFERENCE HITLAST FIRSTHIT
|
||||
)
|
||||
'RIGHT)
|
||||
(\TEDIT.FIXSEL SEL TEXTOBJ)
|
||||
(\TEDIT.HISTORYADD.COMPOSITE TEXTOBJ EVENTS))]
|
||||
|
||||
(* ;; "Save the search & replacement strings to offer for next time:")
|
||||
@ -563,8 +582,8 @@
|
||||
(DREVERSE $$VAL))])
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (784 22132 (TEDIT.FIND 794 . 2793) (TEDIT.FIND.BACKWARD 2795 . 5117) (TEDIT.SUBSTITUTE
|
||||
5119 . 17479) (TEDIT.NEXT 17481 . 22130)) (22165 36861 (\TEDIT.WCFIND 22175 . 25694) (\TEDIT.BASICFIND
|
||||
25696 . 28055) (\TEDIT.WCFIND.BACKWARD 28057 . 31521) (\TEDIT.BASICFIND.BACKWARD 31523 . 33780) (
|
||||
\TEDIT.PARSE.SEARCHSTRING 33782 . 36859)))))
|
||||
(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)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@ -1,13 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "19-Feb-2025 13:27:11" {WMEDLEY}<library>tedit>TEDIT-MENU.;454 160645
|
||||
(FILECREATED " 5-Mar-2025 20:52:33" {WMEDLEY}<library>TEDIT>TEDIT-MENU.;455 160734
|
||||
|
||||
:EDIT-BY rmk
|
||||
|
||||
:CHANGES-TO (FNS \TEDIT.PARAMENU.FILLIN \TEDIT.PARALOOKS.TO.MARBAR)
|
||||
(VARS TEDIT-MENUCOMS)
|
||||
:CHANGES-TO (FNS \TEDIT.EXPANDEDMENU.ACTIONFN)
|
||||
|
||||
:PREVIOUS-DATE " 8-Feb-2025 23:19:34" {WMEDLEY}<library>tedit>TEDIT-MENU.;453)
|
||||
:PREVIOUS-DATE "19-Feb-2025 13:27:11" {WMEDLEY}<library>TEDIT>TEDIT-MENU.;454)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT TEDIT-MENUCOMS)
|
||||
@ -1326,7 +1325,8 @@
|
||||
(RETURN 'DON'T])
|
||||
|
||||
(\TEDIT.EXPANDEDMENU.ACTIONFN
|
||||
[LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM MAINSTREAM) (* ; "Edited 7-Jan-2025 22:36 by rmk")
|
||||
[LAMBDA (OBJ MENUSEL MENUWINDOW MENUSTREAM MAINSTREAM) (* ; "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")
|
||||
(* ; "Edited 20-Oct-2024 15:40 by rmk")
|
||||
@ -1373,7 +1373,8 @@
|
||||
else (TEDIT.PROMPTPRINT MAINSTREAM "Include file not specified" T
|
||||
)))
|
||||
(FIND (SETQ STATE (MB.GET 'FINDPATTERN MENUTEXTOBJ 'STATE MENUSEL))
|
||||
(if (IGEQ 1 (NCHARS STATE))
|
||||
(if (IGEQ (NCHARS STATE)
|
||||
1)
|
||||
then (\TEDIT.KEY.FIND MAINSTREAM NIL NIL NIL NIL STATE)
|
||||
else (TEDIT.PROMPTPRINT MAINSTREAM "Search pattern not specified" T)
|
||||
))
|
||||
@ -2619,28 +2620,28 @@
|
||||
(ADDTOVAR LAMA )
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (5083 51454 (DRAWMARGINSCALE 5093 . 8552) (MARGINBAR 8554 . 15679) (MARGINBAR.CREATE
|
||||
15681 . 19100) (MB.MARGINBAR.BUTTONEVENTINFN 19102 . 26741) (MB.MARGINBAR.SELFN.TABS 26743 . 31983) (
|
||||
MB.MARGINBAR.SELFN.TABS.KIND 31985 . 32920) (MARGINBAR.GETSTATEFN 32922 . 36800) (MARGINBAR.SETSTATEFN
|
||||
36802 . 37012) (MARGINBAR.NEUTRALIZE 37014 . 37427) (MARGINBAR.LOOKS 37429 . 40535) (
|
||||
MB.MARGINBAR.SIZEFN 40537 . 41140) (MB.MARGINBAR.DISPLAYFN 41142 . 44203) (MDESCALE 44205 . 44745) (
|
||||
MSCALE 44747 . 45077) (MB.MARGINBAR.SHOWTAB 45079 . 47402) (MB.MARGINBAR.TABTRACK 47404 . 48789) (
|
||||
MARGINBAR.INIT 48791 . 50184) (\TEDIT.PARALOOKS.TO.MARBAR 50186 . 51452)) (52279 58496 (
|
||||
\TEDIT.MENU.START 52289 . 57920) (\TEDIT.MENU.BUTTONEVENTFN 57922 . 58494)) (58815 66737 (
|
||||
\TEDIT.MENU.CREATE 58825 . 60636) (\TEDIT.MENU.PARSE 60638 . 64327) (\TEDIT.MENU.NEUTRALIZE 64329 .
|
||||
66400) (\TEDITMENU.RECORD.UNFORMATTED 66402 . 66735)) (66803 86736 (\TEDIT.EXPANDEDMENU.CREATE 66813
|
||||
. 72108) (\TEDIT.EXPANDEDMENU.START 72110 . 73484) (\TEDIT.EXPANDEDMENU.FN 73486 . 76741) (
|
||||
\TEDIT.EXPANDEDMENU.ACTIONFN 76743 . 86177) (TEDIT.MENUSTREAM 86179 . 86734)) (86798 102289 (
|
||||
\TEDIT.PARAMENU.CREATE 86808 . 92829) (\TEDIT.PARAMENU.START 92831 . 93697) (\TEDIT.APPLY.PARALOOKS
|
||||
93699 . 94751) (\TEDIT.SHOW.PARALOOKS 94753 . 97536) (\TEDIT.PARAMENU.FILLIN 97538 . 102287)) (102408
|
||||
128184 (\TEDIT.CHARMENU.CREATE 102418 . 105022) (\TEDIT.CHARMENU.START 105024 . 106055) (
|
||||
\TEDIT.CHARMENU.SPEC 106057 . 110506) (\TEDIT.CHARMENU.PARSE 110508 . 113676) (\TEDIT.CHARMENU.FILLIN
|
||||
113678 . 118023) (\TEDIT.SHOW.CHARLOOKS 118025 . 121282) (\TEDIT.APPLY.CHARLOOKS 121284 . 122445) (
|
||||
\TEDIT.OFFSETTYPE.STATEFN 122447 . 124410) (\TEDIT.OTHER.STATECHANGEFN 124412 . 126057) (
|
||||
\TEDIT.OTHER.SELECTFN 126059 . 128182)) (128246 154685 (\TEDIT.PAGEMENU.CREATE 128256 . 135450) (
|
||||
\TEDIT.SHOW.PAGELOOKS 135452 . 137247) (\TEDIT.PAGEMENU.FILLIN 137249 . 138799) (
|
||||
\TEDIT.PAGEREGION.UNPARSE 138801 . 147991) (\TEDIT.APPLY.PAGELOOKS 147993 . 149920) (
|
||||
\TEDIT.CHANGE.PAGELOOKS 149922 . 153841) (\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 153843 . 154683)) (154686
|
||||
160489 (\TEDIT.PAGEMENU.CREATE.HEADINGS 154696 . 157508) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 157510
|
||||
. 158935) (\TEDIT.PAGEMENU.HEADINGS.STATEFN 158937 . 160487)))))
|
||||
(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)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@ -1,12 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "25-Feb-2025 10:40:05" {WMEDLEY}<library>tedit>TEDIT-SCREEN.;866 188857
|
||||
(FILECREATED " 6-Mar-2025 11:42:48" {WMEDLEY}<library>TEDIT>TEDIT-SCREEN.;867 189057
|
||||
|
||||
:EDIT-BY rmk
|
||||
|
||||
:CHANGES-TO (FNS \TEDIT.FORMATLINE)
|
||||
|
||||
:PREVIOUS-DATE "19-Feb-2025 13:38:09" {WMEDLEY}<library>tedit>TEDIT-SCREEN.;864)
|
||||
:PREVIOUS-DATE "25-Feb-2025 10:40:05" {WMEDLEY}<library>TEDIT>TEDIT-SCREEN.;866)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT TEDIT-SCREENCOMS)
|
||||
@ -687,6 +687,7 @@
|
||||
|
||||
(\TEDIT.FORMATLINE
|
||||
[LAMBDA (TSTREAM CH#1 LINE REGION IMAGESTREAM FORMATTINGSTATE)
|
||||
(* ; "Edited 6-Mar-2025 11:42 by rmk")
|
||||
(* ; "Edited 25-Feb-2025 10:39 by rmk")
|
||||
(* ; "Edited 19-Feb-2025 13:36 by rmk")
|
||||
(* ; "Edited 10-Feb-2025 09:59 by rmk")
|
||||
@ -1011,7 +1012,9 @@
|
||||
(SETQ INSPACES NIL)
|
||||
(CL:UNLESS (DIACRITICP CH)
|
||||
|
||||
(* ;; "Assume that diacritics have zero width. \DISPLAYLINE and \TEDIT.HARDCOPY.DISPLAYLINE adjust their alignment, centering on the next character. However, if a diacritic is wider than the the next character, here the next character should be assigned the diacritic's width. ")
|
||||
(* ;; "Assume that diacritics have zero width. DISPLAYLINE and HARDCOPY.DISPLAYLINE adjust their alignment, centering on the next character. However, if a diacritic is wider than the the next character, here the next character should be assigned the diacritic's width. ")
|
||||
|
||||
(* ;; "CHTOLINEX under FIXSEL also needs to deal with this.")
|
||||
|
||||
(add TX DX))
|
||||
(CL:WHEN (IGREATERP TX WIDTH)
|
||||
@ -2884,21 +2887,21 @@
|
||||
(\TEDIT.LINE.TALLP LINE PHEIGHT))))])
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (27983 30199 (\TEDIT.LINEDESCRIPTOR.DEFPRINT 27993 . 30197)) (37604 120268 (
|
||||
\TEDIT.FORMATLINE 37614 . 72935) (\TEDIT.FORMATLINE.SETUP.PARA 72937 . 78103) (
|
||||
\TEDIT.FORMATLINE.HORIZONTAL 78105 . 82678) (\TEDIT.FORMATLINE.VERTICAL 82680 . 85131) (
|
||||
\TEDIT.FORMATLINE.JUSTIFY 85133 . 91154) (\TEDIT.FORMATLINE.TABS 91156 . 99184) (\TEDIT.SCALE.TABS
|
||||
99186 . 99977) (\TEDIT.FORMATLINE.PURGE.SPACES 99979 . 101406) (\TEDIT.FORMATLINE.FLUSH.SOFTHYPHEN
|
||||
101408 . 102309) (\TEDIT.FORMATLINE.EMPTY 102311 . 107338) (\TEDIT.FORMATLINE.UPDATELOOKS 107340 .
|
||||
113462) (\TEDIT.FORMATLINE.LASTLEGAL 113464 . 117004) (\TEDIT.LINES.ABOVE 117006 . 120266)) (120385
|
||||
122300 (\TLVALIDATE 120395 . 122298)) (122498 144036 (\TEDIT.DISPLAYLINE 122508 . 136148) (
|
||||
\TEDIT.DISPLAYLINE.TABS 136150 . 138954) (\TEDIT.LINECACHE 138956 . 139684) (\TEDIT.CREATE.LINECACHE
|
||||
139686 . 140522) (\TEDIT.BLTCHAR 140524 . 143151) (\TEDIT.DIACRITIC.SHIFT 143153 . 144034)) (144651
|
||||
188834 (\TEDIT.BACKFORMAT 144661 . 147215) (\TEDIT.PREVIOUS.LINEBREAK 147217 . 149940) (
|
||||
\TEDIT.UPDATE.LINES 149942 . 154812) (\TEDIT.PANE.CREATELINES 154814 . 157917) (
|
||||
\TEDIT.SUFFIXLINE.CREATE 157919 . 159294) (\TEDIT.LINES.BELOW 159296 . 163757) (\TEDIT.MEASURED.LINES
|
||||
163759 . 165659) (\TEDIT.VALID.LINES 165661 . 173922) (\TEDIT.LASTVALIDLINE 173924 . 178849) (
|
||||
\TEDIT.NEXTVALIDLINE 178851 . 180281) (\TEDIT.CLEARPANE.BELOW.LINE 180283 . 182389) (\TEDIT.INSERTLINE
|
||||
182391 . 183777) (\TEDIT.LINE.BOTTOM 183779 . 187009) (\TEDIT.SHOW.AT.BOTTOMP 187011 . 188121) (
|
||||
\TEDIT.SHOW.AT.TOPP 188123 . 188832)))))
|
||||
(FILEMAP (NIL (27983 30199 (\TEDIT.LINEDESCRIPTOR.DEFPRINT 27993 . 30197)) (37604 120468 (
|
||||
\TEDIT.FORMATLINE 37614 . 73135) (\TEDIT.FORMATLINE.SETUP.PARA 73137 . 78303) (
|
||||
\TEDIT.FORMATLINE.HORIZONTAL 78305 . 82878) (\TEDIT.FORMATLINE.VERTICAL 82880 . 85331) (
|
||||
\TEDIT.FORMATLINE.JUSTIFY 85333 . 91354) (\TEDIT.FORMATLINE.TABS 91356 . 99384) (\TEDIT.SCALE.TABS
|
||||
99386 . 100177) (\TEDIT.FORMATLINE.PURGE.SPACES 100179 . 101606) (\TEDIT.FORMATLINE.FLUSH.SOFTHYPHEN
|
||||
101608 . 102509) (\TEDIT.FORMATLINE.EMPTY 102511 . 107538) (\TEDIT.FORMATLINE.UPDATELOOKS 107540 .
|
||||
113662) (\TEDIT.FORMATLINE.LASTLEGAL 113664 . 117204) (\TEDIT.LINES.ABOVE 117206 . 120466)) (120585
|
||||
122500 (\TLVALIDATE 120595 . 122498)) (122698 144236 (\TEDIT.DISPLAYLINE 122708 . 136348) (
|
||||
\TEDIT.DISPLAYLINE.TABS 136350 . 139154) (\TEDIT.LINECACHE 139156 . 139884) (\TEDIT.CREATE.LINECACHE
|
||||
139886 . 140722) (\TEDIT.BLTCHAR 140724 . 143351) (\TEDIT.DIACRITIC.SHIFT 143353 . 144234)) (144851
|
||||
189034 (\TEDIT.BACKFORMAT 144861 . 147415) (\TEDIT.PREVIOUS.LINEBREAK 147417 . 150140) (
|
||||
\TEDIT.UPDATE.LINES 150142 . 155012) (\TEDIT.PANE.CREATELINES 155014 . 158117) (
|
||||
\TEDIT.SUFFIXLINE.CREATE 158119 . 159494) (\TEDIT.LINES.BELOW 159496 . 163957) (\TEDIT.MEASURED.LINES
|
||||
163959 . 165859) (\TEDIT.VALID.LINES 165861 . 174122) (\TEDIT.LASTVALIDLINE 174124 . 179049) (
|
||||
\TEDIT.NEXTVALIDLINE 179051 . 180481) (\TEDIT.CLEARPANE.BELOW.LINE 180483 . 182589) (\TEDIT.INSERTLINE
|
||||
182591 . 183977) (\TEDIT.LINE.BOTTOM 183979 . 187209) (\TEDIT.SHOW.AT.BOTTOMP 187211 . 188321) (
|
||||
\TEDIT.SHOW.AT.TOPP 188323 . 189032)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@ -1,12 +1,12 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "28-Feb-2025 17:45:33" {WMEDLEY}<library>TEDIT>TEDIT-SELECTION.;660 152607
|
||||
(FILECREATED " 6-Mar-2025 11:59:08" {WMEDLEY}<library>TEDIT>TEDIT-SELECTION.;661 153051
|
||||
|
||||
:EDIT-BY rmk
|
||||
|
||||
:CHANGES-TO (FNS \TEDIT.SET.SEL.LOOKS TEDIT.SELPROP)
|
||||
:CHANGES-TO (FNS \TEDIT.CHTOLINEX)
|
||||
|
||||
:PREVIOUS-DATE "18-Feb-2025 22:06:22" {WMEDLEY}<library>TEDIT>TEDIT-SELECTION.;656)
|
||||
:PREVIOUS-DATE "28-Feb-2025 17:45:33" {WMEDLEY}<library>TEDIT>TEDIT-SELECTION.;660)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT TEDIT-SELECTIONCOMS)
|
||||
@ -1132,7 +1132,8 @@
|
||||
SEL])
|
||||
|
||||
(\TEDIT.CHTOLINEX
|
||||
[LAMBDA (TEXTOBJ LINE CH# AFTER) (* ; "Edited 28-Nov-2024 14:41 by rmk")
|
||||
[LAMBDA (TEXTOBJ LINE CH# AFTER) (* ; "Edited 6-Mar-2025 11:57 by rmk")
|
||||
(* ; "Edited 28-Nov-2024 14:41 by rmk")
|
||||
(* ; "Edited 17-Nov-2024 15:58 by rmk")
|
||||
(* ; "Edited 13-Jun-2024 17:12 by rmk")
|
||||
(* ; "Edited 10-May-2024 00:26 by rmk")
|
||||
@ -1166,10 +1167,17 @@
|
||||
(IEQP CH# (FGETLD LINE LCHAR1)))
|
||||
then (FGETLD LINE LX1)
|
||||
else (for CHARSLOT (X _ (FGETLD LINE LX1))
|
||||
(CHNO _ (FGETLD LINE LCHAR1)) incharslots THISLINE unless (type? CHARLOOKS CHARW
|
||||
)
|
||||
(CHNO _ (FGETLD LINE LCHAR1)) incharslots THISLINE
|
||||
eachtime (CL:WHEN (AND CHAR (DIACRITICP CHAR))
|
||||
|
||||
(* ;; "If the diacritic CHARW is greater than the CHARW of the next slot, we should set the diacritic CHARW to (IDIFFERENCE CHARW (NEXT CHARW)). ")
|
||||
|
||||
(* ;; "i.e. (IMAX 0 (IDIFFERENCE CHARW (NEXT CHARW))")
|
||||
|
||||
(SETQ CHARW 0)) unless (type? CHARLOOKS CHARW)
|
||||
do
|
||||
(* ;; "Update the running X-position in the line, skiping look-slots")
|
||||
(* ;;
|
||||
"Update the running X-position in the line, skiping look-slots and skipping diacritics")
|
||||
|
||||
(CL:WHEN (IEQP CHNO CH#)
|
||||
(if AFTER
|
||||
@ -2456,25 +2464,25 @@
|
||||
(ADDTOVAR LAMA TEDIT.SELPROP)
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (15596 17417 (\TEDIT.SELECTION.DEFPRINT 15606 . 17415)) (17454 18959 (
|
||||
\TEDIT.SET.GLOBAL.SELECTIONS 17464 . 18957)) (18960 24829 (\TEDIT.SELECTED.PIECES 18970 . 20490) (
|
||||
\TEDIT.FIND.PROTECTED.END 20492 . 22161) (\TEDIT.FIND.PROTECTED.START 22163 . 24021) (
|
||||
\TEDIT.WORD.BOUND 24023 . 24827)) (24963 59162 (\TEDIT.EXTEND.SEL 24973 . 32061) (\TEDIT.SCAN.LINE
|
||||
32063 . 43841) (\TEDIT.SCAN.LINE.WORD 43843 . 49204) (\TEDIT.XYTOSEL 49206 . 56315) (\TEDIT.REGIONTYPE
|
||||
56317 . 57336) (\TEDIT.XYTOSEL.INLINEP 57338 . 57793) (\TEDIT.XYTOSEL.LINE 57795 . 59160)) (59163
|
||||
72325 (\TEDIT.FIXSEL 59173 . 68786) (\TEDIT.CHTOLINEX 68788 . 72323)) (72326 75973 (
|
||||
\TEDIT.RESET.EXTEND.PENDING.DELETE 72336 . 73309) (\TEDIT.SET.SEL.LOOKS 73311 . 75971)) (75974 94020 (
|
||||
\TEDIT.SHOWSEL 75984 . 80444) (\TEDIT.SHOWSEL.HILIGHT 80446 . 85067) (\TEDIT.UPDATE.SEL 85069 . 88568)
|
||||
(\TEDIT.CARETLINE 88570 . 89284) (\TEDIT.SEL.L1 89286 . 89792) (\TEDIT.SEL.LN 89794 . 90300) (
|
||||
\TEDIT.SEL.DELETEDCHARS 90302 . 94018)) (94021 98727 (\TEDIT.COPYSEL 94031 . 96497) (
|
||||
\TEDIT.SEL.CHANGED? 96499 . 98725)) (98758 111487 (\TEDIT.SELECT.OBJECT 98768 . 103274) (
|
||||
\TEDIT.SHOWSEL.OBJECT 103276 . 105438) (\TEDIT.CLIP.OBJECT 105440 . 107444) (\TEDIT.OPERATE.OBJECT
|
||||
107446 . 111485)) (111515 129862 (\TEDIT.SELPIECES 111525 . 115473) (\TEDIT.SELPIECES.COPY 115475 .
|
||||
117513) (\TEDIT.SELPIECES.CONCAT 117515 . 119394) (\TEDIT.SELPIECES.CHARTRANSFORM 119396 . 122354) (
|
||||
\TEDIT.SELPIECES.FROM.STRING 122356 . 127497) (\TEDIT.SELPIECES.TO.STRING 127499 . 129860)) (129915
|
||||
152438 (TEDIT.XYTOCH 129925 . 132309) (TEDIT.SELPROP 132311 . 136341) (TEDIT.GETPOINT 136343 . 138263)
|
||||
(TEDIT.GETSEL 138265 . 138999) (TEDIT.GETSEL.PARA 139001 . 139950) (TEDIT.SCANSEL 139952 . 140900) (
|
||||
TEDIT.SET.SEL.LOOKS 140902 . 142281) (TEDIT.SETSEL 142283 . 147047) (TEDIT.SHOWSEL 147049 . 148329) (
|
||||
TEDIT.SEL.AS.STRING 148331 . 150816) (TEDIT.SEL.AS.SEXPR 150818 . 152104) (TEDIT.SELECTALL 152106 .
|
||||
152436)))))
|
||||
(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)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user