diff --git a/library/tedit/TEDIT-FILE b/library/tedit/TEDIT-FILE
index 1a683ac2..d7555026 100644
--- a/library/tedit/TEDIT-FILE
+++ b/library/tedit/TEDIT-FILE
@@ -1,12 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "31-May-2025 10:42:55" {WMEDLEY}<library>TEDIT>TEDIT-FILE.;628 165414 
+(FILECREATED "11-Jul-2025 08:36:14" {WMEDLEY}<library>tedit>TEDIT-FILE.;630 165294 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS TEDIT.GET)
+      :CHANGES-TO (FNS TEDIT.PUT)
 
-      :PREVIOUS-DATE "30-May-2025 11:21:42" {WMEDLEY}<library>TEDIT>TEDIT-FILE.;627)
+      :PREVIOUS-DATE "10-Jul-2025 09:52:55" {WMEDLEY}<library>tedit>TEDIT-FILE.;629)
 
 
 (PRETTYCOMPRINT TEDIT-FILECOMS)
@@ -396,7 +396,8 @@
     (TEDIT.INCLUDE TSTREAM INFILE START END SAFE T])
 
 (TEDIT.PUT
-  [LAMBDA (TSTREAM FILE FORCENEW UNFORMATTED? FORMAT QUIET)  (* ; "Edited 25-Apr-2025 23:33 by rmk")
+  [LAMBDA (TSTREAM FILE FORCENEW UNFORMATTED? FORMAT QUIET)  (* ; "Edited 11-Jul-2025 08:36 by rmk")
+                                                             (* ; "Edited 25-Apr-2025 23:33 by rmk")
                                                              (* ; "Edited 22-Apr-2025 15:58 by rmk")
                                                              (* ; "Edited 14-Mar-2025 11:52 by rmk")
                                                              (* ; "Edited 22-Feb-2025 15:56 by rmk")
@@ -420,116 +421,115 @@
     (* ;; "Returns the destination stream open for input.")
 
     (SETQ TSTREAM (TEXTSTREAM TSTREAM))
-    (CL:UNLESS (\TEDIT.READONLY TSTREAM)
-        (RESETLST
-            (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM))
-                   CHARSTREAM NEWPIECES PUTFN OLDEXTFORMAT NEWEXTFORMAT PUTSTRING)
-                  (CL:WHEN (AND (SETQ PUTFN (GETTEXTPROP TEXTOBJ 'PUTFN))
-                                (EQ (APPLY* PUTFN TSTREAM (FULLNAME FILE)
-                                           'BEFORE)
-                                    'DON'T))
+    (if (EQ 'READONLY (\TEDIT.READONLY TSTREAM))
+        then (TEDIT.PROMPTPRINT TSTREAM "Cannot save a read-only text-stream--aborted" T)
+      else
+      (RESETLST
+          (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TSTREAM))
+                 CHARSTREAM NEWPIECES PUTFN OLDEXTFORMAT NEWEXTFORMAT PUTSTRING)
+                (CL:WHEN (AND (SETQ PUTFN (GETTEXTPROP TEXTOBJ 'PUTFN))
+                              (EQ (APPLY* PUTFN TSTREAM (FULLNAME FILE)
+                                         'BEFORE)
+                                  'DON'T))
 
-                      (* ;; "PUTFN BEFORE says it can't be saved, even though asked.  Let him know")
+                    (* ;; "PUTFN BEFORE says it can't be saved, even though asked.  Let him know")
 
-                      (TEDIT.PROMPTPRINT TEXTOBJ "This document cannot be saved" T T)
-                      (RETURN NIL))
-                  (CL:UNLESS [OR (IGREATERP (TEXTLEN TEXTOBJ)
-                                        0)
-                                 (EQ (CHARCODE Y)
-                                     (CHCON1 (TEDIT.GETINPUT TEXTOBJ 
-                                                    "Document is empty.  Save anyway? " "Yes"]
-                         (RETURN NIL))
-                  (if (AND (STREAMP FILE)
-                           (\GETSTREAM FILE 'OUTPUT T))
-                      then (SETQ CHARSTREAM FILE)
-                    else (CL:UNLESS UNFORMATTED?
-                             (if (\TEDIT.FORMATTEDSTREAMP TEXTOBJ)
-                                 then [SETQ UNFORMATTED?
-                                       (AND (GETTEXTPROP TEXTOBJ 'CLEARGET)
-                                            (EQ 'N (U-CASE (NTHCHAR (TEDIT.GETINPUT TEXTOBJ 
+                    (TEDIT.PROMPTPRINT TEXTOBJ "This document cannot be saved" T T)
+                    (RETURN NIL))
+                (CL:UNLESS [OR (IGREATERP (TEXTLEN TEXTOBJ)
+                                      0)
+                               (EQ (CHARCODE Y)
+                                   (CHCON1 (TEDIT.GETINPUT TEXTOBJ 
+                                                  "Document is empty.  Save anyway? " "Yes"]
+                       (RETURN NIL))
+                (if (AND (STREAMP FILE)
+                         (\GETSTREAM FILE 'OUTPUT T))
+                    then (SETQ CHARSTREAM FILE)
+                  else (CL:UNLESS UNFORMATTED?
+                           (if (\TEDIT.FORMATTEDSTREAMP TEXTOBJ)
+                               then [SETQ UNFORMATTED?
+                                     (AND (GETTEXTPROP TEXTOBJ 'CLEARGET)
+                                          (EQ 'N (U-CASE (NTHCHAR (TEDIT.GETINPUT TEXTOBJ 
                                                               "Convert plaintext to formatted file? "
-                                                                           "No")
-                                                                  1]
-                               else (SETQ UNFORMATTED? T)))
-                         (SELECTQ FILE
-                             (NIL (CL:UNLESS FORCENEW        (* ; "Forcenew for templates?")
-                                      (CL:WHEN [AND (TEXTPROP TEXTOBJ 'TEMPLATE)
-                                                    (EQ 'N (U-CASE (NTHCHAR (TEDIT.GETINPUT TEXTOBJ 
+                                                                         "No")
+                                                                1]
+                             else (SETQ UNFORMATTED? T)))
+                       (SELECTQ FILE
+                           (NIL (CL:UNLESS FORCENEW          (* ; "Forcenew for templates?")
+                                    (CL:WHEN [AND (TEXTPROP TEXTOBJ 'TEMPLATE)
+                                                  (EQ 'N (U-CASE (NTHCHAR (TEDIT.GETINPUT TEXTOBJ 
                                                                                "Overwrite template? "
-                                                                                   "No")
-                                                                          1]
-                                          (SETQ FORCENEW 'DETEMPLATE)))
-                                  [SETQ FILE (\TEDIT.MAKEFILENAME (TEDIT.GETINPUT TEXTOBJ "Put to: "
-                                                                         (CL:UNLESS FORCENEW
-                                                                                (
-                                                                               \TEDIT.LIKELY.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)
-                             (RETURN)))
+                                                                                 "No")
+                                                                        1]
+                                        (SETQ FORCENEW 'DETEMPLATE)))
+                                [SETQ FILE (\TEDIT.MAKEFILENAME (TEDIT.GETINPUT TEXTOBJ "Put to: "
+                                                                       (CL:UNLESS FORCENEW
+                                                                              (\TEDIT.LIKELY.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)
+                           (RETURN)))
 
-             (* ;; "")
+           (* ;; "")
 
-             (* ;; "Ready to save. IF the external format changes, we don't want to update the current textstream.  Unlesss we figure out what the new proper piecetypes should be (FATFILE2, UTF8...).")
+           (* ;; "Ready to save. IF the external format changes, we don't want to update the current textstream.  Unlesss we figure out what the new proper piecetypes should be (FATFILE2, UTF8...).")
 
-                  [SETQ OLDEXTFORMAT (AND (STREAMP (FGETTOBJ TEXTOBJ TXTFILE))
-                                          (STREAMPROP (FGETTOBJ TEXTOBJ TXTFILE)
-                                                 'FORMAT]
-                  (SETQ NEWEXTFORMAT (OR FORMAT (GETTEXTPROP TEXTOBJ 'OUTPUT-FORMAT)
-                                         OLDEXTFORMAT :DEFAULT))
-                  [RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ "Put")
-                         '(PROGN (\TEDIT.MARKINACTIVE OLDVALUE]
-                  [RESETSAVE [SETQ CHARSTREAM (OPENSTREAM FILE 'OUTPUT 'NEW
-                                                     `([TYPE ,(CL:IF UNFORMATTED?
-                                                                  'TEXT
-                                                                  'BINARY)]
-                                                       (LINELENGTH T)
-                                                       (FORMAT ,NEWEXTFORMAT]
-                         '(AND RESETSTATE (DELFILE (CLOSEF? OLDVALUE]
-                  [RESETSAVE (\TEDIT.PUTRESET (CONS (THIS.PROCESS)
-                                                    'DON'T]
-                  (CL:UNLESS QUIET
-                      (SETQ PUTSTRING (CONCAT "Put to " (FULLNAME CHARSTREAM)
-                                             "..."))
-                      (TEDIT.PROMPTPRINT TEXTOBJ PUTSTRING T))
+                [SETQ OLDEXTFORMAT (AND (STREAMP (FGETTOBJ TEXTOBJ TXTFILE))
+                                        (STREAMPROP (FGETTOBJ TEXTOBJ TXTFILE)
+                                               'FORMAT]
+                (SETQ NEWEXTFORMAT (OR FORMAT (GETTEXTPROP TEXTOBJ 'OUTPUT-FORMAT)
+                                       OLDEXTFORMAT :DEFAULT))
+                [RESETSAVE (\TEDIT.MARKACTIVE TEXTOBJ "Put")
+                       '(PROGN (\TEDIT.MARKINACTIVE OLDVALUE]
+                [RESETSAVE [SETQ CHARSTREAM (OPENSTREAM FILE 'OUTPUT 'NEW
+                                                   `([TYPE ,(CL:IF UNFORMATTED?
+                                                                'TEXT
+                                                                'BINARY)]
+                                                     (LINELENGTH T)
+                                                     (FORMAT ,NEWEXTFORMAT]
+                       '(AND RESETSTATE (DELFILE (CLOSEF? OLDVALUE]
+                [RESETSAVE (\TEDIT.PUTRESET (CONS (THIS.PROCESS)
+                                                  'DON'T]
+                (CL:UNLESS QUIET
+                    (SETQ PUTSTRING (CONCAT "Put to " (FULLNAME CHARSTREAM)
+                                           "..."))
+                    (TEDIT.PROMPTPRINT TEXTOBJ PUTSTRING T))
 
-             (* ;; "")
+           (* ;; "")
 
-             (* ;; "CHARSTREAM is open, we're ready to go.")
+           (* ;; "CHARSTREAM is open, we're ready to go.")
 
-             (* ;; "We don't know how to decide that the user doesn't want to continue editing and therefore doesn't need the pieces to be updated to the new file.  The stream itself may be used in the future, even if right now there is no process or window")
+           (* ;; "We don't know how to decide that the user doesn't want to continue editing and therefore doesn't need the pieces to be updated to the new file.  The stream itself may be used in the future, even if right now there is no process or window")
 
-                  (SETQ CHARSTREAM (TEDIT.PUT.STREAM TSTREAM CHARSTREAM UNFORMATTED? NEWEXTFORMAT T))
+                (SETQ CHARSTREAM (TEDIT.PUT.STREAM TSTREAM CHARSTREAM UNFORMATTED? NEWEXTFORMAT T))
 
-             (* ;; "The file is written, nothing can be lost. CHARSTREAM isn't closed yet")
+           (* ;; "The file is written, nothing can be lost. CHARSTREAM isn't closed yet")
 
-             (* ;; "")
+           (* ;; "")
 
-             (* ;; 
+           (* ;; 
        "TEDIT.PUT.FINISHEDFORMS is not documented.  Are we supposed to supply some defined specvars?")
 
-                  (for FORM in (GETTEXTPROP TEXTOBJ 'TEDIT.PUT.FINISHEDFORMS)
-                     do (EVAL FORM))
-                  (CL:WHEN PUTFN
-                      (APPLY* PUTFN TSTREAM (FULLNAME CHARSTREAM)
-                             'AFTER))
+                (for FORM in (GETTEXTPROP TEXTOBJ 'TEDIT.PUT.FINISHEDFORMS) do (EVAL FORM))
+                (CL:WHEN PUTFN
+                    (APPLY* PUTFN TSTREAM (FULLNAME CHARSTREAM)
+                           'AFTER))
 
-             (* ;; "")
+           (* ;; "")
 
-             (* ;; "")
+           (* ;; "")
 
-                  (CL:UNLESS QUIET
-                      (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT PUTSTRING "done")
-                             T))
+                (CL:UNLESS QUIET
+                    (TEDIT.PROMPTPRINT TEXTOBJ (CONCAT PUTSTRING "done")
+                           T))
 
-             (* ;; "")
+           (* ;; "")
 
-                  (CL:WHEN (EQ FORCENEW 'DETEMPLATE)
-                      (TEXTPROP TEXTOBJ 'TEMPLATE NIL))
-                  (RETURN CHARSTREAM))))])
+                (CL:WHEN (EQ FORCENEW 'DETEMPLATE)
+                    (TEXTPROP TEXTOBJ 'TEMPLATE NIL))
+                (RETURN CHARSTREAM)))])
 
 (TEDIT.PUT.STREAM
   [LAMBDA (TSTREAM DESTSTREAM UNFORMATTED? EXTERNALFORMAT CONTINUE)
@@ -2580,28 +2580,28 @@
 
 (RPAQ? *TEDIT-FILE-READTABLE* (COPYREADTABLE \ORIGREADTABLE))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (5137 35300 (TEDIT.GET 5147 . 11479) (TEDIT.FORMATTEDFILEP 11481 . 12797) (
+  (FILEMAP (NIL (5137 35180 (TEDIT.GET 5147 . 11479) (TEDIT.FORMATTEDFILEP 11481 . 12797) (
 TEDIT.FILEDATE 12799 . 13970) (TEDIT.INCLUDE 13972 . 22001) (TEDIT.RAW.INCLUDE 22003 . 22811) (
-TEDIT.PUT 22813 . 31289) (TEDIT.PUT.STREAM 31291 . 35298)) (35301 55377 (\TEDIT.GET.FOREIGN.FILE 35311
- . 38736) (\TEDIT.GET.UNFORMATTED.FILE 38738 . 42927) (\TEDIT.GET.FORMATTED.FILE 42929 . 45956) (
-\TEDIT.FORMATTEDSTREAMP 45958 . 48976) (\ARBIN 48978 . 49698) (\ATMIN 49700 . 50237) (\DWIN 50239 . 
-50618) (\STRINGIN 50620 . 51328) (\TEDIT.GET.TRAILER 51330 . 53846) (\TEDIT.CACHEFILE 53848 . 55375)) 
-(55543 69604 (\TEDIT.GET.PIECES3 55553 . 66366) (\TEDIT.GET.IDATE3 66368 . 67763) (
-\TEDIT.MAKE.STRINGPIECE 67765 . 69602)) (69605 82914 (\TEDIT.GET.UNFORMATTED.FILE.MCCS 69615 . 75731) 
-(\TEDIT.INTERPRET.MCCS.SHIFTS 75733 . 81978) (\TEDIT.CONVERT.XCCSTOMCCS 81980 . 82912)) (82936 88958 (
-\TEDIT.GET.UNFORMATTED.FILE.UTF8 82946 . 88956)) (88981 98110 (\TEDIT.GET.CHARLOOKS.LIST 88991 . 89722
-) (\TEDIT.GET.SINGLE.CHARLOOKS 89724 . 94922) (\TEDIT.GET.CHARLOOKS 94924 . 96254) (
-\TEDIT.GET.PARALOOKS.INDEX 96256 . 96800) (\TEDIT.GET.CHARLOOKS.INDEX 96802 . 98108)) (98111 105768 (
-\TEDIT.GET.PARALOOKS.LIST 98121 . 98743) (\TEDIT.GET.SINGLE.PARALOOKS 98745 . 105766)) (105769 109359 
-(\TEDIT.GET.OBJECT 105779 . 109357)) (109424 141872 (\TEDIT.PUT.PCTB 109434 . 119204) (
-\TEDIT.PUT.PCTB.PIECEDATA 119206 . 122404) (\TEDIT.PUT.TRAILER 122406 . 123173) (
-\TEDIT.PUT.PCTB.MERGEABLE 123175 . 126831) (\TEDIT.PUT.UTF8.SPLITPIECES 126833 . 131535) (
-\TEDIT.PUT.PCTB.NEXTNEW 131537 . 136033) (\TEDIT.INSERT.NEWPIECES 136035 . 139470) (\TEDIT.PUTRESET 
-139472 . 139714) (\ARBOUT 139716 . 140440) (\ATMOUT 140442 . 141047) (\DWOUT 141049 . 141328) (
-\STRINGOUT 141330 . 141870)) (141873 153943 (\TEDIT.PUT.CHARLOOKS.LIST 141883 . 143555) (
-\TEDIT.PUT.SINGLE.CHARLOOKS 143557 . 149287) (\TEDIT.PUT.CHARLOOKS 149289 . 150514) (
-\TEDIT.PUT.CHARLOOKS1 150516 . 151567) (\TEDIT.PUT.OBJECT 151569 . 153941)) (153944 161583 (
-\TEDIT.PUT.PARALOOKS.LIST 153954 . 154856) (\TEDIT.PUT.SINGLE.PARALOOKS 154858 . 160442) (
-\TEDIT.PUT.PARALOOKS 160444 . 161581)) (161678 165107 (TEDITFROMLISPSOURCE 161688 . 164356) (
-SHELLSCRIPTP 164358 . 164587) (TEDITFROMSHELLSCRIPT 164589 . 165105)))))
+TEDIT.PUT 22813 . 31169) (TEDIT.PUT.STREAM 31171 . 35178)) (35181 55257 (\TEDIT.GET.FOREIGN.FILE 35191
+ . 38616) (\TEDIT.GET.UNFORMATTED.FILE 38618 . 42807) (\TEDIT.GET.FORMATTED.FILE 42809 . 45836) (
+\TEDIT.FORMATTEDSTREAMP 45838 . 48856) (\ARBIN 48858 . 49578) (\ATMIN 49580 . 50117) (\DWIN 50119 . 
+50498) (\STRINGIN 50500 . 51208) (\TEDIT.GET.TRAILER 51210 . 53726) (\TEDIT.CACHEFILE 53728 . 55255)) 
+(55423 69484 (\TEDIT.GET.PIECES3 55433 . 66246) (\TEDIT.GET.IDATE3 66248 . 67643) (
+\TEDIT.MAKE.STRINGPIECE 67645 . 69482)) (69485 82794 (\TEDIT.GET.UNFORMATTED.FILE.MCCS 69495 . 75611) 
+(\TEDIT.INTERPRET.MCCS.SHIFTS 75613 . 81858) (\TEDIT.CONVERT.XCCSTOMCCS 81860 . 82792)) (82816 88838 (
+\TEDIT.GET.UNFORMATTED.FILE.UTF8 82826 . 88836)) (88861 97990 (\TEDIT.GET.CHARLOOKS.LIST 88871 . 89602
+) (\TEDIT.GET.SINGLE.CHARLOOKS 89604 . 94802) (\TEDIT.GET.CHARLOOKS 94804 . 96134) (
+\TEDIT.GET.PARALOOKS.INDEX 96136 . 96680) (\TEDIT.GET.CHARLOOKS.INDEX 96682 . 97988)) (97991 105648 (
+\TEDIT.GET.PARALOOKS.LIST 98001 . 98623) (\TEDIT.GET.SINGLE.PARALOOKS 98625 . 105646)) (105649 109239 
+(\TEDIT.GET.OBJECT 105659 . 109237)) (109304 141752 (\TEDIT.PUT.PCTB 109314 . 119084) (
+\TEDIT.PUT.PCTB.PIECEDATA 119086 . 122284) (\TEDIT.PUT.TRAILER 122286 . 123053) (
+\TEDIT.PUT.PCTB.MERGEABLE 123055 . 126711) (\TEDIT.PUT.UTF8.SPLITPIECES 126713 . 131415) (
+\TEDIT.PUT.PCTB.NEXTNEW 131417 . 135913) (\TEDIT.INSERT.NEWPIECES 135915 . 139350) (\TEDIT.PUTRESET 
+139352 . 139594) (\ARBOUT 139596 . 140320) (\ATMOUT 140322 . 140927) (\DWOUT 140929 . 141208) (
+\STRINGOUT 141210 . 141750)) (141753 153823 (\TEDIT.PUT.CHARLOOKS.LIST 141763 . 143435) (
+\TEDIT.PUT.SINGLE.CHARLOOKS 143437 . 149167) (\TEDIT.PUT.CHARLOOKS 149169 . 150394) (
+\TEDIT.PUT.CHARLOOKS1 150396 . 151447) (\TEDIT.PUT.OBJECT 151449 . 153821)) (153824 161463 (
+\TEDIT.PUT.PARALOOKS.LIST 153834 . 154736) (\TEDIT.PUT.SINGLE.PARALOOKS 154738 . 160322) (
+\TEDIT.PUT.PARALOOKS 160324 . 161461)) (161558 164987 (TEDITFROMLISPSOURCE 161568 . 164236) (
+SHELLSCRIPTP 164238 . 164467) (TEDITFROMSHELLSCRIPT 164469 . 164985)))))
 STOP
diff --git a/library/tedit/TEDIT-FILE.LCOM b/library/tedit/TEDIT-FILE.LCOM
index af826ff6..b37d486a 100644
Binary files a/library/tedit/TEDIT-FILE.LCOM and b/library/tedit/TEDIT-FILE.LCOM differ
diff --git a/library/tedit/TEDIT-LOOKS b/library/tedit/TEDIT-LOOKS
index c4512622..8cb88535 100644
--- a/library/tedit/TEDIT-LOOKS
+++ b/library/tedit/TEDIT-LOOKS
@@ -1,12 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "24-Apr-2025 23:47:54" {WMEDLEY}<library>tedit>TEDIT-LOOKS.;425 159446 
+(FILECREATED "13-Jul-2025 19:39:57" {WMEDLEY}<library>TEDIT>TEDIT-LOOKS.;426 158882 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS \TEDIT.TRANSLATE.ASCIICHARS)
+      :CHANGES-TO (VARS TEDIT-LOOKSCOMS)
+                  (FNS \TEDIT.GET.INSERT.CHARLOOKS TEDIT.CARETLOOKS \TEDIT.CARETPIECE)
 
-      :PREVIOUS-DATE "24-Apr-2025 16:05:02" {WMEDLEY}<library>tedit>TEDIT-LOOKS.;424)
+      :PREVIOUS-DATE "24-Apr-2025 23:47:54" {WMEDLEY}<library>TEDIT>TEDIT-LOOKS.;425)
 
 
 (PRETTYCOMPRINT TEDIT-LOOKSCOMS)
@@ -21,9 +22,7 @@
                                                 (MACROS GETCLOOKS SETCLOOKS FGETCLOOKS FSETCLOOKS 
                                                        CHARLOOKS!)
                                                 (MACROS GETPLOOKS SETPLOOKS FGETPLOOKS FSETPLOOKS 
-                                                       PARALOOKS!)
-                                                             (* ; "TO BE REMOVED")
-                                                (MACROS FSETPARA FGETPARA GETPARA SETPARA)))
+                                                       PARALOOKS!)))
         (INITRECORDS CHARLOOKS PARALOOKS PENDINGTAB)
         (FNS \TEDIT.CHARLOOKS.DEFPRINT \TEDIT.PARALOOKS.DEFPRINT)
         (COMS 
@@ -323,20 +322,6 @@
 (PUTPROPS PARALOOKS! MACRO ((PL)
                             (\DTEST PL 'PARALOOKS)))
 )
-(DECLARE%: EVAL@COMPILE 
-
-(PUTPROPS FSETPARA MACRO ((PLOOKS FIELD NEWVALUE)
-                          (freplace (PARALOOKS FIELD) of PLOOKS with 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)))
-)
 
 (* "END EXPORTED DEFINITIONS")
 
@@ -879,7 +864,8 @@
            TEXTOBJ])
 
 (\TEDIT.GET.INSERT.CHARLOOKS
-  [LAMBDA (TEXTOBJ SEL/CHNO)                                 (* ; "Edited 22-Apr-2025 10:28 by rmk")
+  [LAMBDA (TEXTOBJ SEL/CHNO)                                 (* ; "Edited 13-Jul-2025 19:39 by rmk")
+                                                             (* ; "Edited 22-Apr-2025 10:28 by rmk")
                                                              (* ; "Edited 26-Nov-2024 04:58 by rmk")
                                                              (* ; "Edited 23-Oct-2024 00:04 by rmk")
                                                              (* ; "Edited 31-Jul-2024 12:10 by rmk")
@@ -896,8 +882,7 @@
     (LET ((PC (\TEDIT.CHTOPC (IMAX 1 (IMIN (TEXTLEN TEXTOBJ)
                                            (if (type? SELECTION SEL/CHNO)
                                                then (SELECTQ (GETSEL SEL/CHNO POINT)
-                                                        (LEFT (ADD1 (TEDIT.GETPOINT TEXTOBJ SEL/CHNO)
-                                                                    ))
+                                                        (LEFT (TEDIT.GETPOINT TEXTOBJ SEL/CHNO))
                                                         (RIGHT (SUB1 (TEDIT.GETPOINT TEXTOBJ SEL/CHNO
                                                                             )))
                                                         (\TEDIT.THELP "BAD POINT"))
@@ -905,7 +890,8 @@
                      TEXTOBJ))
           LOOKS)
          (CL:WHEN (AND (PPARALAST PC)
-                       (PREVPIECE PC))                       (* ; "Get the looks before the EOL")
+                       (PREVPIECE PC))                       (* ; 
+                        "Get the looks before the EOL.  What about meta EOL?  Look at the character?")
              (SETQ PC (PREVPIECE PC)))
          (SETQ LOOKS (if PC
                          then (PCHARLOOKS PC)
@@ -2531,26 +2517,26 @@
 (ADDTOVAR LAMA )
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (22843 24785 (\TEDIT.CHARLOOKS.DEFPRINT 22853 . 23989) (\TEDIT.PARALOOKS.DEFPRINT 23991
- . 24783)) (24889 25985 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24899 . 25607) (\TEDIT.CREATE.FACE.MENU 25609
- . 25781) (\TEDIT.CREATE.SIZE.MENU 25783 . 25983)) (26784 28673 (\TEDIT.CHARLOOKS.FEATURE.CHECK 26794
- . 28671)) (28975 53558 (\TEDIT.CHARLOOKS.FROM.FONT 28985 . 31198) (\TEDIT.EQCLOOKS 31200 . 34022) (
-\TEDIT.SAMECLOOKS 34024 . 36910) (TEDIT.CARETLOOKS 36912 . 38458) (TEDIT.COPY.LOOKS 38460 . 41743) (
-\TEDIT.UNPARSE.CHARLOOKS.LIST 41745 . 45239) (\TEDIT.MODIFYLOOKS 45241 . 47401) (TEDIT.NEW.FONT 47403
- . 47850) (\TEDIT.CARETLOOKS.VERIFY 47852 . 48689) (\TEDIT.CARETPIECE 48691 . 48996) (
-\TEDIT.GET.INSERT.CHARLOOKS 48998 . 51936) (\TEDIT.GET.TERMSA.WIDTHS 51938 . 52354) (
-\TEDIT.PARSE.CHARLOOKS.LIST 52356 . 53556)) (53559 70705 (\TEDIT.TRANSLATE.ASCIICHARS 53569 . 64441) (
-\TEDIT.CONVERT.TO.FORMATTED 64443 . 70703)) (71717 78828 (\TEDIT.UNIQUIFY.CHARLOOKS 71727 . 73387) (
-\TEDIT.UNIQUIFY.PARALOOKS 73389 . 74656) (\TEDIT.UNIQUIFY.ALL 74658 . 76633) (
-\TEDIT.FLUSH.UNUSED.LOOKS 76635 . 78826)) (78861 90168 (TEDIT.LOOKS 78871 . 81260) (TEDIT.GET.LOOKS 
-81262 . 83291) (TEDIT.SUBLOOKS 83293 . 87532) (TEDIT.FINDLOOKS 87534 . 90166)) (90243 119751 (
-\TEDIT.CHANGE.CHARLOOKS 90253 . 98910) (\TEDIT.CHANGE.CHARLOOKS.NEW 98912 . 102706) (
-\TEDIT.CHARLOOKS.CHANGE.FONT 102708 . 111015) (\TEDIT.FONT.NEXTSIZE 111017 . 112638) (\TEDIT.LOOKS 
-112640 . 115969) (\TEDIT.FONTCOPY 115971 . 117472) (\TEDIT.COERCE.FONTCLASS 117474 . 118625) (
-\TEDIT.FONTCLASS.TO.FONT 118627 . 119749)) (119794 150751 (\TEDIT.EQFMTSPEC 119804 . 123019) (
-TEDIT.GET.PARALOOKS 123021 . 127068) (\TEDIT.PARSE.PARALOOKS.LIST 127070 . 134412) (TEDIT.PARALOOKS 
-134414 . 135454) (\TEDIT.CHANGE.PARALOOKS 135456 . 142424) (\TEDIT.CHANGE.PARALOOKS.NEW 142426 . 
-146409) (TEDIT.COPY.PARALOOKS 146411 . 149085) (\TEDIT.PARABOUNDS 149087 . 150749)) (150811 158564 (
-TEDIT.SUBPARALOOKS 150821 . 154960) (SAMEPARALOOKS 154962 . 158562)) (158565 159252 (
-\TEDIT.MARK.REVISION 158575 . 159250)))))
+  (FILEMAP (NIL (22170 24112 (\TEDIT.CHARLOOKS.DEFPRINT 22180 . 23316) (\TEDIT.PARALOOKS.DEFPRINT 23318
+ . 24110)) (24216 25312 (\TEDIT.CREATE.DEFAULT.FMTSPEC 24226 . 24934) (\TEDIT.CREATE.FACE.MENU 24936
+ . 25108) (\TEDIT.CREATE.SIZE.MENU 25110 . 25310)) (26111 28000 (\TEDIT.CHARLOOKS.FEATURE.CHECK 26121
+ . 27998)) (28302 52994 (\TEDIT.CHARLOOKS.FROM.FONT 28312 . 30525) (\TEDIT.EQCLOOKS 30527 . 33349) (
+\TEDIT.SAMECLOOKS 33351 . 36237) (TEDIT.CARETLOOKS 36239 . 37785) (TEDIT.COPY.LOOKS 37787 . 41070) (
+\TEDIT.UNPARSE.CHARLOOKS.LIST 41072 . 44566) (\TEDIT.MODIFYLOOKS 44568 . 46728) (TEDIT.NEW.FONT 46730
+ . 47177) (\TEDIT.CARETLOOKS.VERIFY 47179 . 48016) (\TEDIT.CARETPIECE 48018 . 48323) (
+\TEDIT.GET.INSERT.CHARLOOKS 48325 . 51372) (\TEDIT.GET.TERMSA.WIDTHS 51374 . 51790) (
+\TEDIT.PARSE.CHARLOOKS.LIST 51792 . 52992)) (52995 70141 (\TEDIT.TRANSLATE.ASCIICHARS 53005 . 63877) (
+\TEDIT.CONVERT.TO.FORMATTED 63879 . 70139)) (71153 78264 (\TEDIT.UNIQUIFY.CHARLOOKS 71163 . 72823) (
+\TEDIT.UNIQUIFY.PARALOOKS 72825 . 74092) (\TEDIT.UNIQUIFY.ALL 74094 . 76069) (
+\TEDIT.FLUSH.UNUSED.LOOKS 76071 . 78262)) (78297 89604 (TEDIT.LOOKS 78307 . 80696) (TEDIT.GET.LOOKS 
+80698 . 82727) (TEDIT.SUBLOOKS 82729 . 86968) (TEDIT.FINDLOOKS 86970 . 89602)) (89679 119187 (
+\TEDIT.CHANGE.CHARLOOKS 89689 . 98346) (\TEDIT.CHANGE.CHARLOOKS.NEW 98348 . 102142) (
+\TEDIT.CHARLOOKS.CHANGE.FONT 102144 . 110451) (\TEDIT.FONT.NEXTSIZE 110453 . 112074) (\TEDIT.LOOKS 
+112076 . 115405) (\TEDIT.FONTCOPY 115407 . 116908) (\TEDIT.COERCE.FONTCLASS 116910 . 118061) (
+\TEDIT.FONTCLASS.TO.FONT 118063 . 119185)) (119230 150187 (\TEDIT.EQFMTSPEC 119240 . 122455) (
+TEDIT.GET.PARALOOKS 122457 . 126504) (\TEDIT.PARSE.PARALOOKS.LIST 126506 . 133848) (TEDIT.PARALOOKS 
+133850 . 134890) (\TEDIT.CHANGE.PARALOOKS 134892 . 141860) (\TEDIT.CHANGE.PARALOOKS.NEW 141862 . 
+145845) (TEDIT.COPY.PARALOOKS 145847 . 148521) (\TEDIT.PARABOUNDS 148523 . 150185)) (150247 158000 (
+TEDIT.SUBPARALOOKS 150257 . 154396) (SAMEPARALOOKS 154398 . 157998)) (158001 158688 (
+\TEDIT.MARK.REVISION 158011 . 158686)))))
 STOP
diff --git a/library/tedit/TEDIT-LOOKS.LCOM b/library/tedit/TEDIT-LOOKS.LCOM
index f1f8f652..89636553 100644
Binary files a/library/tedit/TEDIT-LOOKS.LCOM and b/library/tedit/TEDIT-LOOKS.LCOM differ
diff --git a/library/tedit/TEDIT-MENU b/library/tedit/TEDIT-MENU
index 33cb30da..3fb519fe 100644
--- a/library/tedit/TEDIT-MENU
+++ b/library/tedit/TEDIT-MENU
@@ -1,15 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "29-May-2025 09:31:55" {WMEDLEY}<library>tedit>TEDIT-MENU.;486 179156 
+(FILECREATED " 5-Jun-2025 19:38:52" {WMEDLEY}<library>tedit>TEDIT-MENU.;487 179201 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS \TEDIT.EXPANDEDMENU.CREATE \TEDIT.EXPANDEDMENU.ACTIONFN TEDIT.DEFAULT.MENUFN 
-                       \TEDIT.PAGEMENU.START \TEDIT.EXPANDEDMENU.START \TEDIT.CHARMENU.START 
-                       \TEDIT.PARAMENU.START \TEDIT.MENU.OPEN?)
-                  (VARS TEDIT-MENUCOMS)
+      :CHANGES-TO (FNS \TEDIT.PAGEMENU.CREATE \TEDIT.PAGEREGION.UNPARSE)
 
-      :PREVIOUS-DATE "26-May-2025 20:12:04" {WMEDLEY}<library>tedit>TEDIT-MENU.;478)
+      :PREVIOUS-DATE "29-May-2025 09:31:55" {WMEDLEY}<library>tedit>TEDIT-MENU.;486)
 
 
 (PRETTYCOMPRINT TEDIT-MENUCOMS)
@@ -2379,7 +2376,8 @@
 (DEFINEQ
 
 (\TEDIT.PAGEMENU.CREATE
-  [LAMBDA (TSTREAM)                                          (* ; "Edited 11-May-2025 14:40 by rmk")
+  [LAMBDA (TSTREAM)                                          (* ; "Edited  5-Jun-2025 18:41 by rmk")
+                                                             (* ; "Edited 11-May-2025 14:40 by rmk")
                                                              (* ; "Edited 27-Jan-2025 08:51 by rmk")
                                                              (* ; "Edited  7-Jan-2025 15:47 by rmk")
                                                              (* ; "Edited  5-Jan-2025 16:02 by rmk")
@@ -2424,7 +2422,6 @@
                           (FIELD (IDENTIFIER STARTINGPAGE#)
                                  (PRELABEL "Starting page #:")
                                  (LABELFONT (HELVETICA 10))
-                                 (INITSTATE 1)
                                  (FIELDTYPE POSITIVENUMBER))
                           EOL
                           (TEXT (STRING "For page:  ")
@@ -2587,7 +2584,8 @@
                               (TEDIT.OBJECT.CHANGED MENUSTREAM OBJ))))])
 
 (\TEDIT.PAGEREGION.UNPARSE
-  [LAMBDA (TSTREAM PAGEID)                                   (* ; "Edited 30-Aug-2024 23:48 by rmk")
+  [LAMBDA (TSTREAM PAGEID)                                   (* ; "Edited  5-Jun-2025 19:37 by rmk")
+                                                             (* ; "Edited 30-Aug-2024 23:48 by rmk")
                                                              (* ; "Edited 15-Aug-2024 22:52 by rmk")
                                                              (* ; "Edited 10-Aug-2024 20:49 by rmk")
                                                              (* ; "Edited  8-Aug-2024 23:27 by rmk")
@@ -2611,6 +2609,8 @@
                   PAGELOOKS)
            (PUTASSOC 'LANDSCAPE (LISTGET LOCALINFO 'LANDSCAPE?)
                   PAGELOOKS)
+           (PUTASSOC 'STARTINGPAGE# (LISTGET LOCALINFO 'STARTINGPAGE#)
+                  PAGELOOKS)
            (PUTASSOC 'FOLIOFORMAT (SELECTQ (CAR (LISTGET LOCALINFO 'FOLIOINFO))
                                       (ARABIC '|123|)
                                       (LOWERROMAN 'xiv)
@@ -2912,32 +2912,32 @@
 (ADDTOVAR LAMA )
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (6277 17915 (TEDIT.ADD.MENUITEM 6287 . 8404) (TEDIT.DEFAULT.MENUFN 8406 . 15127) (
-TEDIT.REMOVE.MENUITEM 15129 . 16126) (\TEDIT.CREATEMENU 16128 . 16693) (\TEDIT.MENU.WHENHELDFN 16695
- . 17600) (\TEDIT.MENU.WHENSELECTEDFN 17602 . 17913)) (18729 65372 (DRAWMARGINSCALE 18739 . 22198) (
-MARGINBAR 22200 . 29325) (MARGINBAR.CREATE 29327 . 32746) (MB.MARGINBAR.BUTTONEVENTINFN 32748 . 40550)
- (MB.MARGINBAR.SELFN.TABS 40552 . 45792) (MB.MARGINBAR.SELFN.TABS.KIND 45794 . 46729) (
-MARGINBAR.GETSTATEFN 46731 . 50718) (MARGINBAR.SETSTATEFN 50720 . 50930) (MARGINBAR.NEUTRALIZE 50932
- . 51345) (MARGINBAR.LOOKS 51347 . 54453) (MB.MARGINBAR.SIZEFN 54455 . 55058) (MB.MARGINBAR.DISPLAYFN 
-55060 . 58121) (MDESCALE 58123 . 58663) (MSCALE 58665 . 58995) (MB.MARGINBAR.SHOWTAB 58997 . 61320) (
-MB.MARGINBAR.TABTRACK 61322 . 62707) (MARGINBAR.INIT 62709 . 64102) (\TEDIT.PARALOOKS.TO.MARBAR 64104
- . 65370)) (66197 73479 (TEDIT.MENUSTREAM 66207 . 67207) (TEDITMENUP 67209 . 68178) (\TEDIT.MENU.START
- 68180 . 72527) (\TEDIT.MENU.OPEN? 72529 . 72903) (\TEDIT.MENU.BUTTONEVENTFN 72905 . 73477)) (73798 
-81720 (\TEDIT.MENU.CREATE 73808 . 75619) (\TEDIT.MENU.PARSE 75621 . 79310) (\TEDIT.MENU.NEUTRALIZE 
-79312 . 81383) (\TEDITMENU.RECORD.UNFORMATTED 81385 . 81718)) (81786 101567 (
-\TEDIT.EXPANDEDMENU.CREATE 81796 . 87263) (\TEDIT.EXPANDEDMENU.START 87265 . 88889) (
-\TEDIT.EXPANDEDMENU.FN 88891 . 92146) (\TEDIT.EXPANDEDMENU.ACTIONFN 92148 . 101565)) (101629 117487 (
-\TEDIT.PARAMENU.CREATE 101639 . 107660) (\TEDIT.PARAMENU.START 107662 . 108787) (
-\TEDIT.APPLY.PARALOOKS 108789 . 109841) (\TEDIT.SHOW.PARALOOKS 109843 . 112734) (
-\TEDIT.PARAMENU.FILLIN 112736 . 117485)) (117692 144347 (\TEDIT.CHARMENU.CREATE 117702 . 120306) (
-\TEDIT.CHARMENU.START 120308 . 121598) (\TEDIT.CHARMENU.SPEC 121600 . 126283) (\TEDIT.CHARMENU.PARSE 
-126285 . 129453) (\TEDIT.CHARMENU.FILLIN 129455 . 134085) (\TEDIT.SHOW.CHARLOOKS 134087 . 137445) (
-\TEDIT.APPLY.CHARLOOKS 137447 . 138608) (\TEDIT.OFFSETTYPE.STATEFN 138610 . 140573) (
-\TEDIT.OTHER.STATECHANGEFN 140575 . 142220) (\TEDIT.OTHER.SELECTFN 142222 . 144345)) (144409 173196 (
-\TEDIT.PAGEMENU.CREATE 144419 . 152869) (\TEDIT.PAGEMENU.START 152871 . 153222) (\TEDIT.SHOW.PAGELOOKS
- 153224 . 155110) (\TEDIT.PAGEMENU.FILLIN 155112 . 156662) (\TEDIT.PAGEREGION.UNPARSE 156664 . 165854)
- (\TEDIT.APPLY.PAGELOOKS 165856 . 167783) (\TEDIT.CHANGE.PAGELOOKS 167785 . 172352) (
-\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 172354 . 173194)) (173197 179000 (\TEDIT.PAGEMENU.CREATE.HEADINGS 
-173207 . 176019) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 176021 . 177446) (
-\TEDIT.PAGEMENU.HEADINGS.STATEFN 177448 . 178998)))))
+  (FILEMAP (NIL (6051 17689 (TEDIT.ADD.MENUITEM 6061 . 8178) (TEDIT.DEFAULT.MENUFN 8180 . 14901) (
+TEDIT.REMOVE.MENUITEM 14903 . 15900) (\TEDIT.CREATEMENU 15902 . 16467) (\TEDIT.MENU.WHENHELDFN 16469
+ . 17374) (\TEDIT.MENU.WHENSELECTEDFN 17376 . 17687)) (18503 65146 (DRAWMARGINSCALE 18513 . 21972) (
+MARGINBAR 21974 . 29099) (MARGINBAR.CREATE 29101 . 32520) (MB.MARGINBAR.BUTTONEVENTINFN 32522 . 40324)
+ (MB.MARGINBAR.SELFN.TABS 40326 . 45566) (MB.MARGINBAR.SELFN.TABS.KIND 45568 . 46503) (
+MARGINBAR.GETSTATEFN 46505 . 50492) (MARGINBAR.SETSTATEFN 50494 . 50704) (MARGINBAR.NEUTRALIZE 50706
+ . 51119) (MARGINBAR.LOOKS 51121 . 54227) (MB.MARGINBAR.SIZEFN 54229 . 54832) (MB.MARGINBAR.DISPLAYFN 
+54834 . 57895) (MDESCALE 57897 . 58437) (MSCALE 58439 . 58769) (MB.MARGINBAR.SHOWTAB 58771 . 61094) (
+MB.MARGINBAR.TABTRACK 61096 . 62481) (MARGINBAR.INIT 62483 . 63876) (\TEDIT.PARALOOKS.TO.MARBAR 63878
+ . 65144)) (65971 73253 (TEDIT.MENUSTREAM 65981 . 66981) (TEDITMENUP 66983 . 67952) (\TEDIT.MENU.START
+ 67954 . 72301) (\TEDIT.MENU.OPEN? 72303 . 72677) (\TEDIT.MENU.BUTTONEVENTFN 72679 . 73251)) (73572 
+81494 (\TEDIT.MENU.CREATE 73582 . 75393) (\TEDIT.MENU.PARSE 75395 . 79084) (\TEDIT.MENU.NEUTRALIZE 
+79086 . 81157) (\TEDITMENU.RECORD.UNFORMATTED 81159 . 81492)) (81560 101341 (
+\TEDIT.EXPANDEDMENU.CREATE 81570 . 87037) (\TEDIT.EXPANDEDMENU.START 87039 . 88663) (
+\TEDIT.EXPANDEDMENU.FN 88665 . 91920) (\TEDIT.EXPANDEDMENU.ACTIONFN 91922 . 101339)) (101403 117261 (
+\TEDIT.PARAMENU.CREATE 101413 . 107434) (\TEDIT.PARAMENU.START 107436 . 108561) (
+\TEDIT.APPLY.PARALOOKS 108563 . 109615) (\TEDIT.SHOW.PARALOOKS 109617 . 112508) (
+\TEDIT.PARAMENU.FILLIN 112510 . 117259)) (117466 144121 (\TEDIT.CHARMENU.CREATE 117476 . 120080) (
+\TEDIT.CHARMENU.START 120082 . 121372) (\TEDIT.CHARMENU.SPEC 121374 . 126057) (\TEDIT.CHARMENU.PARSE 
+126059 . 129227) (\TEDIT.CHARMENU.FILLIN 129229 . 133859) (\TEDIT.SHOW.CHARLOOKS 133861 . 137219) (
+\TEDIT.APPLY.CHARLOOKS 137221 . 138382) (\TEDIT.OFFSETTYPE.STATEFN 138384 . 140347) (
+\TEDIT.OTHER.STATECHANGEFN 140349 . 141994) (\TEDIT.OTHER.SELECTFN 141996 . 144119)) (144183 173241 (
+\TEDIT.PAGEMENU.CREATE 144193 . 152705) (\TEDIT.PAGEMENU.START 152707 . 153058) (\TEDIT.SHOW.PAGELOOKS
+ 153060 . 154946) (\TEDIT.PAGEMENU.FILLIN 154948 . 156498) (\TEDIT.PAGEREGION.UNPARSE 156500 . 165899)
+ (\TEDIT.APPLY.PAGELOOKS 165901 . 167828) (\TEDIT.CHANGE.PAGELOOKS 167830 . 172397) (
+\TEDIT.PAGEMENU.CHARLOOKS.STATEFN 172399 . 173239)) (173242 179045 (\TEDIT.PAGEMENU.CREATE.HEADINGS 
+173252 . 176064) (\TEDIT.PAGEMENU.HEADINGS.SETSTATEFN 176066 . 177491) (
+\TEDIT.PAGEMENU.HEADINGS.STATEFN 177493 . 179043)))))
 STOP
diff --git a/library/tedit/TEDIT-MENU.LCOM b/library/tedit/TEDIT-MENU.LCOM
index 44713bfe..0a93107f 100644
Binary files a/library/tedit/TEDIT-MENU.LCOM and b/library/tedit/TEDIT-MENU.LCOM differ
diff --git a/library/tedit/TEDIT-PAGE b/library/tedit/TEDIT-PAGE
index e93700f1..5e5cef71 100644
--- a/library/tedit/TEDIT-PAGE
+++ b/library/tedit/TEDIT-PAGE
@@ -1,12 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "11-May-2025 15:03:00" {WMEDLEY}<library>tedit>TEDIT-PAGE.;221 134841 
+(FILECREATED " 5-Jun-2025 08:24:12" {WMEDLEY}<library>tedit>TEDIT-PAGE.;222 134861 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS TEDIT.SINGLE.PAGEFORMAT)
+      :CHANGES-TO (FNS TEDIT.FORMAT.HARDCOPY)
 
-      :PREVIOUS-DATE "22-Apr-2025 08:12:43" {WMEDLEY}<library>tedit>TEDIT-PAGE.;220)
+      :PREVIOUS-DATE "11-May-2025 15:03:00" {WMEDLEY}<library>tedit>TEDIT-PAGE.;221)
 
 
 (PRETTYCOMPRINT TEDIT-PAGECOMS)
@@ -633,7 +633,8 @@
 
 (TEDIT.FORMAT.HARDCOPY
   [LAMBDA (TEXTSTREAM FILE DONTSEND BREAKPAGETITLE SERVER PRINTOPTIONS IMAGETYPE FIRSTPG# STARTPG 
-                 ENDPG QUIET)                                (* ; "Edited 22-Apr-2025 08:12 by rmk")
+                 ENDPG QUIET)                                (* ; "Edited  5-Jun-2025 08:24 by rmk")
+                                                             (* ; "Edited 22-Apr-2025 08:12 by rmk")
                                                              (* ; "Edited 23-Feb-2025 09:59 by rmk")
                                                              (* ; "Edited 30-Aug-2024 15:45 by rmk")
                                                              (* ; "Edited 10-Jul-2024 23:34 by rmk")
@@ -657,9 +658,8 @@
     (RESETLST
         (SETQ TEXTSTREAM (if (TEXTSTREAM TEXTSTREAM T)
                            elseif (TEDIT.FORMATTEDFILEP TEXTSTREAM)
-                             then (CL:UNLESS (\GETSTREAM TEXTSTREAM 'INPUT T)
-                                      [RESETSAVE (SETQ TEXTSTREAM (OPENTEXTSTREAM TEXTSTREAM))
-                                             `(PROGN (CLOSEF? OLDVALUE])
+                             then [RESETSAVE (SETQ TEXTSTREAM (OPENTEXTSTREAM TEXTSTREAM))
+                                         `(PROGN (CLOSEF? OLDVALUE]
                                   TEXTSTREAM
                            else (ERROR TEXTSTREAM "is not a Tedit stream")))
         (PROG ((TEXTOBJ (FTEXTOBJ TEXTSTREAM))
@@ -2101,18 +2101,18 @@
                         (RETURN (DREMOVE NIL $$VAL])
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (12141 15753 (\TEDIT.PARSE.PAGEFRAMES 12151 . 13930) (\TEDIT.PUT.PAGEFRAMES 13932 . 
-14756) (\TEDIT.UNPARSE.PAGEFRAMES 14758 . 15751)) (15816 37833 (TEDIT.SINGLE.PAGEFORMAT 15826 . 26819)
- (TEDIT.COMPOUND.PAGEFORMAT 26821 . 27800) (TEDIT.PAGEFORMAT 27802 . 35091) (TEDIT.GET.PAGEFORMAT 
-35093 . 37831)) (38120 48905 (TEDIT.FORMAT.HARDCOPY 38130 . 48903)) (48992 102244 (\TEDIT.FORMATBOX 
-49002 . 62426) (\TEDIT.FORMATHEADING 62428 . 67074) (\TEDIT.FORMATPAGE 67076 . 76265) (
-\TEDIT.FORMATTEXTBOX 76267 . 92780) (\TEDIT.FORMATFOLIO 92782 . 98099) (\TEDIT.FORMAT.FOUNDBOX? 98101
- . 100140) (\TEDIT.SKIP.SPECIALCOND 100142 . 102242)) (102324 107379 (\TEDIT.HARDCOPY.PAGEHEADINGS 
-102334 . 107377)) (107488 115539 (\TEDIT.HARDCOPY-COLUMN-END 107498 . 115537)) (115584 120525 (
-SCALEPAGEUNITS 115594 . 116735) (SCALEPAGEXUNITS 116737 . 117507) (SCALEPAGEYUNITS 117509 . 118280) (
-\TEDIT.PAPERHEIGHT 118282 . 119217) (\TEDIT.PAPERWIDTH 119219 . 120523)) (120941 124509 (ROMANNUMERALS
- 120951 . 124507)) (124548 131814 (TEDIT.PAGENO.CREATE 124558 . 124934) (\TEDIT.PAGENO.OBJINIT 124936
- . 126219) (\TEDIT.PAGENO.BUTTONEVENTINFN 126221 . 127287) (\TEDIT.PAGENO.IMAGEBOXFN 127289 . 129439) 
-(\TEDIT.PAGENO.DISPLAYFN 129441 . 131091) (\TEDIT.PAGENO.GETFN 131093 . 131485) (\TEDIT.PAGENO.PUTFN 
-131487 . 131812)) (131879 134818 (\TEDIT.FORMAT.FOOTNOTE 131889 . 134816)))))
+  (FILEMAP (NIL (12139 15751 (\TEDIT.PARSE.PAGEFRAMES 12149 . 13928) (\TEDIT.PUT.PAGEFRAMES 13930 . 
+14754) (\TEDIT.UNPARSE.PAGEFRAMES 14756 . 15749)) (15814 37831 (TEDIT.SINGLE.PAGEFORMAT 15824 . 26817)
+ (TEDIT.COMPOUND.PAGEFORMAT 26819 . 27798) (TEDIT.PAGEFORMAT 27800 . 35089) (TEDIT.GET.PAGEFORMAT 
+35091 . 37829)) (38118 48925 (TEDIT.FORMAT.HARDCOPY 38128 . 48923)) (49012 102264 (\TEDIT.FORMATBOX 
+49022 . 62446) (\TEDIT.FORMATHEADING 62448 . 67094) (\TEDIT.FORMATPAGE 67096 . 76285) (
+\TEDIT.FORMATTEXTBOX 76287 . 92800) (\TEDIT.FORMATFOLIO 92802 . 98119) (\TEDIT.FORMAT.FOUNDBOX? 98121
+ . 100160) (\TEDIT.SKIP.SPECIALCOND 100162 . 102262)) (102344 107399 (\TEDIT.HARDCOPY.PAGEHEADINGS 
+102354 . 107397)) (107508 115559 (\TEDIT.HARDCOPY-COLUMN-END 107518 . 115557)) (115604 120545 (
+SCALEPAGEUNITS 115614 . 116755) (SCALEPAGEXUNITS 116757 . 117527) (SCALEPAGEYUNITS 117529 . 118300) (
+\TEDIT.PAPERHEIGHT 118302 . 119237) (\TEDIT.PAPERWIDTH 119239 . 120543)) (120961 124529 (ROMANNUMERALS
+ 120971 . 124527)) (124568 131834 (TEDIT.PAGENO.CREATE 124578 . 124954) (\TEDIT.PAGENO.OBJINIT 124956
+ . 126239) (\TEDIT.PAGENO.BUTTONEVENTINFN 126241 . 127307) (\TEDIT.PAGENO.IMAGEBOXFN 127309 . 129459) 
+(\TEDIT.PAGENO.DISPLAYFN 129461 . 131111) (\TEDIT.PAGENO.GETFN 131113 . 131505) (\TEDIT.PAGENO.PUTFN 
+131507 . 131832)) (131899 134838 (\TEDIT.FORMAT.FOOTNOTE 131909 . 134836)))))
 STOP
diff --git a/library/tedit/TEDIT-PAGE.LCOM b/library/tedit/TEDIT-PAGE.LCOM
index 0e607541..42cbcaf3 100644
Binary files a/library/tedit/TEDIT-PAGE.LCOM and b/library/tedit/TEDIT-PAGE.LCOM differ
diff --git a/library/tedit/TEDIT-RELEASENOTES.TEDIT b/library/tedit/TEDIT-RELEASENOTES.TEDIT
index 9b80ceb4..5a95005a 100644
Binary files a/library/tedit/TEDIT-RELEASENOTES.TEDIT and b/library/tedit/TEDIT-RELEASENOTES.TEDIT differ
diff --git a/library/tedit/TEDIT-SCREEN b/library/tedit/TEDIT-SCREEN
index 559c3c61..05f9ac8c 100644
--- a/library/tedit/TEDIT-SCREEN
+++ b/library/tedit/TEDIT-SCREEN
@@ -1,13 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "30-May-2025 21:59:23" {WMEDLEY}<library>tedit>TEDIT-SCREEN.;906 187434 
+(FILECREATED "12-Jun-2025 15:45:54" {WMEDLEY}<library>tedit>TEDIT-SCREEN.;907 187425 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS \TEDIT.DISPLAYLINE \TLVALIDATE)
-                  (VARS TEDIT-SCREENCOMS)
+      :CHANGES-TO (RECORDS PENDINGTAB)
 
-      :PREVIOUS-DATE "29-May-2025 22:38:44" {WMEDLEY}<library>tedit>TEDIT-SCREEN.;905)
+      :PREVIOUS-DATE "30-May-2025 21:59:23" {WMEDLEY}<library>tedit>TEDIT-SCREEN.;906)
 
 
 (PRETTYCOMPRINT TEDIT-SCREENCOMS)
@@ -629,7 +628,7 @@
                       PTOLDTAB                               (* ; "The pending tab")
                       PTTYPE                                 (* ; "Its tab type")
                       PTTABX                                 (* ; "Its nominal X position")
-                      (PTCHARSLOT FULLXPOINTER)              (* ; "The CHARSLOT that may need to be updated later.  (RMK:  I don't know why this is a FULLXPOINTER--maybe an issue in the older THISLINE implementation?)")
+                      (PTCHARSLOT FULLXPOINTER)              (* ; "The CHARSLOT that may need to be updated later.  This is an XPOINTER because it points into the middle of the CHARSLOTS block, we don't want that sub-block to be referenced and potentially collected.")
                       PTOLDTX                                (* ; 
                                                          "The TX as of when the tab was encountered.")
                       ))
@@ -2875,21 +2874,21 @@
                  (\TEDIT.LINE.TALLP LINE PHEIGHT))))])
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (26360 28576 (\TEDIT.LINEDESCRIPTOR.DEFPRINT 26370 . 28574)) (35981 119708 (
-\TEDIT.FORMATLINE 35991 . 71369) (\TEDIT.FORMATLINE.SETUP.PARA 71371 . 76537) (
-\TEDIT.FORMATLINE.HORIZONTAL 76539 . 81207) (\TEDIT.FORMATLINE.VERTICAL 81209 . 83660) (
-\TEDIT.FORMATLINE.JUSTIFY 83662 . 89683) (\TEDIT.FORMATLINE.TABS 89685 . 97713) (\TEDIT.SCALE.TABS 
-97715 . 98506) (\TEDIT.FORMATLINE.PURGE.SPACES 98508 . 99935) (\TEDIT.FORMATLINE.FLUSH.SOFTHYPHEN 
-99937 . 101014) (\TEDIT.FORMATLINE.EMPTY 101016 . 105836) (\TEDIT.FORMATLINE.UPDATELOOKS 105838 . 
-112019) (\TEDIT.FORMATLINE.LASTLEGAL 112021 . 115471) (\TEDIT.LINES.ABOVE 115473 . 119084) (
-\TEDIT.CHNO.TO.YTOP 119086 . 119706)) (119985 140565 (\TEDIT.DISPLAYLINE 119995 . 132505) (
-\TEDIT.DISPLAYLINE.TABS 132507 . 135311) (\TEDIT.LINECACHE 135313 . 136041) (\TEDIT.CREATE.LINECACHE 
-136043 . 136879) (\TEDIT.BLTCHAR 136881 . 139508) (\TEDIT.DIACRITIC.SHIFT 139510 . 140563)) (141180 
-187411 (\TEDIT.BACKFORMAT 141190 . 143744) (\TEDIT.PREVIOUS.LINEBREAK 143746 . 146549) (
-\TEDIT.UPDATE.LINES 146551 . 152266) (\TEDIT.PANE.CREATELINES 152268 . 155719) (
-\TEDIT.SUFFIXLINE.CREATE 155721 . 157336) (\TEDIT.LINES.BELOW 157338 . 161948) (\TEDIT.MEASURED.LINES 
-161950 . 163959) (\TEDIT.VALID.LASTCHNOS 163961 . 167737) (\TEDIT.VALID.NEXTCHNOS 167739 . 171213) (
-\TEDIT.LASTVALIDLINE 171215 . 175886) (\TEDIT.NEXTVALIDLINE 175888 . 178858) (
-\TEDIT.CLEARPANE.BELOW.LINE 178860 . 180966) (\TEDIT.INSERTLINE 180968 . 182354) (\TEDIT.LINE.BOTTOM 
-182356 . 185586) (\TEDIT.SHOW.AT.BOTTOMP 185588 . 186698) (\TEDIT.SHOW.AT.TOPP 186700 . 187409)))))
+  (FILEMAP (NIL (26302 28518 (\TEDIT.LINEDESCRIPTOR.DEFPRINT 26312 . 28516)) (35972 119699 (
+\TEDIT.FORMATLINE 35982 . 71360) (\TEDIT.FORMATLINE.SETUP.PARA 71362 . 76528) (
+\TEDIT.FORMATLINE.HORIZONTAL 76530 . 81198) (\TEDIT.FORMATLINE.VERTICAL 81200 . 83651) (
+\TEDIT.FORMATLINE.JUSTIFY 83653 . 89674) (\TEDIT.FORMATLINE.TABS 89676 . 97704) (\TEDIT.SCALE.TABS 
+97706 . 98497) (\TEDIT.FORMATLINE.PURGE.SPACES 98499 . 99926) (\TEDIT.FORMATLINE.FLUSH.SOFTHYPHEN 
+99928 . 101005) (\TEDIT.FORMATLINE.EMPTY 101007 . 105827) (\TEDIT.FORMATLINE.UPDATELOOKS 105829 . 
+112010) (\TEDIT.FORMATLINE.LASTLEGAL 112012 . 115462) (\TEDIT.LINES.ABOVE 115464 . 119075) (
+\TEDIT.CHNO.TO.YTOP 119077 . 119697)) (119976 140556 (\TEDIT.DISPLAYLINE 119986 . 132496) (
+\TEDIT.DISPLAYLINE.TABS 132498 . 135302) (\TEDIT.LINECACHE 135304 . 136032) (\TEDIT.CREATE.LINECACHE 
+136034 . 136870) (\TEDIT.BLTCHAR 136872 . 139499) (\TEDIT.DIACRITIC.SHIFT 139501 . 140554)) (141171 
+187402 (\TEDIT.BACKFORMAT 141181 . 143735) (\TEDIT.PREVIOUS.LINEBREAK 143737 . 146540) (
+\TEDIT.UPDATE.LINES 146542 . 152257) (\TEDIT.PANE.CREATELINES 152259 . 155710) (
+\TEDIT.SUFFIXLINE.CREATE 155712 . 157327) (\TEDIT.LINES.BELOW 157329 . 161939) (\TEDIT.MEASURED.LINES 
+161941 . 163950) (\TEDIT.VALID.LASTCHNOS 163952 . 167728) (\TEDIT.VALID.NEXTCHNOS 167730 . 171204) (
+\TEDIT.LASTVALIDLINE 171206 . 175877) (\TEDIT.NEXTVALIDLINE 175879 . 178849) (
+\TEDIT.CLEARPANE.BELOW.LINE 178851 . 180957) (\TEDIT.INSERTLINE 180959 . 182345) (\TEDIT.LINE.BOTTOM 
+182347 . 185577) (\TEDIT.SHOW.AT.BOTTOMP 185579 . 186689) (\TEDIT.SHOW.AT.TOPP 186691 . 187400)))))
 STOP
diff --git a/library/tedit/TEDIT-SCREEN.LCOM b/library/tedit/TEDIT-SCREEN.LCOM
index 8713f2ba..792fed88 100644
Binary files a/library/tedit/TEDIT-SCREEN.LCOM and b/library/tedit/TEDIT-SCREEN.LCOM differ
diff --git a/library/tedit/TEDIT-STRESS b/library/tedit/TEDIT-STRESS
index c5816aac..2e46c0b5 100644
--- a/library/tedit/TEDIT-STRESS
+++ b/library/tedit/TEDIT-STRESS
@@ -1,13 +1,14 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "29-Jun-2025 21:59:18" 
-{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>TEDIT>TEDIT-STRESS.;125 42815  
+(FILECREATED "30-Jun-2025 07:04:31" 
+{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>TEDIT>TEDIT-STRESS.;130 42287  
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS STRESSHC STRESSRAND STRESSPUT STRESSOPEN STRESSREAD STRESSFORMAT STRESSSCROLL
-                       STRESSDELETE STRESSDELETEWINDOW STRESSINSERTWINDOW STRESSGREP STRESSPEEK 
-                       STRESSINSERT STRESS-SETUP STRESS-SYSOUT SYSOUTRING STRESSDISPLAY)
+      :CHANGES-TO (FNS STRESSHC STRESSINSERT STRESS-SYSOUT SYSOUT-SETUP STRESS-SETUP STRESSRAND 
+                       STRESSPUT STRESSOPEN STRESSREAD STRESSFORMAT STRESSSCROLL STRESSDELETE 
+                       STRESSDELETEWINDOW STRESSINSERTWINDOW STRESSGREP STRESSPEEK SYSOUTRING 
+                       STRESSDISPLAY)
                   (VARS TEDIT-STRESSCOMS)
 
       :PREVIOUS-DATE "26-Jun-2025 20:58:11" {WMEDLEY}<library>tedit>TEDIT-STRESS.;120)
@@ -20,8 +21,8 @@
         (FNS STRESSHC STRESSRAND STRESSPUT STRESSOPEN STRESSREAD STRESSFORMAT STRESSDISPLAY 
              STRESSSCROLL STRESSDELETE STRESSDELETEWINDOW STRESSINSERT STRESSINSERTWINDOW STRESSGREP
              STRESSPEEK)
-        (FNS STRESS-SETUP STRESS-SYSOUT STRESS-AFTERSYSOUT SYSOUTRING SYSOUTNAME SYSOUTRING 
-             SYSOUTNAME)
+        (FNS STRESS-SETUP SYSOUT-SETUP STRESS-SYSOUT STRESS-AFTERSYSOUT SYSOUTRING SYSOUTNAME 
+             SYSOUTRING SYSOUTNAME)
         (FNS EQTEXTSTREAM COPYTOCORE CHECKARRAYS SAVERANDSTATE)
         (INITVARS (CHECKARRAYS NIL)
                (USELASTRANDSTATE NIL)
@@ -40,7 +41,7 @@
 
 (STRESSHC
   [LAMBDA (FILES REPS ERROR SEPARATEOUT PDF SYSOUTNAME SINGLESTEP)
-                                                             (* ; "Edited 29-Jun-2025 21:58 by rmk")
+                                                             (* ; "Edited 30-Jun-2025 07:04 by rmk")
                                                              (* ; "Edited  2-Jun-2025 21:27 by rmk")
                                                              (* ; "Edited 21-Oct-2024 00:26 by rmk")
                                                              (* ; "Edited 19-Mar-2024 21:33 by rmk")
@@ -52,19 +53,9 @@
 
     (SETQ FILES (STRESS-SETUP FILES 'STRESSHC))
     (CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
-    [SETQ SYSOUTNAME (PACKFILENAME 'VERSION NIL 'BODY (OR SYSOUTNAME (PACKFILENAME 'DIRECTORY 
-                                                                            MEDLEYDIR 'NAME 
-                                                                            "STRESSHC" 'EXTENSION
-                                                                            'SYSOUT]
     (PRINTOUT T REPS " reps of " (LENGTH FILES)
-           " files saving "
-           (if (EQ NSYSOUTS 0)
-               then "no sysouts"
-             elseif (EQ NSYSOUTS 'SAVEVM)
-               then " the virtual memory"
-             else (PRINTOUT NIL NSYSOUTS " sysouts on " 3)
-                  SYSOUTNAME)
-           T)
+           " files" T)
+    (SYSOUT-SETUP 'STRESSHC)
     (PRINTOUT T "First file is " (CAR FILES)
            T T)
     (BKSYSBUF " ")
@@ -72,9 +63,7 @@
                                 'pdf
                                 'ps))
          (N _ 0) from 1 to REPS do (PRINTOUT T "Rep " R T)
-                                   (if (EQ NSYSOUTS 'SAVEVM)
-                                       then (SAVEVM)
-                                     else (SETQ SYSOUTS (SYSOUTRING NSYSOUTS SYSOUTNAME SYSOUTS)))
+                                   (SETQ SYSOUTS (STRESS-SYSOUT SYSOUTS))
                                    [for F TSTREAM HCFILE in FILES unless (DIRECTORYNAMEP F)
                                       do (PROMPTPRINT F)
                                          (SETQ HCFILE (CL:IF SEPARATEOUT
@@ -378,7 +367,7 @@
                                                        N])
 
 (STRESSINSERT
-  [LAMBDA (FILES NTIMES REPS NOERROR SYSOUTNAME)             (* ; "Edited 29-Jun-2025 21:18 by rmk")
+  [LAMBDA (FILES NTIMES REPS NOERROR SYSOUTNAME)             (* ; "Edited 30-Jun-2025 07:03 by rmk")
                                                              (* ; "Edited 26-Jun-2025 20:19 by rmk")
                                                              (* ; "Edited  5-Jun-2025 21:11 by rmk")
                                                              (* ; "Edited  4-Jun-2025 09:18 by rmk")
@@ -390,20 +379,13 @@
 
     (* ;; "Does random inserts in the tstreams without a window or process")
 
-    (DECLARE (SPECVARS SYSOUTNAME))
     (SETQ FILES (STRESS-SETUP FILES 'STRESSINSERT))
     (CL:UNLESS NTIMES (SETQ NTIMES 10))
     (CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
     (PRINTOUT T T "STRESSINSERT: " T 2 REPS " reps randomly inserting 3 characters " NTIMES 
            " times in " (LENGTH FILES)
            " files" T)
-    (PRINTOUT T 2 "Saving " (if (EQ NSYSOUTS 0)
-                                then "no sysouts"
-                              elseif (EQ NSYSOUTS 'SAVEVM)
-                                then " the virtual memory"
-                              else (PRINTOUT NIL NSYSOUTS " sysouts on ")
-                                   (PSEUDOFILENAME SYSOUTNAME))
-           T)
+    (SYSOUT-SETUP 'STRESSINSERT)
     (SAVERANDSTATE)
     (for REP SYSOUTS AFTERCRASH (N _ 0) from 1 to REPS declare (SPECVARS SYSOUTS AFTERCRASH)
        do (CL:WHEN AFTERCRASH (TERPRI T))
@@ -424,8 +406,7 @@
                        (for I RAND from 1 to NTIMES do (CHECKARRAYS 'BEFORE)
                                                        (SETQ RAND (RAND 1 LEN))
                                                        (CL:WHEN AFTERCRASH (PRINTOUT T RAND " "))
-                                                       (SETQ SYSOUTS (STRESS-SYSOUT SYSOUTS 
-                                                                            SYSOUTNAME))
+                                                       (SETQ SYSOUTS (STRESS-SYSOUT SYSOUTS))
                                                        (TEDIT.INSERT TSTREAM "aaa" RAND)
                                                        (CHECKARRAYS 'AFTER)
                                                        (add LEN 3))
@@ -501,14 +482,12 @@
 (DEFINEQ
 
 (STRESS-SETUP
-  [LAMBDA (FILES SUBDIR)                                     (* ; "Edited 29-Jun-2025 21:18 by rmk")
+  [LAMBDA (FILES SUBDIR)                                     (* ; "Edited 30-Jun-2025 06:54 by rmk")
                                                              (* ; "Edited 26-Jun-2025 20:18 by rmk")
 
     (* ;; "Copy the files to CORE, defaulting to TEDIT files in connected directory, and load all the image object functions.")
 
-    (DECLARE (USEDFREE SYSOUTNAME))
     (BKSYSBUF " ")
-    (CL:UNLESS SYSOUTNAME (SETQ SYSOUTNAME SUBDIR))
     (LET ((COREDIR (PACKFILENAME 'HOST 'CORE 'DIRECTORY SUBDIR))
           TOCOPY)
          (if (EQ FILES T)
@@ -530,10 +509,25 @@
                               " files already copied to " COREDIR T))
                 (FILDIR (PACKFILENAME 'BODY COREDIR 'BODY '*])
 
+(SYSOUT-SETUP
+  [LAMBDA (SUBDIR)
+    (DECLARE (USEDFREE SYSOUTNAME NSYSOUTS))                 (* ; "Edited 30-Jun-2025 07:00 by rmk")
+    (CL:UNLESS (EQ NSYSOUTS 0)
+        (PACKFILENAME 'VERSION NIL 'BODY (PACKFILENAME 'DIRECTORY MEDLEYDIR 'NAME SUBDIR 'EXTENSION
+                                                'SYSOUT)))
+    (PRINTOUT T 2 "Saving " (if (EQ NSYSOUTS 0)
+                                then "no sysouts"
+                              elseif (EQ NSYSOUTS 'SAVEVM)
+                                then " the virtual memory"
+                              else (PRINTOUT NIL NSYSOUTS " sysouts on ")
+                                   (PSEUDOFILENAME SYSOUTNAME))
+           T)
+    SYSOUTNAME])
+
 (STRESS-SYSOUT
-  [LAMBDA (SYSOUTS SYSOUTNAME)                               (* ; "Edited 29-Jun-2025 21:18 by rmk")
+  [LAMBDA (SYSOUTS)                                          (* ; "Edited 30-Jun-2025 07:02 by rmk")
                                                              (* ; "Edited 26-Jun-2025 20:57 by rmk")
-    (DECLARE (USEDFREE NSYSOUTS))
+    (DECLARE (USEDFREE NSYSOUTS SYSOUTNAME))
     (if (EQ NSYSOUTS 'SAVEVM)
         then (SAVEVM)
       elseif (IGREATERP NSYSOUTS 0)
@@ -718,12 +712,12 @@
                         (CLOSEF? TSTREAM)))
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (1548 32125 (STRESSHC 1558 . 5389) (STRESSRAND 5391 . 6927) (STRESSPUT 6929 . 8498) (
-STRESSOPEN 8500 . 9663) (STRESSREAD 9665 . 11165) (STRESSFORMAT 11167 . 13642) (STRESSDISPLAY 13644 . 
-16623) (STRESSSCROLL 16625 . 19193) (STRESSDELETE 19195 . 21574) (STRESSDELETEWINDOW 21576 . 24168) (
-STRESSINSERT 24170 . 27854) (STRESSINSERTWINDOW 27856 . 30342) (STRESSGREP 30344 . 31418) (STRESSPEEK 
-31420 . 32123)) (32126 38911 (STRESS-SETUP 32136 . 33889) (STRESS-SYSOUT 33891 . 35473) (
-STRESS-AFTERSYSOUT 35475 . 36139) (SYSOUTRING 36141 . 37249) (SYSOUTNAME 37251 . 37524) (SYSOUTRING 
-37526 . 38634) (SYSOUTNAME 38636 . 38909)) (38912 41860 (EQTEXTSTREAM 38922 . 40091) (COPYTOCORE 40093
- . 41023) (CHECKARRAYS 41025 . 41352) (SAVERANDSTATE 41354 . 41858)))))
+  (FILEMAP (NIL (1599 30932 (STRESSHC 1609 . 4675) (STRESSRAND 4677 . 6213) (STRESSPUT 6215 . 7784) (
+STRESSOPEN 7786 . 8949) (STRESSREAD 8951 . 10451) (STRESSFORMAT 10453 . 12928) (STRESSDISPLAY 12930 . 
+15909) (STRESSSCROLL 15911 . 18479) (STRESSDELETE 18481 . 20860) (STRESSDELETEWINDOW 20862 . 23454) (
+STRESSINSERT 23456 . 26661) (STRESSINSERTWINDOW 26663 . 29149) (STRESSGREP 29151 . 30225) (STRESSPEEK 
+30227 . 30930)) (30933 38383 (STRESS-SETUP 30943 . 32604) (SYSOUT-SETUP 32606 . 33350) (STRESS-SYSOUT 
+33352 . 34945) (STRESS-AFTERSYSOUT 34947 . 35611) (SYSOUTRING 35613 . 36721) (SYSOUTNAME 36723 . 36996
+) (SYSOUTRING 36998 . 38106) (SYSOUTNAME 38108 . 38381)) (38384 41332 (EQTEXTSTREAM 38394 . 39563) (
+COPYTOCORE 39565 . 40495) (CHECKARRAYS 40497 . 40824) (SAVERANDSTATE 40826 . 41330)))))
 STOP
diff --git a/library/tedit/TEDIT-STRESS.LCOM b/library/tedit/TEDIT-STRESS.LCOM
index 0e67fe4d..841c06d4 100644
Binary files a/library/tedit/TEDIT-STRESS.LCOM and b/library/tedit/TEDIT-STRESS.LCOM differ
diff --git a/library/tedit/tedit-exports.all b/library/tedit/tedit-exports.all
index dcf7a26a..26029105 100644
--- a/library/tedit/tedit-exports.all
+++ b/library/tedit/tedit-exports.all
@@ -1,11 +1,9 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "21-Apr-2025 23:06:12" 
-{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>tedit-exports.all;228 53892  
+(FILECREATED " 3-Jul-2025 13:10:56" 
+{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>tedit-exports.all;230 53573  
 
-      :EDIT-BY rmk
-
-      :PREVIOUS-DATE "20-Apr-2025 00:13:59" {WMEDLEY}<library>TEDIT>tedit-exports.all;227)
+      :EDIT-BY rmk)
 
 
 (PRETTYCOMPRINT ((E (MAPC (MKLIST FROMFILES) (FUNCTION (LAMBDA (F) (MAPC (IMPORTFILE F FLG) (FUNCTION 
@@ -17,7 +15,7 @@ PRINT))))))))
 (PUTPROPS FTEXTOBJ MACRO ((X) (TEXTOBJ! (CL:IF (type? TEXTOBJ X) X (GETTSTR X TEXTOBJ)))))
 (GLOBALVARS CHECK-TEDIT-ASSERTIONS)
 (RPAQ? CHECK-TEDIT-ASSERTIONS T)
-(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 22:54:33"))
+(PUTPROP (QUOTE TEDIT) (QUOTE IMPORTDATE) (IDATE "28-May-2025 16:07:21"))
 (RPAQQ \BTREEWORDSPERSLOT 4)
 (RPAQQ \BTREEMAXCOUNT 8)
 (CONSTANTS (\BTREEWORDSPERSLOT 4) (\BTREEMAXCOUNT 8))
@@ -121,7 +119,13 @@ TEDIT.DELETESELECTION)
 (PUTPROPS \TEDIT.NOSEL MACRO ((TSTREAM SEL ONLYPANE) (* ; 
 "Takes down SEL in TSTREAM, where SEL defaults to the current selection") (\TEDIT.SHOWSEL SEL NIL 
 TSTREAM ONLYPANE)))
-(PUTPROP (QUOTE TEDIT-SELECTION) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 22:52:26"))
+(PUTPROPS \TEDIT.SEL.ON MACRO ((TSTREAM SEL ONLYPANE DONTFIX) (* ; 
+"Takes down SEL in TSTREAM, where SEL defaults to the current selection") (\TEDIT.SHOWSEL SEL T 
+TSTREAM ONLYPANE DONTFIX)))
+(PUTPROPS \TEDIT.SEL.OFF MACRO ((TSTREAM SEL ONLYPANE) (* ; 
+"Takes down SEL in TSTREAM, where SEL defaults to the current selection") (\TEDIT.SHOWSEL SEL NIL 
+TSTREAM ONLYPANE)))
+(PUTPROP (QUOTE TEDIT-SELECTION) (QUOTE IMPORTDATE) (IDATE "29-May-2025 15:53:51"))
 (RECORD TAB (TABX . TABKIND))
 (RECORD TABSPEC (DEFAULTTAB . TABS))
 (DATATYPE LINECACHE ((* ;; "Image cache for display lines.") LCBITMAP (* ; 
@@ -233,12 +237,6 @@ MAXCHARSLOTS) WORDSPERCHARSLOT))))
 CHARSLOT CHARW) of CSLOT with W) (freplace (CHARSLOT CHARCL) of CSLOT with R)))
 (PUTPROPS PUSHCHAR MACRO ((CSLOTVAR C W CL) (FILLCHARSLOT CSLOTVAR C W CL) (SETQ CSLOTVAR (
 NEXTCHARSLOT CSLOTVAR))))
-(PUTPROPS CHARSLOTP MACRO (OPENLAMBDA (X TL) (* ;; 
-"True if TL is a THISLINE and X is a pointer into its CHARSLOTS block.  A tool for consistency assertions."
-) (CL:WHEN (TYPE? THISLINE TL) (LET ((FIRSTSLOT (FIRSTCHARSLOT TL)) (LASTSLOT (LASTCHARSLOT TL))) (AND
- (OR (IGREATERP (\HILOC X) (\HILOC FIRSTSLOT)) (AND (EQ (\HILOC X) (\HILOC FIRSTSLOT)) (IGEQ (\LOLOC X
-) (\LOLOC FIRSTSLOT)))) (OR (ILESSP (\HILOC X) (\HILOC LASTSLOT)) (AND (EQ (\HILOC X) (\HILOC LASTSLOT
-)) (ILEQ (\LOLOC X) (\LOLOC LASTSLOT)))))))))
 (RPAQQ CELLSPERCHARSLOT 3)
 (RPAQ WORDSPERCHARSLOT (TIMES CELLSPERCHARSLOT WORDSPERCELL))
 (RPAQQ MAXCHARSLOTS 256)
@@ -260,7 +258,7 @@ NEXTAVAILABLECHARSLOT) of THISLINE))) (T $$STARTSLOT))) (SETQ $$CHARSLOTLIMIT (F
 ) by (PREVCHARSLOT I.V.) eachtime (SETQ CHAR (fetch (CHARSLOT CHAR) of I.V.)) (SETQ CHARW (fetch (
 CHARSLOT CHARW) of I.V.)) (SETQ CHARCL (fetch (CHARSLOT CHARCL) of I.V.)) repeatuntil (EQ I.V. 
 $$CHARSLOTLIMIT))))) T)
-(PUTPROP (QUOTE TEDIT-SCREEN) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 20:34:16"))
+(PUTPROP (QUOTE TEDIT-SCREEN) (QUOTE IMPORTDATE) (IDATE "12-Jun-2025 15:45:54"))
 (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)."
@@ -444,7 +442,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 "21-Apr-2025 22:45:03"))
+(PUTPROP (QUOTE TEDIT-STREAM) (QUOTE IMPORTDATE) (IDATE "29-May-2025 19:06:45"))
 (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))
@@ -458,7 +456,7 @@ I in ARGS as J on ARGS when (NOT (STRINGP I)) collect (LIST (QUOTE OR) I (LIST (
 \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-Apr-2025 22:29:28"))
+(PUTPROP (QUOTE TEDIT-FILE) (QUOTE IMPORTDATE) (IDATE "31-May-2025 10:42:55"))
 (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 (* ; 
@@ -547,7 +545,7 @@ 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 "21-Apr-2025 20:28:55"))
+(PUTPROP (QUOTE TEDIT-LOOKS) (QUOTE IMPORTDATE) (IDATE "24-Apr-2025 23:47:54"))
 (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
@@ -560,10 +558,9 @@ TCCARETY (* Y position in the window where the caret appears) TCCARET (* A lisp
 eventually))) TCNOWTIME _ (CREATECELL \FIXP) TCTHENTIME _ (CREATECELL \FIXP) TCCURSORBM _ BXCARET 
 TCCARETRATE _ \CARETRATE TCUP _ T TCCARET _ (\CARET.CREATE BXCARET))
 (ACCESSFNS TEXTWINDOW ((WTEXTSTREAM (GETWINDOWPROP DATUM (QUOTE TEXTSTREAM)) (PUTWINDOWPROP DATUM (
-QUOTE TEXTSTREAM) NEWVALUE)) (WTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of (fetch (TEXTWINDOW WTEXTSTREAM) 
-of DATUM))) (PTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of (fetch (TEXTWINDOW WTEXTSTREAM) of DATUM))) (
-CURSORREGION (GETWINDOWPROP DATUM (QUOTE TEDIT.CURSORREGION)) (PUTWINDOWPROP DATUM (QUOTE 
-TEDIT.CURSORREGION) NEWVALUE)) (CLOSINGFILE (GETWINDOWPROP DATUM (QUOTE TEDIT-CLOSING-FILE)) (
+QUOTE TEXTSTREAM) NEWVALUE)) (PTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of (fetch (TEXTWINDOW WTEXTSTREAM) 
+of DATUM))) (CURSORREGION (GETWINDOWPROP DATUM (QUOTE TEDIT.CURSORREGION)) (PUTWINDOWPROP DATUM (QUOTE
+ TEDIT.CURSORREGION) NEWVALUE)) (CLOSINGFILE (GETWINDOWPROP DATUM (QUOTE TEDIT-CLOSING-FILE)) (
 PUTWINDOWPROP DATUM (QUOTE TEDIT-CLOSING-FILE) NIL)) (PANEPROPS (GETWINDOWPROP DATUM (QUOTE PANEPROPS)
 ) (PUTWINDOWPROP DATUM (QUOTE PANEPROPS) NEWVALUE))) (TYPE? (AND (WINDOWP DATUM) (TYPENAMEP (fetch (
 TEXTWINDOW PTEXTOBJ) of DATUM) (QUOTE TEXTOBJ)))))
@@ -611,8 +608,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 "21-Apr-2025 20:34:07"))
-(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "14-Apr-2025 23:50:23"))
+(PUTPROP (QUOTE TEDIT-WINDOW) (QUOTE IMPORTDATE) (IDATE "30-May-2025 12:54:56"))
+(PUTPROP (QUOTE TEDIT-BUTTONS) (QUOTE IMPORTDATE) (IDATE "30-Apr-2025 14:09:18"))
 (RPAQQ PTSPERPICA 12)
 (RPAQQ PTSPERINCH 72)
 (RPAQQ PICASPERINCH 6)
@@ -623,14 +620,14 @@ $$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 "20-Apr-2025 23:44:59"))
+(PUTPROP (QUOTE TEDIT-MENU) (QUOTE IMPORTDATE) (IDATE " 5-Jun-2025 19:38:52"))
 (PUTPROP (QUOTE TEDIT-FIND) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 22:42:57"))
 (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 "21-Apr-2025 22:42:44"))
+(PUTPROP (QUOTE TEDIT-FNKEYS) (QUOTE IMPORTDATE) (IDATE "29-May-2025 16:20:30"))
 (PUTPROP (QUOTE TEDIT-HCPY) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 19:07:23"))
 (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?") 
@@ -680,9 +677,9 @@ REGIONPARENT FULLXPOINTER) (* ; "The parent node for this box, for sub-boxes") R
 $$VALUES)) (PROG1 (CAR $$VALUES) (\,@ (FOR V IN (CAR ARGS) collect (COND (V (BQUOTE (SETQ (\, V) (POP 
 $$VALUES)))) (T (BQUOTE (SETQ $$VALUES (CDR $$VALUES))))))))))))
 (PUTPROPS TEDIT.VALUES MACRO (ARGS (BQUOTE (LIST (\,@ ARGS)))))
-(PUTPROP (QUOTE TEDIT-PAGE) (QUOTE IMPORTDATE) (IDATE "21-Apr-2025 22:42:22"))
-(PUTPROP (QUOTE TEDIT-ABBREV) (QUOTE IMPORTDATE) (IDATE "20-Apr-2025 23:30:30"))
-(PUTPROP (QUOTE TEDIT-TFBRAVO) (QUOTE IMPORTDATE) (IDATE "28-Mar-2025 14:23:07"))
+(PUTPROP (QUOTE TEDIT-PAGE) (QUOTE IMPORTDATE) (IDATE " 5-Jun-2025 08:24:12"))
+(PUTPROP (QUOTE TEDIT-ABBREV) (QUOTE IMPORTDATE) (IDATE "24-Apr-2025 23:45:12"))
+(PUTPROP (QUOTE TEDIT-TFBRAVO) (QUOTE IMPORTDATE) (IDATE "10-May-2025 12:53:24"))
 (DECLARE%: DONTCOPY
   (FILEMAP (NIL)))
 STOP
