diff --git a/library/TEDITDCL b/library/TEDITDCL
index 4805d484..13e8edf7 100644
--- a/library/TEDITDCL
+++ b/library/TEDITDCL
@@ -1,8 +1,10 @@
-(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
-(FILECREATED "30-Apr-2021 17:26:17" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;2 86155  
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
+(FILECREATED "21-Sep-2021 12:53:57" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;2 86549  
 
-      previous date%: "25-Aug-94 10:53:00" 
+      changes to%:  (VARS TEDITDCLCOMS)
+
+      previous date%: "30-Apr-2021 17:26:17" 
 {DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;1)
 
 
@@ -15,14 +17,14 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (RPAQQ TEDITDCLCOMS
        [
 
-(* ;;; "This file is the collected record declarations and compile-time necessities for TEDIT.")
+(* ;;; "This file is the collected record declarations and compile-time necessities for TEDIT.")
 
         
-        (* ;; "FROM TEDIT")
+        (* ;; "FROM TEDIT")
 
         (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\SCRATCHLEN 64)))
         
-        (* ;; "FROM TEDITSELECTION")
+        (* ;; "FROM TEDITSELECTION")
 
         (RECORDS SELECTION)
         (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (COPYSELSHADE 30583)
@@ -31,19 +33,19 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
                                                 (EDITGRAY 32800)))
         (VARS TEDITFILES)
         
-        (* ;; "FROM TEDITSCREEN")
+        (* ;; "FROM TEDITSCREEN")
 
         (RECORDS THISLINE LINEDESCRIPTOR LINECACHE)
         (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (LMInvisibleRun 401)
                                                 (LMLooksChange 400)))
         
-        (* ;; "FROM TEXTOFD")
+        (* ;; "FROM TEXTOFD")
 
         (RECORDS EDITMARK)
         (RECORDS PIECE TEXTOBJ TEXTIMAGEDATA TEXTSTREAM)
         (OPTIMIZERS TEXTPROP)
         (COMS 
-              (* ;; "Private data structures and constants FROM TEXTOFD")
+              (* ;; "Private data structures and constants FROM TEXTOFD")
 
               (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\PCTBFreePieces 0)
                                                       (\PCTBLastPieceOffset 1)
@@ -54,13 +56,13 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
                      (GLOBALVARS \TEXTIMAGEOPS \TEXTOFD \TEXTFDEV)))
         
 
-(* ;;; "FROM TEDITPAGE")
+(* ;;; "FROM TEDITPAGE")
 
         (RECORDS PAGEFORMATTINGSTATE PAGEREGION)
         (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TEDITPAPERSIZE)
                (FUNCTIONS \NEW-COLUMN-START \FIRST-COLUMN-START))
         
-        (* ;; "FROM TEDITFIND")
+        (* ;; "FROM TEDITFIND")
 
         (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\AlphaNumericFlag 256)
                                                 (\AlphaFlag 512)
@@ -74,12 +76,12 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
                                                 (\RightBracketPattern 1031)
                                                 (\SpecialPattern 1024)))
         
-        (* ;; " FROM TEDITLOOKS")
+        (* ;; " FROM TEDITLOOKS")
 
         (RECORDS CHARLOOKS FMTSPEC PENDINGTAB)
         (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS \SMALLPIN \SMALLPOUT ONOFF))
         
-        (* ;; "FROM TEDITMENU")
+        (* ;; "FROM TEDITMENU")
 
         (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS MBUTTON))
         (INITRECORDS MBUTTON)
@@ -91,11 +93,11 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
         (RECORDS MB.3STATE MB.BUTTON MB.INSERT MB.MARGINBAR MB.NWAY MB.TEXT MB.TOGGLE)
         (FUNCTIONS WITHOUT-UPDATES)
         
-        (* ;; "FROM TEDITHISTORY")
+        (* ;; "FROM TEDITHISTORY")
 
         (RECORDS TEDITHISTORYEVENT)
         
-        (* ;; "FROM TEDITFILE")
+        (* ;; "FROM TEDITFILE")
 
         (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\PieceDescriptorLOOKS 0)
                                                 (\PieceDescriptorOBJECT 1)
@@ -105,7 +107,7 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
                                                 (\PieceDescriptorPARALOOKSLIST 5)
                                                 (\PieceDescriptorSAFEOBJECT 6)))
         
-        (* ;; "FROM TEDITCOMMAND")
+        (* ;; "FROM TEDITCOMMAND")
 
         (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS \INSERT\TTY\BUFFER \TEDIT.MOUSESTATE \TEDIT.CHECK))
         (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TEDITTERMCODE))
@@ -127,36 +129,40 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
                                                 (THINSPACE 159)
                                                 (FIGSPACE 154)))
         
-        (* ;; "FROM TEDITWINDOW")
+        (* ;; "FROM TEDITWINDOW")
 
         (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TEDITCARET))
         (INITRECORDS TEDITCARET)
         
-        (* ;; "FROM PCTREE added by Nakamura")
+        (* ;; "FROM PCTREE added by Nakamura")
 
         (RECORDS PCTNODE)
         
+        (* ;; "FROM TEDITHCPY and TEDITSCREEN")
 
-(* ;;; "THE END")
+        (DECLARE%: EVAL@COMPILE DONTCOPY (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS))
+        
+
+(* ;;; "THE END")
 
         (COMS 
-              (* ;; "Bits in the CHARTABLE that control line breaking, and what happens when a line is broken on this character ")
+              (* ;; "Bits in the CHARTABLE that control line breaking, and what happens when a line is broken on this character ")
 
               (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (NOTBEFORE.LB 1)
-                                                             (* ; 
-                                 "Must not break before this character (e.g. Japanese right-paren)")
+                                                             (* ; 
+                                 "Must not break before this character (e.g. Japanese right-paren)")
                                                       (NOTAFTER.LB 2)
-                                                             (* ; 
-                                   "Must not break after this character (e.g. Japanese open-quote)")
+                                                             (* ; 
+                                   "Must not break after this character (e.g. Japanese open-quote)")
                                                       (BEFORE.LB 4)
-                                                             (* ; "OK to break before this character, provided it's OK to break after the prior char (true of most non-white-space)")
+                                                             (* ; "OK to break before this character, provided it's OK to break after the prior char (true of most non-white-space)")
                                                       (AFTER.LB 8)
-                                                             (* ; 
-  "OK to break after this char, if it's OK to break before the next one (true of most white space)")
+                                                             (* ; 
+  "OK to break after this char, if it's OK to break before the next one (true of most white space)")
                                                       (DISAPPEAR-IF-NOT-SPLIT.LB 16)
-                                                             (* ; "This character shouldn't be rendered if it isn't the last char on the line (non-breaking hyphen has this)")
+                                                             (* ; "This character shouldn't be rendered if it isn't the last char on the line (non-breaking hyphen has this)")
                                                       (NEWCHAR-IF-SPLIT.LB 32)
-                                                             (* ; "Look this char up in *TEDIT-SPLITCHAR-HASH* if this IS the last character on a line, and render it as the char we found.")
+                                                             (* ; "Look this char up in *TEDIT-SPLITCHAR-HASH* if this IS the last character on a line, and render it as the char we found.")
                                                       ])
 
 
@@ -186,48 +192,48 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (DATATYPE SELECTION 
           (
-           (* ;; "Description of a piece of selected text for TEdit.  Text has to be selected before it can be operated on by the user.")
+           (* ;; "Description of a piece of selected text for TEdit.  Text has to be selected before it can be operated on by the user.")
 
-           Y0                                                (* ; 
-                                                           "Y value of topmost line of selection")
-           X0                                                (* ; 
-                                                           "X value of left edge of selection")
-           DX                                                (* ; 
-                                                     "Width of the selection, if it's on one line.")
-           CH#                                               (* ; 
-                                                           "CH# of the first selected character")
-           XLIM                                              (* ; 
-                                                 "X value of right edge of last selected character")
-           CHLIM                                             (* ; 
-                                                       "CH# of the last character in the selection")
-           DCH                                               (* ; 
-                                     "# of characters selected (can be zero, for point selection.)")
-           L1                                                (* ; 
-                            "-> line descriptor for the line where the first selected character is")
-           LN                                                (* ; 
-                          "-> line descriptor for the line which contains the end of the selection")
-           YLIM                                              (* ; 
-                                        "Y value of the bottom of the line that ends the selection")
-           POINT                                             (* ; 
-                                           "Which end should the caret appear at?  (LEFT or RIGHT)")
-           (SET FLAG)                                        (* ; 
-                                                         "T if this selection is real;  NIL if not")
-           (\TEXTOBJ FULLXPOINTER)                           (* ; 
-                                                         "TEXTOBJ that describes the selected text")
-           SELKIND                                           (* ; 
-                                            "What kind of selection?  CHAR or WORD or LINE or PARA")
-           HOW                                               (* ; 
-                                                           "SHADE used to highlight this selection")
-           HOWHEIGHT                                         (* ; 
-                           "Height of the highlight (1 usually, full line for delete selection...)")
-           (HASCARET FLAG)                                   (* ; 
-                                                  "T if there should be a caret for this selection")
-           SELOBJ                                            (* ; 
-                                             "If this selection is inside an object, which object?")
-           (ONFLG FLAG)                                      (* ; 
-                                        "T if the selection is highlighted on the screen, else NIL")
-           SELOBJINFO                                        (* ; 
-                       "A Place for the selected object to put info about selection inside itself.")
+           Y0                                                (* ; 
+                                                           "Y value of topmost line of selection")
+           X0                                                (* ; 
+                                                           "X value of left edge of selection")
+           DX                                                (* ; 
+                                                     "Width of the selection, if it's on one line.")
+           CH#                                               (* ; 
+                                                           "CH# of the first selected character")
+           XLIM                                              (* ; 
+                                                 "X value of right edge of last selected character")
+           CHLIM                                             (* ; 
+                                                       "CH# of the last character in the selection")
+           DCH                                               (* ; 
+                                     "# of characters selected (can be zero, for point selection.)")
+           L1                                                (* ; 
+                            "-> line descriptor for the line where the first selected character is")
+           LN                                                (* ; 
+                          "-> line descriptor for the line which contains the end of the selection")
+           YLIM                                              (* ; 
+                                        "Y value of the bottom of the line that ends the selection")
+           POINT                                             (* ; 
+                                           "Which end should the caret appear at?  (LEFT or RIGHT)")
+           (SET FLAG)                                        (* ; 
+                                                         "T if this selection is real;  NIL if not")
+           (\TEXTOBJ FULLXPOINTER)                           (* ; 
+                                                         "TEXTOBJ that describes the selected text")
+           SELKIND                                           (* ; 
+                                            "What kind of selection?  CHAR or WORD or LINE or PARA")
+           HOW                                               (* ; 
+                                                           "SHADE used to highlight this selection")
+           HOWHEIGHT                                         (* ; 
+                           "Height of the highlight (1 usually, full line for delete selection...)")
+           (HASCARET FLAG)                                   (* ; 
+                                                  "T if there should be a caret for this selection")
+           SELOBJ                                            (* ; 
+                                             "If this selection is inside an object, which object?")
+           (ONFLG FLAG)                                      (* ; 
+                                        "T if the selection is highlighted on the screen, else NIL")
+           SELOBJINFO                                        (* ; 
+                       "A Place for the selected object to put info about selection inside itself.")
            )
           SET _ NIL HOW _ BLACKSHADE HOWHEIGHT _ 1 HASCARET _ T Y0 _ 0 X0 _ 0 POINT _ 'LEFT L1 _
           (LIST NIL)
@@ -288,24 +294,24 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (DECLARE%: EVAL@COMPILE
 
 (DATATYPE THISLINE (
-                        (* ;; 
-      "Cache for line-related character location info, for selection and line-display code to use.")
+                        (* ;; 
+      "Cache for line-related character location info, for selection and line-display code to use.")
 
-                        (DESC FULLXPOINTER)                  (* ; 
-                                                  "Line descriptor for the line this describes now")
-                        LEN                                  (* ; 
-                                                           "Length of the line in characters")
+                        (DESC FULLXPOINTER)                  (* ; 
+                                                  "Line descriptor for the line this describes now")
+                        LEN                                  (* ; 
+                                                           "Length of the line in characters")
                         CHARS
 
-                        (* ;; "Array of character codes (or objects) on the line (charcode of 400 => dummy entry for looks change--go get next entry in LOOKS)")
+                        (* ;; "Array of character codes (or objects) on the line (charcode of 400 => dummy entry for looks change--go get next entry in LOOKS)")
 
-                        WIDTHS                               (* ; 
-                                                        "Array of each character's width in points")
-                        LOOKS                                (* ; 
-   "Array of any looks changes within the line.  LOOKS (0) = starting character looks for the line")
-                        TLSPACEFACTOR                        (* ; 
-                                                 "The SPACEFACTOR to be used in printing this line")
-                        TLFIRSTSPACE                         (* ; "The first space to which SPACEFACTOR is to apply.  This is used so that spaces to the left of a TAB have their default width.")
+                        WIDTHS                               (* ; 
+                                                        "Array of each character's width in points")
+                        LOOKS                                (* ; 
+   "Array of any looks changes within the line.  LOOKS (0) = starting character looks for the line")
+                        TLSPACEFACTOR                        (* ; 
+                                                 "The SPACEFACTOR to be used in printing this line")
+                        TLFIRSTSPACE                         (* ; "The first space to which SPACEFACTOR is to apply.  This is used so that spaces to the left of a TAB have their default width.")
                         )
                        LEN _ 0 CHARS _ (ARRAY 512 'POINTER 0 0)
                        WIDTHS _ (ARRAY 512 'POINTER 0 0)
@@ -314,64 +320,64 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (DATATYPE LINEDESCRIPTOR 
           (
-           (* ;; 
-     "Description of a single line of formatted text, either on the display or for a printed page.")
+           (* ;; 
+     "Description of a single line of formatted text, either on the display or for a printed page.")
 
-           YBOT                                              (* ; 
-                                           "Y value for the bottom of the line (below the descent)")
-           YBASE                                             (* ; 
-                                                   "Yvalue for the base line the characters sit on")
-           LEFTMARGIN                                        (* ; "Left margin, in screen points")
-           RIGHTMARGIN                                       (* ; "Right margin, in screen points")
-           LXLIM                                             (* ; "X value of right edge of rightmost character on the line (may exceed right margin, if char is a space.)")
-           SPACELEFT                                         (* ; 
-                                          "Space left on the line, ignoring trailing blanks & CRs.")
-           LHEIGHT                                           (* ; 
-                                                        "Total height of hte line, Ascent+Descent.")
-           ASCENT                                            (* ; "Ascent of the line above YBASE")
-           DESCENT                                           (* ; 
-                                                           "How far line descends below YBASE")
-           LTRUEDESCENT                                      (* ; 
-                                     "The TRUE DESCENT for this line, unadjusted for line leading.")
-           LTRUEASCENT                                       (* ; 
-                             "The TRUE ASCENT for this line, unadjusted for pre-paragraph leading.")
-           CHAR1                                             (* ; 
-                                                          "CH# of the first character on the line.")
-           CHARLIM                                           (* ; 
-                                                           "CH# of the last character on the line")
-           CHARTOP                                           (* ; 
-                            "CH# of the character which forced the line break (may exceed CHARLIM)")
-           NEXTLINE                                          (* ; "Next line chain pointer")
-           (PREVLINE FULLXPOINTER)                           (* ; "Previous line chain pointer")
-           LMARK                                             (* ; "One of SOLID, GREY, NIL.  Tells what kind of special-line marker should be put in the left margin for this paragraph.  (For hardcopy, can also be an indicator for special processing?)")
-           LTEXTOBJ                                          (* ; "A cached TEXTOBJ that this line took its text from.  Used in hardcopy to disambiguate when chno's should be updated...")
-           CACHE                                             (* ; "A cached THISLINE, for keeping hardcopy info around while we crunch with the line descriptors to make things fit.")
-           LDOBJ                                             (* ; 
-                               "The object which lies behind this line of text, for updating, etc.")
-           LFMTSPEC                                          (* ; 
-                                           "The format spec for this line's paragraph (eventually)")
-           (DIRTY FLAG)                                      (* ; 
-                                          "T if this line has changed since it was last formatted.")
-           (CR\END FLAG)                                     (* ; "T if this line ends with a CR.")
-           (DELETED FLAG)                                    (* ; "T if this line has been completely deleted since it was last formatted or displayed.  (Used by deletion routines to detect garbage lines)")
-           (LHASPROT FLAG)                                   (* ; 
-                                                           "This line contains protected text.")
-           (LHASTABS FLAG)                                   (* ; "If this line has a tab in it, this is the line-relative ch# of the final tab.  This is to let us punt properly with tabs in a line.")
-           (1STLN FLAG)                                      (* ; 
-                                                       "This line is the first line in a paragraph")
-           (LSTLN FLAG)                                      (* ; 
-                                                           "This is the last line in a paragraph")
+           YBOT                                              (* ; 
+                                           "Y value for the bottom of the line (below the descent)")
+           YBASE                                             (* ; 
+                                                   "Yvalue for the base line the characters sit on")
+           LEFTMARGIN                                        (* ; "Left margin, in screen points")
+           RIGHTMARGIN                                       (* ; "Right margin, in screen points")
+           LXLIM                                             (* ; "X value of right edge of rightmost character on the line (may exceed right margin, if char is a space.)")
+           SPACELEFT                                         (* ; 
+                                          "Space left on the line, ignoring trailing blanks & CRs.")
+           LHEIGHT                                           (* ; 
+                                                        "Total height of hte line, Ascent+Descent.")
+           ASCENT                                            (* ; "Ascent of the line above YBASE")
+           DESCENT                                           (* ; 
+                                                           "How far line descends below YBASE")
+           LTRUEDESCENT                                      (* ; 
+                                     "The TRUE DESCENT for this line, unadjusted for line leading.")
+           LTRUEASCENT                                       (* ; 
+                             "The TRUE ASCENT for this line, unadjusted for pre-paragraph leading.")
+           CHAR1                                             (* ; 
+                                                          "CH# of the first character on the line.")
+           CHARLIM                                           (* ; 
+                                                           "CH# of the last character on the line")
+           CHARTOP                                           (* ; 
+                            "CH# of the character which forced the line break (may exceed CHARLIM)")
+           NEXTLINE                                          (* ; "Next line chain pointer")
+           (PREVLINE FULLXPOINTER)                           (* ; "Previous line chain pointer")
+           LMARK                                             (* ; "One of SOLID, GREY, NIL.  Tells what kind of special-line marker should be put in the left margin for this paragraph.  (For hardcopy, can also be an indicator for special processing?)")
+           LTEXTOBJ                                          (* ; "A cached TEXTOBJ that this line took its text from.  Used in hardcopy to disambiguate when chno's should be updated...")
+           CACHE                                             (* ; "A cached THISLINE, for keeping hardcopy info around while we crunch with the line descriptors to make things fit.")
+           LDOBJ                                             (* ; 
+                               "The object which lies behind this line of text, for updating, etc.")
+           LFMTSPEC                                          (* ; 
+                                           "The format spec for this line's paragraph (eventually)")
+           (DIRTY FLAG)                                      (* ; 
+                                          "T if this line has changed since it was last formatted.")
+           (CR\END FLAG)                                     (* ; "T if this line ends with a CR.")
+           (DELETED FLAG)                                    (* ; "T if this line has been completely deleted since it was last formatted or displayed.  (Used by deletion routines to detect garbage lines)")
+           (LHASPROT FLAG)                                   (* ; 
+                                                           "This line contains protected text.")
+           (LHASTABS FLAG)                                   (* ; "If this line has a tab in it, this is the line-relative ch# of the final tab.  This is to let us punt properly with tabs in a line.")
+           (1STLN FLAG)                                      (* ; 
+                                                       "This line is the first line in a paragraph")
+           (LSTLN FLAG)                                      (* ; 
+                                                           "This is the last line in a paragraph")
            )
           CHARLIM _ 1000000 NEXTLINE _ NIL PREVLINE _ NIL DIRTY _ NIL YBOT _ 0 YBASE _ 0 LEFTMARGIN _
           0 DELETED _ NIL)
 
 (DATATYPE LINECACHE (
-                         (* ;; "Image cache for display lines.")
+                         (* ;; "Image cache for display lines.")
 
-                         LCBITMAP                            (* ; 
-                                       "The bitmap that will be used by this instance of the cache")
-                         (LCNEXTCACHE FULLXPOINTER)          (* ; 
-                                                 "The next cache in the chain, for screen updates.")
+                         LCBITMAP                            (* ; 
+                                       "The bitmap that will be used by this instance of the cache")
+                         (LCNEXTCACHE FULLXPOINTER)          (* ; 
+                                                 "The next cache in the chain, for screen updates.")
                          ))
 )
 
@@ -443,149 +449,149 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (DECLARE%: EVAL@COMPILE
 
 (RECORD EDITMARK (
-                      (* ;; "Used for fast access to a given place in the text--a %"Marker%".   It consists of the piece, and the offset within the piece, and the piece number within the piece table.  That's everything that's needed to set a text stream up quickly to start reading from a given place.")
+                      (* ;; "Used for fast access to a given place in the text--a %"Marker%".   It consists of the piece, and the offset within the piece, and the piece number within the piece table.  That's everything that's needed to set a text stream up quickly to start reading from a given place.")
 
                       PC PCOFF . PCNO))
 )
 (DECLARE%: EVAL@COMPILE
 
 (DATATYPE PIECE 
-          (                                                  (* ; 
-               "The piece describes either a string or part of a file.  , or a generalized OBJECT.")
-           PSTR                                              (* ; 
-                                               "The string where this piece's text resides, or NIL")
-           PFILE                                             (* ; 
-                                                "The file which contains this piece's text, or NIL")
-           PFPOS                                             (* ; 
-                                                "The FILEPTR of the start of the piece in the file")
-           PLEN                                              (* ; 
-                                                           "Length of the piece, in characters.")
-           NEXTPIECE                                         (* ; "-> Next piece in this textobj.")
-           (PREVPIECE FULLXPOINTER)                          (* ; 
-                                                           "-> Prior piece in this text object.")
-           PLOOKS                                            (* ; 
-                                              "Formatting info and formatting events in this piece")
-           POBJ                                              (* ; "The OBJECT this piece describes")
-           (PPARALAST FLAG)                                  (* ; 
-                                                           "This piece contains a paragraph break")
-           PPARALOOKS                                        (* ; "Paragraph looks for this piece")
-           (PNEW FLAG)                                       (* ; 
-           "This text is new here;  used by the tentative edit system, and anyone else interested.")
-           (PFATP FLAG)                                      (* ; 
-                             "T if the characters in this piece are FAT -- i.e., are 16 bits each.")
-           (PTREENODE XPOINTER)                              (* ; 
-                                           "Points to the PCTB tree-node that contains this piece.")
+          (                                                  (* ; 
+               "The piece describes either a string or part of a file.  , or a generalized OBJECT.")
+           PSTR                                              (* ; 
+                                               "The string where this piece's text resides, or NIL")
+           PFILE                                             (* ; 
+                                                "The file which contains this piece's text, or NIL")
+           PFPOS                                             (* ; 
+                                                "The FILEPTR of the start of the piece in the file")
+           PLEN                                              (* ; 
+                                                           "Length of the piece, in characters.")
+           NEXTPIECE                                         (* ; "-> Next piece in this textobj.")
+           (PREVPIECE FULLXPOINTER)                          (* ; 
+                                                           "-> Prior piece in this text object.")
+           PLOOKS                                            (* ; 
+                                              "Formatting info and formatting events in this piece")
+           POBJ                                              (* ; "The OBJECT this piece describes")
+           (PPARALAST FLAG)                                  (* ; 
+                                                           "This piece contains a paragraph break")
+           PPARALOOKS                                        (* ; "Paragraph looks for this piece")
+           (PNEW FLAG)                                       (* ; 
+           "This text is new here;  used by the tentative edit system, and anyone else interested.")
+           (PFATP FLAG)                                      (* ; 
+                             "T if the characters in this piece are FAT -- i.e., are 16 bits each.")
+           (PTREENODE XPOINTER)                              (* ; 
+                                           "Points to the PCTB tree-node that contains this piece.")
            )
           PSTR _ NIL PFILE _ NIL PFPOS _ 0 PLEN _ 0 PPARALOOKS _ TEDIT.DEFAULT.FMTSPEC PTREENODE _ 
           NIL)
 
 (DATATYPE TEXTOBJ 
           (
-           (* ;; 
- "This is where TEdit stores its state information, and internal data about the text being edited.")
+           (* ;; 
+ "This is where TEdit stores its state information, and internal data about the text being edited.")
 
-           PCTB                                              (* ; "The piece table")
-           TEXTLEN                                           (* ; "# of chars in the text")
-           \INSERTPC                                         (* ; "Piece to hold type-in")
-           \INSERTPCNO                                       (* ; "Piece # of the input piece")
-           \INSERTNEXTCH                                     (* ; 
-                                                 "CH# of next char which is typed into that piece.")
-           \INSERTLEFT                                       (* ; "Space left in the type-in piece")
-           \INSERTLEN                                        (* ; 
-                                                           "# of characters already in the piece.")
-           \INSERTSTRING                                     (* ; 
-                                                           "The string which the piece describes.")
-           \INSERTFIRSTCH                                    (* ; "CH# of first char in the piece.")
-           (\INSERTPCVALID FLAG)                             (* ; "T if it's OK to use the cached piece.  Set to NIL by people who require that the next insertion/deletion use a different piece.")
-           \WINDOW                                           (* ; 
-                                                    "The window<s> where this textobj is displayed")
-           MOUSEREGION                                       (* ; 
-                                                           "Section of the window the mouse is in.")
-           LINES                                             (* ; 
-                                        "-> to top of chain of line descriptors for displayed text")
-           DS                                                (* ; 
-                                                   "Display stream where this textobj is displayed")
-           SEL                                               (* ; 
-                                                           "The current selection within the text")
-           SCRATCHSEL                                        (* ; 
-                                                           "Scratch space for the selection code")
-           MOVESEL                                           (* ; 
-                                                           "Source for the next MOVE of text")
-           SHIFTEDSEL                                        (* ; "Source for the next COPY")
-           DELETESEL                                         (* ; "Text to be deleted imminently")
-           WRIGHT                                            (* ; 
-                                  "Right edge of the window (or subregion) where this is displayed")
-           WTOP                                              (* ; "Top of the window/region")
-           WBOTTOM                                           (* ; "Bottom of the window/region")
-           WLEFT                                             (* ; "Left edge of the window/region")
-           TXTFILE                                           (* ; 
-                                                           "The original text file we're editing")
-           (\XDIRTY FLAG)                                    (* ; "T => changed since last saved.")
-           (STREAMHINT FULLXPOINTER)                         (* ; 
-                                         "-> the TEXTOFD stream which gives access to this textobj")
-           EDITFINISHEDFLG                                   (* ; 
-                                                      "T => The guy has asked the editor to go way")
-           CARET                                             (* ; 
-                                              "Describes the flashing caret for the editing window")
-           CARETLOOKS                                        (* ; 
-                                                           "Font to be used for inserted text.")
-           WINDOWTITLE                                       (* ; 
-                                                "Original title for this window, of there was one.")
-           THISLINE                                          (* ; 
-                                             "Cache of line-related info, to speed up selection &c")
-           (MENUFLG FLAG)                                    (* ; 
-                                                          "T if this TEXTOBJ is a tedit-style menu")
-           FMTSPEC                                           (* ; 
-                                    "Default Formatting Spec to be used when formatting paragraphs")
-           (FORMATTEDP FLAG)                                 (* ; 
-"Flag for paragraph formatting.  T if this document is to contain paragraph formatting information.")
-           (TXTREADONLY FLAG)                                (* ; 
-                                                      "This is only available for shift selection.")
-           (TXTEDITING FLAG)                                 (* ; "T => This document is in a window and there is an edit process behind it.  For example, it only makes sense to have a caret show up if you are editing.")
-           (TXTNONSCHARS FLAG)                               (* ; "T => If TEdit rns into a 255, it won't attempt to convert to NS characters.  Used for REALLY plain-text manipulation.")
-           TXTTERMSA                                         (* ; 
-                                     "Special instructions for displaying characters on the screen")
-           EDITOPACTIVE                                      (* ; 
-                "T if there is an editing operation in progress.  Used to interlock the TEdit menu")
-           DEFAULTCHARLOOKS                                  (* ; "The default character looks -- if any -- to be applied to characters coming into the file from outside.")
-           TXTRTBL                                           (* ; 
-                                "The READTABLE to be used by the command loop for command dispatch")
-           TXTWTBL                                           (* ; 
-                                                "The READTABLE to be used to decide on word breaks")
-           EDITPROPS                                         (* ; 
-                                                "The PROPS that were passed into this edit session")
-           (BLUEPENDINGDELETE FLAG)                          (* ; "T if the next insertion in this document is to be preceded by a deletion of the then-current selection")
-           TXTHISTORY                                        (* ; 
-                                                          "The history list for this edit session.")
-           (SELWINDOW FULLXPOINTER)                          (* ; "The window in which the last 'real' selection got made for this edit;  used to control caret placement")
-           PROMPTWINDOW                                      (* ; 
- "A window to be used for unscheduled interactions;  normally a small window above the edit window")
-           DISPLAYCACHE                                      (* ; 
-                              "The bitmap to be used when building the image of a line for display")
-           DISPLAYCACHEDS                                    (* ; 
-                                              "The DISPLAYSTREAM that is used to build line images")
-           DISPLAYHCPYDS                                     (* ; "The DISPLAYSTREAM used to build line images of lines that are displayed in 'hardcopy' simulation mode")
-           TXTPAGEFRAMES                                     (* ; 
-                            "A tree of page frames, specifying how the document is to be laid out.")
-           TXTCHARLOOKSLIST                                  (* ; 
-                           "List of all the CHARLOOKSs in the document, so they can be kept unique")
-           TXTPARALOOKSLIST                                  (* ; 
-                             "List of all the FMTSPECs in the document, so they can be kept unique")
-           (TXTNEEDSUPDATE FLAG)                             (* ; 
-                                                         "T => Screen invalid, need to run updater")
-           (TXTDON'TUPDATE FLAG)                             (* ; "T if we're holding off on screen updates until later.  Used, e.g., by the menu-SHOW code so that you don't get piecemeal updates, but only one at the end of the SHOW.")
-           TXTRAWINCLUDESTREAM                               (* ; 
-                     "NODIRCORE stream used to cache RAW includes (and maybe later, all includes?)")
-           DOCPROPS                                          (* ; 
-                             "Document properties that are stored with the document (not used yet)")
-           TXTSTYLESHEET                                     (* ; 
-                    "Style sheet local to this document.  Not currently saved as part of the file.")
+           PCTB                                              (* ; "The piece table")
+           TEXTLEN                                           (* ; "# of chars in the text")
+           \INSERTPC                                         (* ; "Piece to hold type-in")
+           \INSERTPCNO                                       (* ; "Piece # of the input piece")
+           \INSERTNEXTCH                                     (* ; 
+                                                 "CH# of next char which is typed into that piece.")
+           \INSERTLEFT                                       (* ; "Space left in the type-in piece")
+           \INSERTLEN                                        (* ; 
+                                                           "# of characters already in the piece.")
+           \INSERTSTRING                                     (* ; 
+                                                           "The string which the piece describes.")
+           \INSERTFIRSTCH                                    (* ; "CH# of first char in the piece.")
+           (\INSERTPCVALID FLAG)                             (* ; "T if it's OK to use the cached piece.  Set to NIL by people who require that the next insertion/deletion use a different piece.")
+           \WINDOW                                           (* ; 
+                                                    "The window<s> where this textobj is displayed")
+           MOUSEREGION                                       (* ; 
+                                                           "Section of the window the mouse is in.")
+           LINES                                             (* ; 
+                                        "-> to top of chain of line descriptors for displayed text")
+           DS                                                (* ; 
+                                                   "Display stream where this textobj is displayed")
+           SEL                                               (* ; 
+                                                           "The current selection within the text")
+           SCRATCHSEL                                        (* ; 
+                                                           "Scratch space for the selection code")
+           MOVESEL                                           (* ; 
+                                                           "Source for the next MOVE of text")
+           SHIFTEDSEL                                        (* ; "Source for the next COPY")
+           DELETESEL                                         (* ; "Text to be deleted imminently")
+           WRIGHT                                            (* ; 
+                                  "Right edge of the window (or subregion) where this is displayed")
+           WTOP                                              (* ; "Top of the window/region")
+           WBOTTOM                                           (* ; "Bottom of the window/region")
+           WLEFT                                             (* ; "Left edge of the window/region")
+           TXTFILE                                           (* ; 
+                                                           "The original text file we're editing")
+           (\XDIRTY FLAG)                                    (* ; "T => changed since last saved.")
+           (STREAMHINT FULLXPOINTER)                         (* ; 
+                                         "-> the TEXTOFD stream which gives access to this textobj")
+           EDITFINISHEDFLG                                   (* ; 
+                                                      "T => The guy has asked the editor to go way")
+           CARET                                             (* ; 
+                                              "Describes the flashing caret for the editing window")
+           CARETLOOKS                                        (* ; 
+                                                           "Font to be used for inserted text.")
+           WINDOWTITLE                                       (* ; 
+                                                "Original title for this window, of there was one.")
+           THISLINE                                          (* ; 
+                                             "Cache of line-related info, to speed up selection &c")
+           (MENUFLG FLAG)                                    (* ; 
+                                                          "T if this TEXTOBJ is a tedit-style menu")
+           FMTSPEC                                           (* ; 
+                                    "Default Formatting Spec to be used when formatting paragraphs")
+           (FORMATTEDP FLAG)                                 (* ; 
+"Flag for paragraph formatting.  T if this document is to contain paragraph formatting information.")
+           (TXTREADONLY FLAG)                                (* ; 
+                                                      "This is only available for shift selection.")
+           (TXTEDITING FLAG)                                 (* ; "T => This document is in a window and there is an edit process behind it.  For example, it only makes sense to have a caret show up if you are editing.")
+           (TXTNONSCHARS FLAG)                               (* ; "T => If TEdit rns into a 255, it won't attempt to convert to NS characters.  Used for REALLY plain-text manipulation.")
+           TXTTERMSA                                         (* ; 
+                                     "Special instructions for displaying characters on the screen")
+           EDITOPACTIVE                                      (* ; 
+                "T if there is an editing operation in progress.  Used to interlock the TEdit menu")
+           DEFAULTCHARLOOKS                                  (* ; "The default character looks -- if any -- to be applied to characters coming into the file from outside.")
+           TXTRTBL                                           (* ; 
+                                "The READTABLE to be used by the command loop for command dispatch")
+           TXTWTBL                                           (* ; 
+                                                "The READTABLE to be used to decide on word breaks")
+           EDITPROPS                                         (* ; 
+                                                "The PROPS that were passed into this edit session")
+           (BLUEPENDINGDELETE FLAG)                          (* ; "T if the next insertion in this document is to be preceded by a deletion of the then-current selection")
+           TXTHISTORY                                        (* ; 
+                                                          "The history list for this edit session.")
+           (SELWINDOW FULLXPOINTER)                          (* ; "The window in which the last 'real' selection got made for this edit;  used to control caret placement")
+           PROMPTWINDOW                                      (* ; 
+ "A window to be used for unscheduled interactions;  normally a small window above the edit window")
+           DISPLAYCACHE                                      (* ; 
+                              "The bitmap to be used when building the image of a line for display")
+           DISPLAYCACHEDS                                    (* ; 
+                                              "The DISPLAYSTREAM that is used to build line images")
+           DISPLAYHCPYDS                                     (* ; "The DISPLAYSTREAM used to build line images of lines that are displayed in 'hardcopy' simulation mode")
+           TXTPAGEFRAMES                                     (* ; 
+                            "A tree of page frames, specifying how the document is to be laid out.")
+           TXTCHARLOOKSLIST                                  (* ; 
+                           "List of all the CHARLOOKSs in the document, so they can be kept unique")
+           TXTPARALOOKSLIST                                  (* ; 
+                             "List of all the FMTSPECs in the document, so they can be kept unique")
+           (TXTNEEDSUPDATE FLAG)                             (* ; 
+                                                         "T => Screen invalid, need to run updater")
+           (TXTDON'TUPDATE FLAG)                             (* ; "T if we're holding off on screen updates until later.  Used, e.g., by the menu-SHOW code so that you don't get piecemeal updates, but only one at the end of the SHOW.")
+           TXTRAWINCLUDESTREAM                               (* ; 
+                     "NODIRCORE stream used to cache RAW includes (and maybe later, all includes?)")
+           DOCPROPS                                          (* ; 
+                             "Document properties that are stored with the document (not used yet)")
+           TXTSTYLESHEET                                     (* ; 
+                    "Style sheet local to this document.  Not currently saved as part of the file.")
            )
           [ACCESSFNS TEXTOBJ ((\DIRTY (ffetch (TEXTOBJ \XDIRTY) of DATUM)
                                      (PROGN (IF (NEQ (FETCH (TEXTOBJ \XDIRTY) OF DATUM)
                                                          NEWVALUE)
-                                                THEN     (* ; 
-                                                           "update the title to reflect the change")
+                                                THEN     (* ; 
+                                                           "update the title to reflect the change")
                                                       (\TEDIT.WINDOW.TITLE DATUM
                                                              (\TEDIT.ORIGINAL.WINDOW.TITLE
                                                               (ffetch (TEXTOBJ TXTFILE)
@@ -608,84 +614,84 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
           MENUFLG _ NIL FMTSPEC _ TEDIT.DEFAULT.FMTSPEC FORMATTEDP _ NIL)
 
 (DATATYPE TEXTIMAGEDATA (
-                             (* ;; "Fills the IMAGEDATA field of text streams.")
+                             (* ;; "Fills the IMAGEDATA field of text streams.")
 
-                             TICURPARALOOKS                  (* ; "The current paragraph looks")
-                             TICURIMAGESTREAM                (* ; 
-                                                  "The image stream for this hardcopy transduction")
-                             TILOOKSUPDATEFN                 (* ; 
-                                             "The function to call to update looks for this stream")
-                             TIPCOFFSET                      (* ; 
-                                    "The offset into the current piece, as of the last page cross.")
+                             TICURPARALOOKS                  (* ; "The current paragraph looks")
+                             TICURIMAGESTREAM                (* ; 
+                                                  "The image stream for this hardcopy transduction")
+                             TILOOKSUPDATEFN                 (* ; 
+                                             "The function to call to update looks for this stream")
+                             TIPCOFFSET                      (* ; 
+                                    "The offset into the current piece, as of the last page cross.")
                              ))
 
 (ACCESSFNS TEXTSTREAM (
-                           (* ;; 
-        "Overlay for the STREAM record to allow mnemonic access to stream fields for Text streams.")
+                           (* ;; 
+        "Overlay for the STREAM record to allow mnemonic access to stream fields for Text streams.")
 
                            (REALFILE (fetch F1 of DATUM)
                                   (REPLACE F1 OF DATUM WITH NEWVALUE))
-                                                             (* ; 
-                                               "The real, underlying file behind the current piece")
+                                                             (* ; 
+                                               "The real, underlying file behind the current piece")
                            (CHARSLEFT (fetch F2 of DATUM)
                                   (REPLACE F2 OF DATUM WITH NEWVALUE))
 
-                           (* ;; "The # of characters that will be left in the current piece the next time its file crosses a page boundary")
+                           (* ;; "The # of characters that will be left in the current piece the next time its file crosses a page boundary")
 
                            (TEXTOBJ (fetch F3 of DATUM)
                                   (REPLACE F3 OF DATUM WITH NEWVALUE))
-                                                             (* ; 
-                                                           "The TEXTOBJ that is editing this text")
+                                                             (* ; 
+                                                           "The TEXTOBJ that is editing this text")
                            (PIECE (fetch F5 of DATUM)
                                   (REPLACE F5 OF DATUM WITH NEWVALUE))
-                                                             (* ; 
-                                 "The PIECE we're currently fetching chars from/putting chars into")
+                                                             (* ; 
+                                 "The PIECE we're currently fetching chars from/putting chars into")
                            (PCNO (fetch FW8 of DATUM)
                                  (REPLACE FW8 OF DATUM WITH NEWVALUE))
-                                                             (* ; 
-                                                    "The position of that piece in the piece table")
+                                                             (* ; 
+                                                    "The position of that piece in the piece table")
                            (PCSTARTPG (fetch FW6 of DATUM)
                                   (REPLACE FW6 OF DATUM WITH NEWVALUE))
-                                                             (* ; 
-                                              "The underlying file page# that this piece starts on")
+                                                             (* ; 
+                                              "The underlying file page# that this piece starts on")
                            (PCSTARTCH (fetch FW7 of DATUM)
                                   (REPLACE FW7 OF DATUM WITH NEWVALUE))
-                                                             (* ; 
-        "The char within page of the underlying file that this piece starts on -- for backbin & co")
+                                                             (* ; 
+        "The char within page of the underlying file that this piece starts on -- for backbin & co")
                            (PCOFFSET (fetch TIPCOFFSET of (fetch IMAGEDATA of DATUM))
                                   (REPLACE TIPCOFFSET OF (fetch IMAGEDATA of DATUM)
-                                     with NEWVALUE))     (* ; 
-                                    "The offset into the current piece, as of the last page cross.")
+                                     with NEWVALUE))     (* ; 
+                                    "The offset into the current piece, as of the last page cross.")
                            (CURRENTLOOKS (fetch F10 of DATUM)
                                   (replace F10 of DATUM with NEWVALUE))
-                                                             (* ; 
-           "The CHARLOOKS that are currently applicable to characters being taken from the stream.")
+                                                             (* ; 
+           "The CHARLOOKS that are currently applicable to characters being taken from the stream.")
                            (CURRENTPARALOOKS (fetch TICURPARALOOKS of (fetch IMAGEDATA
                                                                                  of DATUM))
                                   (REPLACE TICURPARALOOKS OF (fetch IMAGEDATA
                                                                         of DATUM) with 
                                                                                             NEWVALUE)
-                                  )                          (* ; 
-              "The FMTSPEC that is currently applicable to characters being taken from the stream.")
+                                  )                          (* ; 
+              "The FMTSPEC that is currently applicable to characters being taken from the stream.")
                            (CURRENTIMAGESTREAM (fetch TICURIMAGESTREAM
                                                   of (fetch IMAGEDATA of DATUM))
                                   (REPLACE TICURIMAGESTREAM OF (fetch IMAGEDATA
                                                                           of DATUM) with
                                                                                         NEWVALUE)
-                                                             (* ; 
-                   "The image stream that this text is being put onto;  used for scaling decisions")
+                                                             (* ; 
+                   "The image stream that this text is being put onto;  used for scaling decisions")
                                   )
                            (LOOKSUPDATEFN (fetch TILOOKSUPDATEFN of (fetch IMAGEDATA
                                                                                of DATUM))
                                   (REPLACE TILOOKSUPDATEFN OF (fetch IMAGEDATA
                                                                          of DATUM) with
                                                                                        NEWVALUE))
-                                                             (* ; 
-                                          "Function to be called each time character looks change.")
+                                                             (* ; 
+                                          "Function to be called each time character looks change.")
                            (FATSTREAMP (fetch F4 of DATUM)
                                   (REPLACE F4 OF DATUM WITH NEWVALUE))
-                                                             (* ; 
-                                                     "T if the current piece is 16 bit characters.")
+                                                             (* ; 
+                                                     "T if the current piece is 16 bit characters.")
                            )
                           (CREATE (create STREAM using \TEXTOFD IMAGEDATA _ (create
                                                                                          
@@ -786,15 +792,15 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (DEFOPTIMIZER TEXTPROP (TEXTOBJ PROP &OPTIONAL (VAL NIL WRITING))
 
-                           (* ;; "compiles calls to TEXTPROP")
+                           (* ;; "compiles calls to TEXTPROP")
 
                            [COND
-                              ((NOT (LISTP PROP))            (* ; "property is not quoted.")
+                              ((NOT (LISTP PROP))            (* ; "property is not quoted.")
                                'IGNOREMACRO)
                               ((NOT (EQ (CAR PROP)
-                                        'QUOTE))             (* ; "property is not quoted.")
+                                        'QUOTE))             (* ; "property is not quoted.")
                                'IGNOREMACRO)
-                              [(NOT WRITING)                 (* ; "fetching a TEXTPROP property.")
+                              [(NOT WRITING)                 (* ; "fetching a TEXTPROP property.")
                                (SELECTQ (CADR PROP)
                                    ((READONLY READ-ONLY) 
                                         `(fetch (TEXTOBJ TXTREADONLY) of (TEXTOBJ
@@ -807,7 +813,7 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
                                    `(LISTGET (fetch (TEXTOBJ EDITPROPS)
                                                 of (TEXTOBJ ,TEXTOBJ))
                                            ,PROP]
-                              (T                             (* ; "storing a window property")
+                              (T                             (* ; "storing a window property")
                                  (SELECTQ (CADR PROP)
                                      ((READONLY READ-ONLY) 
                                           `(REPLACE (TEXTOBJ TXTREADONLY)
@@ -854,26 +860,26 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (PUTPROPS \EDITELT DMACRO (OPENLAMBDA (ARR NO)
 
-         (* This is equivalent to ELT, but bypasses the checking, since we "know" that 
-       ARR is an array. Hence, much faster.)
+         (* This is equivalent to ELT, but bypasses the checking, since we "know" that 
+       ARR is an array. Hence, much faster.)
 
                                     (GETBASEPTR (\ADDBASE2 (fetch (ARRAYP BASE) of ARR)
                                                        NO)
                                            0)))
 
-(PUTPROPS \GETCH MACRO ((TEXTOBJ)                (* jds "23-FEB-82 08:56")
-                                                             (* Get the next available character 
-                                                           from the text being edited.)
+(PUTPROPS \GETCH MACRO ((TEXTOBJ)                (* jds "23-FEB-82 08:56")
+                                                             (* Get the next available character 
+                                                           from the text being edited.)
                                 (\BIN (fetch STREAMHINT of TEXTOBJ))))
 
-(PUTPROPS \GETCHB MACRO ((TEXTOBJ)                   (* Get the next prior character in 
-                                                           the text being edited.)
+(PUTPROPS \GETCHB MACRO ((TEXTOBJ)                   (* Get the next prior character in 
+                                                           the text being edited.)
                                  (\BACKBIN (fetch STREAMHINT of TEXTOBJ))))
 
 (PUTPROPS \EDITSETA DMACRO (OPENLAMBDA (ARR N VAL)
 
-         (* Equivalent to SETA (for pointer-type arrays)%, but bypasses the bounds and 
-       type checking. Hence MUCH faster.)
+         (* Equivalent to SETA (for pointer-type arrays)%, but bypasses the bounds and 
+       type checking. Hence MUCH faster.)
 
                                      (\RPLPTR (\ADDBASE2 (fetch (ARRAYP BASE) of ARR)
                                                      N)
@@ -904,54 +910,54 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (DECLARE%: EVAL@COMPILE
 
 (RECORD PAGEFORMATTINGSTATE (
-                                 (* ;; "Contains the state for a TEdit page-formatting job.")
+                                 (* ;; "Contains the state for a TEdit page-formatting job.")
 
-                                 PAGE#                       (* ; 
-                                                         "The current page number.  Counted from 1")
+                                 PAGE#                       (* ; 
+                                                         "The current page number.  Counted from 1")
                                  FIRSTPAGE
 
-                                 (* ;; "T if the current page is the 'first page' .  Is set initially, and can be set again by the user at will.  Gets reset after each page image is printed.")
+                                 (* ;; "T if the current page is the 'first page' .  Is set initially, and can be set again by the user at will.  Gets reset after each page image is printed.")
 
-                                 MINPAGE#                    (* ; 
-                                               "The page # of the first page to be printed, or NIL")
-                                 MAXPAGE#                    (* ; 
-                                                "The page # of the last page to be printed, or NIL")
-                                 STATE                       (* ; "One of FORMATTING or SEARCHING.")
-                                 REQUIREDREGIONTYPE          (* ; "If STATE is SEARCHING, the kind of box we're looking for.  If STATE is :SEARCHING-FOR-EQUIVALENT-PAGE, this is the page count for the matching page.")
-                                 MAINSTREAM                  (* ; 
-                                                           "The principal textobj/stream source")
-                                 CHNO                        (* ; "Our position in that stream")
-                                 PRESSREGION                 (* ; "The press code's REGION info.")
-                                 PAGEHEADINGS                (* ; 
-                                "The list of current values to be printed, indexed by heading type")
-                                 PAGE#GENERATOR              (* ; "List of page numbers;  later, maybe, a function to generate page numbers.  Used to fill in PAGE#TEXT, below")
-                                 PAGE#TEXT                   (* ; "If special page numbers are in use, this is the place to take them from.  PAGE# is still used for recto/verso decisions &c")
-                                 PAGEISRECTO                 (* ; 
-                                             "T if this is a recto page, NIL if it's a VERSO page.")
-                                 PAGEFOOTNOTELINES           (* ; 
-                       "A list of extant footnote lines that should appear at the next opportunity")
-                                 PAGEFLOATINGTOPLINES        (* ; 
-                         "A list of lines that should float to the top of the next available place")
-                                 PAGECOUNT                   (* ; 
-                                                      "The number of pages we've formatted so far.")
-                                 PAGELINECACHE               (* ; "A cache for pre-created LINEDESCRIPTOR/THISLINE sets, to avoid the overhead of re-allocating them all the time")
-                                 NEWPAGELAYOUT               (* ; "If we switch page layouts in mid-document, this is where the new layout gets cached until we get started again.")
+                                 MINPAGE#                    (* ; 
+                                               "The page # of the first page to be printed, or NIL")
+                                 MAXPAGE#                    (* ; 
+                                                "The page # of the last page to be printed, or NIL")
+                                 STATE                       (* ; "One of FORMATTING or SEARCHING.")
+                                 REQUIREDREGIONTYPE          (* ; "If STATE is SEARCHING, the kind of box we're looking for.  If STATE is :SEARCHING-FOR-EQUIVALENT-PAGE, this is the page count for the matching page.")
+                                 MAINSTREAM                  (* ; 
+                                                           "The principal textobj/stream source")
+                                 CHNO                        (* ; "Our position in that stream")
+                                 PRESSREGION                 (* ; "The press code's REGION info.")
+                                 PAGEHEADINGS                (* ; 
+                                "The list of current values to be printed, indexed by heading type")
+                                 PAGE#GENERATOR              (* ; "List of page numbers;  later, maybe, a function to generate page numbers.  Used to fill in PAGE#TEXT, below")
+                                 PAGE#TEXT                   (* ; "If special page numbers are in use, this is the place to take them from.  PAGE# is still used for recto/verso decisions &c")
+                                 PAGEISRECTO                 (* ; 
+                                             "T if this is a recto page, NIL if it's a VERSO page.")
+                                 PAGEFOOTNOTELINES           (* ; 
+                       "A list of extant footnote lines that should appear at the next opportunity")
+                                 PAGEFLOATINGTOPLINES        (* ; 
+                         "A list of lines that should float to the top of the next available place")
+                                 PAGECOUNT                   (* ; 
+                                                      "The number of pages we've formatted so far.")
+                                 PAGELINECACHE               (* ; "A cache for pre-created LINEDESCRIPTOR/THISLINE sets, to avoid the overhead of re-allocating them all the time")
+                                 NEWPAGELAYOUT               (* ; "If we switch page layouts in mid-document, this is where the new layout gets cached until we get started again.")
                                  )
                                 PAGECOUNT _ 0)
 
 (DATATYPE PAGEREGION (
-                          (* ;; 
-          "Describe a part of a page for page formatting.  Can be made into compound descriptions.")
+                          (* ;; 
+          "Describe a part of a page for page formatting.  Can be made into compound descriptions.")
 
-                          REGIONFILLMETHOD                   (* ; 
-                                  "What kind of a region this is -- TEXT, FOLIO, PAGEHEADING, etc.")
-                          REGIONSPEC                         (* ; 
-                                                           "The page-relative region this occupies")
-                          REGIONLOCALINFO                    (* ; "A PLIST for local information")
-                          (REGIONPARENT FULLXPOINTER)        (* ; 
-                                                      "The parent node for this box, for sub-boxes")
-                          REGIONSUBBOXES                     (* ; "The sub-regions of this region")
-                          REGIONTYPE                         (* ; "A user-settable region type")
+                          REGIONFILLMETHOD                   (* ; 
+                                  "What kind of a region this is -- TEXT, FOLIO, PAGEHEADING, etc.")
+                          REGIONSPEC                         (* ; 
+                                                           "The page-relative region this occupies")
+                          REGIONLOCALINFO                    (* ; "A PLIST for local information")
+                          (REGIONPARENT FULLXPOINTER)        (* ; 
+                                                      "The parent node for this box, for sub-boxes")
+                          REGIONSUBBOXES                     (* ; "The sub-regions of this region")
+                          REGIONTYPE                         (* ; "A user-settable region type")
                           ))
 )
 
@@ -967,14 +973,14 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (DECLARE%: EVAL@COMPILE
 
 (RECORD TEDITPAPERSIZE (
-                            (* ;; 
-                      "Describe the size of a sheet of paper (in points), given a paper size-name.")
+                            (* ;; 
+                      "Describe the size of a sheet of paper (in points), given a paper size-name.")
 
-                            TPSNAME                          (* ; "The name, as a litatom")
-                            TPSWIDTH                         (* ; "Paper width, in points")
-                            TPSHEIGHT                        (* ; "Paper Height, in points")
-                            TPSLANDSCAPE?                    (* ; 
-                                       "T if we have to rotate things to print them on this paper.")
+                            TPSNAME                          (* ; "The name, as a litatom")
+                            TPSWIDTH                         (* ; "Paper width, in points")
+                            TPSHEIGHT                        (* ; "Paper Height, in points")
+                            TPSLANDSCAPE?                    (* ; 
+                                       "T if we have to rotate things to print them on this paper.")
                             ))
 )
 
@@ -1041,125 +1047,125 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (DECLARE%: EVAL@COMPILE
 
 (DATATYPE CHARLOOKS (
-                         (* ;; 
-                       "Describes the appearance (%"Looks%") of characters in a TEdit document.")
+                         (* ;; 
+                       "Describes the appearance (%"Looks%") of characters in a TEdit document.")
 
-                         CLFONT                              (* ; 
-                                                         "The font descriptor for these characters")
+                         CLFONT                              (* ; 
+                                                         "The font descriptor for these characters")
                          CLNAME
 
-                         (* ;; "Name of the font (e.g., HELVETICA) THIS FIELD IS A HINT, OR FOR USE IN CHARLOOKS-BUILDING CODE.  USE FONTPROP TO GET THE RIGHT VALUE FROM CLFONT.")
+                         (* ;; "Name of the font (e.g., HELVETICA) THIS FIELD IS A HINT, OR FOR USE IN CHARLOOKS-BUILDING CODE.  USE FONTPROP TO GET THE RIGHT VALUE FROM CLFONT.")
 
-                         CLSIZE                              (* ; "Font size, in points")
-                         (CLITAL FLAG)                       (* ; 
-                                                         "T if the characters are italic, else NIL")
-                         (CLBOLD FLAG)                       (* ; 
-                                                           "T if the characters are bold, else NIL")
-                         (CLULINE FLAG)                      (* ; 
-                                              "T if the characters are to be underscored, else NIL")
-                         (CLOLINE FLAG)                      (* ; 
-                                               "T if the characters are to be overscored, else NIL")
-                         (CLSTRIKE FLAG)                     (* ; 
-                                             "T if the characters are to be struck thru, else nil.")
-                         CLOFFSET                            (* ; 
-                       "A superscripting offset in points (?) else NIL (SUBSCRIPTING IF NEGATIVE.)")
-                         (CLSMALLCAP FLAG)                   (* ; "T if small caps, else NIL")
-                         (CLINVERTED FLAG)                   (* ; 
-                                               "T if the characters are to be shown white-on-black")
-                         (CLPROTECTED FLAG)                  (* ; 
-                                                           "T if chars can't be selected, else NIL")
-                         (CLINVISIBLE FLAG)                  (* ; 
-                                                   "T if TEDIT is to ignore these chars;  else NIL")
+                         CLSIZE                              (* ; "Font size, in points")
+                         (CLITAL FLAG)                       (* ; 
+                                                         "T if the characters are italic, else NIL")
+                         (CLBOLD FLAG)                       (* ; 
+                                                           "T if the characters are bold, else NIL")
+                         (CLULINE FLAG)                      (* ; 
+                                              "T if the characters are to be underscored, else NIL")
+                         (CLOLINE FLAG)                      (* ; 
+                                               "T if the characters are to be overscored, else NIL")
+                         (CLSTRIKE FLAG)                     (* ; 
+                                             "T if the characters are to be struck thru, else nil.")
+                         CLOFFSET                            (* ; 
+                       "A superscripting offset in points (?) else NIL (SUBSCRIPTING IF NEGATIVE.)")
+                         (CLSMALLCAP FLAG)                   (* ; "T if small caps, else NIL")
+                         (CLINVERTED FLAG)                   (* ; 
+                                               "T if the characters are to be shown white-on-black")
+                         (CLPROTECTED FLAG)                  (* ; 
+                                                           "T if chars can't be selected, else NIL")
+                         (CLINVISIBLE FLAG)                  (* ; 
+                                                   "T if TEDIT is to ignore these chars;  else NIL")
                          (CLSELHERE FLAG)
 
-                         (* ;; "T if TEDIT can put selection after this char (for menu blanks) else NIL;  anything typed after this char will NOT BE PROTECTED.")
+                         (* ;; "T if TEDIT can put selection after this char (for menu blanks) else NIL;  anything typed after this char will NOT BE PROTECTED.")
 
                          (CLCANCOPY FLAG)
 
-                         (* ;; "T if this text can be selected for copying, even tho protected (it will become unprotected after the copy;  for Dribble/TTY interface)")
+                         (* ;; "T if this text can be selected for copying, even tho protected (it will become unprotected after the copy;  for Dribble/TTY interface)")
 
-                         CLSTYLE                             (* ; 
-                "The style to be used in marking these characters;  overridden by the other fields")
-                         CLUSERINFO                          (* ; 
-                                                "Any information that an outsider wants to include")
-                         CLLEADER                            (* ; 
-                                                    "For creating dotted and other kinds of leader")
+                         CLSTYLE                             (* ; 
+                "The style to be used in marking these characters;  overridden by the other fields")
+                         CLUSERINFO                          (* ; 
+                                                "Any information that an outsider wants to include")
+                         CLLEADER                            (* ; 
+                                                    "For creating dotted and other kinds of leader")
                          CLRULES
 
-                         (* ;; "For arbitrarily-places horizontal rules.  List of pairs, of (widthinpts  . offsetfrombaselineinpts).  Should be taken account of in ascent/descent calcs.")
+                         (* ;; "For arbitrarily-places horizontal rules.  List of pairs, of (widthinpts  . offsetfrombaselineinpts).  Should be taken account of in ascent/descent calcs.")
 
                          (CLMARK FLAG)
 
-                         (* ;; "Used for a mark-&-sweep of looks at PUT time -- T means this set of looks really IS in use in the document")
+                         (* ;; "Used for a mark-&-sweep of looks at PUT time -- T means this set of looks really IS in use in the document")
 
                          )
                         CLOFFSET _ 0)
 
 (DATATYPE FMTSPEC (
-                       (* ;; 
-                     "Describe the paragraph formatting for a paragraph in a TEdit document.")
+                       (* ;; 
+                     "Describe the paragraph formatting for a paragraph in a TEdit document.")
 
-                       1STLEFTMAR                            (* ; 
-                                                   "Left margin of the first line of the paragraph")
-                       LEFTMAR                               (* ; 
-                                            "Left margin of the rest of the lines in the paragraph")
-                       RIGHTMAR                              (* ; "Right margin for the paragraph")
-                       LEADBEFORE                            (* ; 
-                                              "Leading above the paragraph's first line, in points")
-                       LEADAFTER                             (* ; 
-                          "Leading below the paragraph's bottom line, in points.  NOT IMPLEMENTED.")
-                       LINELEAD                              (* ; 
-    "Leading between lines, in points.  Actually, this space is added BELOW each line in the para.")
-                       FMTBASETOBASE                         (* ; 
-"The baseline-to-baseline spacing between lines in this paragraph.  THIS OVERRIDES THE LINE LEADING")
-                       TABSPEC                               (* ; 
-                       "The list of tabs for this paragraph, including CAR for a default tab width")
-                       QUAD                                  (* ; 
-                               "How the para is formatted: one of LEFT, RIGHT, CENTERED, JUSTIFIED")
-                       FMTSTYLE                              (* ; 
-                                              "The STYLE that controls this paragraph's appearance")
-                       FMTCHARSTYLES                         (* ; "The characterstyles that control the appearance of characters in this para (maybe?  may be part of the fmtstyle.)")
-                       FMTUSERINFO                           (* ; "Space for a PLIST of user info")
-                       FMTSPECIALX                           (* ; 
-                                 "A special horizontal location on the printed page for this para.")
-                       FMTSPECIALY                           (* ; 
-                                            "A special vertical location on the page for this para")
-                       (FMTHEADINGKEEP FLAG)                 (* ; 
-                              "This para should be kept with the top line or so of the next para..")
-                       FMTPARATYPE                           (* ; 
-                                           "What kind of para this is: TEXT, PAGEHEADING, whatever")
-                       FMTPARASUBTYPE                        (* ; 
-                                   "Sub type of the type, e.g., what KIND of page heading this is.")
-                       FMTNEWPAGEBEFORE                      (* ; "Start a new box (if T) or back up the page formatting tree to make a new box of the type named in the value -- by going the least distance back up the tree, then back down until you find that kind of box.")
-                       FMTNEWPAGEAFTER                       (* ; "Similarly")
-                       FMTKEEP                               (* ; 
-                    "For information about how this paragraph is to be kept with other paragraphs.")
-                       FMTCOLUMN                             (* ; 
-                                         "For setting up side-by-side paragraphs easily ala BravoX")
-                       FMTVERTRULES                          (* ; 
-                                                     "For Keeping track of vertical rules in force")
-                       (FMTMARK FLAG)                        (* ; "Used to keep track of which PARALOOKSs are really being used -- a mark & collect is done just before a PUT, so that only 'real' PARALOOKSs make it into the file")
-                                                             (* ; "Used for a mark&sweep of para looks at PUT time -- T means this looks really IS in use in the document, so it makes sense to save it on the file.")
-                       (FMTHARDCOPY FLAG)                    (* ; 
-                                       "T if this paragraph is to be displayed in hardcopy-format.")
-                       FMTREVISED                            (* ; "T (or perhaps a revision level or revision-mark spec??) if this paragraph is to be marked as changed on output.")
+                       1STLEFTMAR                            (* ; 
+                                                   "Left margin of the first line of the paragraph")
+                       LEFTMAR                               (* ; 
+                                            "Left margin of the rest of the lines in the paragraph")
+                       RIGHTMAR                              (* ; "Right margin for the paragraph")
+                       LEADBEFORE                            (* ; 
+                                              "Leading above the paragraph's first line, in points")
+                       LEADAFTER                             (* ; 
+                          "Leading below the paragraph's bottom line, in points.  NOT IMPLEMENTED.")
+                       LINELEAD                              (* ; 
+    "Leading between lines, in points.  Actually, this space is added BELOW each line in the para.")
+                       FMTBASETOBASE                         (* ; 
+"The baseline-to-baseline spacing between lines in this paragraph.  THIS OVERRIDES THE LINE LEADING")
+                       TABSPEC                               (* ; 
+                       "The list of tabs for this paragraph, including CAR for a default tab width")
+                       QUAD                                  (* ; 
+                               "How the para is formatted: one of LEFT, RIGHT, CENTERED, JUSTIFIED")
+                       FMTSTYLE                              (* ; 
+                                              "The STYLE that controls this paragraph's appearance")
+                       FMTCHARSTYLES                         (* ; "The characterstyles that control the appearance of characters in this para (maybe?  may be part of the fmtstyle.)")
+                       FMTUSERINFO                           (* ; "Space for a PLIST of user info")
+                       FMTSPECIALX                           (* ; 
+                                 "A special horizontal location on the printed page for this para.")
+                       FMTSPECIALY                           (* ; 
+                                            "A special vertical location on the page for this para")
+                       (FMTHEADINGKEEP FLAG)                 (* ; 
+                              "This para should be kept with the top line or so of the next para..")
+                       FMTPARATYPE                           (* ; 
+                                           "What kind of para this is: TEXT, PAGEHEADING, whatever")
+                       FMTPARASUBTYPE                        (* ; 
+                                   "Sub type of the type, e.g., what KIND of page heading this is.")
+                       FMTNEWPAGEBEFORE                      (* ; "Start a new box (if T) or back up the page formatting tree to make a new box of the type named in the value -- by going the least distance back up the tree, then back down until you find that kind of box.")
+                       FMTNEWPAGEAFTER                       (* ; "Similarly")
+                       FMTKEEP                               (* ; 
+                    "For information about how this paragraph is to be kept with other paragraphs.")
+                       FMTCOLUMN                             (* ; 
+                                         "For setting up side-by-side paragraphs easily ala BravoX")
+                       FMTVERTRULES                          (* ; 
+                                                     "For Keeping track of vertical rules in force")
+                       (FMTMARK FLAG)                        (* ; "Used to keep track of which PARALOOKSs are really being used -- a mark & collect is done just before a PUT, so that only 'real' PARALOOKSs make it into the file")
+                                                             (* ; "Used for a mark&sweep of para looks at PUT time -- T means this looks really IS in use in the document, so it makes sense to save it on the file.")
+                       (FMTHARDCOPY FLAG)                    (* ; 
+                                       "T if this paragraph is to be displayed in hardcopy-format.")
+                       FMTREVISED                            (* ; "T (or perhaps a revision level or revision-mark spec??) if this paragraph is to be marked as changed on output.")
                        )
                       TABSPEC _ (CONS NIL NIL))
 
 (DATATYPE PENDINGTAB (
-                          (* ;; "The data structure for a tab, within the line formatter, that we haven't finished dealing with yet, e.g. a centered tab where you need to wait for AFTER the centered text to do the formatting.")
+                          (* ;; "The data structure for a tab, within the line formatter, that we haven't finished dealing with yet, e.g. a centered tab where you need to wait for AFTER the centered text to do the formatting.")
 
                           PTNEWTX
 
-                          (* ;; "An updated TX, being passed back to the line formatter.  This results from the resolution of an old RIGHT, CENTERED, or DECIMAL tab, which changed the width of a prior tab.")
+                          (* ;; "An updated TX, being passed back to the line formatter.  This results from the resolution of an old RIGHT, CENTERED, or DECIMAL tab, which changed the width of a prior tab.")
 
-                          PTOLDTAB                           (* ; "The pending tab")
-                          PTTYPE                             (* ; "Its tab type")
-                          PTTABX                             (* ; "Its nominal X position")
-                          (PTWBASE FULLXPOINTER)             (* ; 
-          "The WBASE for its width, for updating when we've figured out how wide the tab really is")
-                          PTOLDTX                            (* ; 
-                                                       "The TX as of when the tab was encountered.")
+                          PTOLDTAB                           (* ; "The pending tab")
+                          PTTYPE                             (* ; "Its tab type")
+                          PTTABX                             (* ; "Its nominal X position")
+                          (PTWBASE FULLXPOINTER)             (* ; 
+          "The WBASE for its width, for updating when we've figured out how wide the tab really is")
+                          PTOLDTX                            (* ; 
+                                                       "The TX as of when the tab was encountered.")
                           ))
 )
 
@@ -1289,15 +1295,15 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (DECLARE%: EVAL@COMPILE
 
 (TYPERECORD MB.3STATE (
-                           (* ;; "Describes a 3-state menu button.")
+                           (* ;; "Describes a 3-state menu button.")
 
-                           MBLABEL                           (* ; 
-                                                           "Label for the button on the screen")
-                           MBFONT                            (* ; 
-                                                           "Font the label text should appear in")
-                           MBCHANGESTATEFN                   (* ; 
-                                                 "Function to call when the button's state changes")
-                           MBINITSTATE                       (* ; "Button's initial state.")
+                           MBLABEL                           (* ; 
+                                                           "Label for the button on the screen")
+                           MBFONT                            (* ; 
+                                                           "Font the label text should appear in")
+                           MBCHANGESTATEFN                   (* ; 
+                                                 "Function to call when the button's state changes")
+                           MBINITSTATE                       (* ; "Button's initial state.")
                            )
                           MBFONT _ (FONTCREATE 'HELVETICA 8 'BOLD))
 
@@ -1320,11 +1326,11 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (DEFMACRO WITHOUT-UPDATES (TEXTOBJ SCRATCHSEL &BODY BODY)
 
-   (* ;; "For TEdit windows, run BODY without updating the edit window for TEXTOBJ.  This is useful if you're making a log of changes to a document at one time, where the changes are in essence atomic, and you don't need to see intermediate results.  It's also a good bit faster than constant updating.")
+   (* ;; "For TEdit windows, run BODY without updating the edit window for TEXTOBJ.  This is useful if you're making a log of changes to a document at one time, where the changes are in essence atomic, and you don't need to see intermediate results.  It's also a good bit faster than constant updating.")
 
-   (* ;; "TEXTOBJ is the TEXTOBJ for the document you'll be modifying.")
+   (* ;; "TEXTOBJ is the TEXTOBJ for the document you'll be modifying.")
 
-   (* ;; "SCRATCHSEL should be the scratch selection (often used in this work)")
+   (* ;; "SCRATCHSEL should be the scratch selection (often used in this work)")
 
    `[LET [(OLD-UNWIND-FLAG (FETCH (TEXTOBJ TXTDON'TUPDATE) OF ,TEXTOBJ]
          (CL:UNWIND-PROTECT
@@ -1343,21 +1349,21 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 (DECLARE%: EVAL@COMPILE
 
 (RECORD TEDITHISTORYEVENT (
-                               (* ;; "Describes one event on the TEdit edit history list.")
+                               (* ;; "Describes one event on the TEdit edit history list.")
 
-                               THACTION                      (* ; 
-                                                         "A LITATOM, specifying what the event was")
-                               THPOINT                       (* ; 
-                                                          "Was the selection to the left or right?")
-                               THLEN                         (* ; "The # of chars involved")
-                               THCH#                         (* ; "The starting ch#")
-                               THFIRSTPIECE                  (* ; "First piece involved")
-                               THOLDINFO                     (* ; "Old info, for undo")
-                               THAUXINFO                     (* ; 
-                                               "Auxiliary info about the event, primarily for redo")
+                               THACTION                      (* ; 
+                                                         "A LITATOM, specifying what the event was")
+                               THPOINT                       (* ; 
+                                                          "Was the selection to the left or right?")
+                               THLEN                         (* ; "The # of chars involved")
+                               THCH#                         (* ; "The starting ch#")
+                               THFIRSTPIECE                  (* ; "First piece involved")
+                               THOLDINFO                     (* ; "Old info, for undo")
+                               THAUXINFO                     (* ; 
+                                               "Auxiliary info about the event, primarily for redo")
                                THTEXTOBJ
 
-                               (* ;; "Place to remember a second textobj, for those like MOVE who need to remember both a source and a destination.")
+                               (* ;; "Place to remember a second textobj, for those like MOVE who need to remember both a source and a destination.")
 
                                )
                               THPOINT _ 'LEFT)
@@ -1407,9 +1413,9 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (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.)
+         (* 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 '(IEQP LASTMOUSEBUTTONS 4))
@@ -1511,34 +1517,34 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (DATATYPE TEDITCARET (TCNOWTIME 
 
-         (* Used to hold the current time, when checking to see if a transition is due)
+         (* Used to hold the current time, when checking to see if a transition is due)
 
-                                TCTHENTIME                   (* Time when the next transition is 
-                                                           to take place)
-                                TCFORCEDDOWN                 (* TCFORCEDOWN = T means
-                                                           (Make the caret visible at the next 
-                                                           call to \EDIT.FLIPCARET.))
+                                TCTHENTIME                   (* Time when the next transition is 
+                                                           to take place)
+                                TCFORCEDDOWN                 (* TCFORCEDOWN = T means
+                                                           (Make the caret visible at the next 
+                                                           call to \EDIT.FLIPCARET.))
                                 TCUP
 
-         (* TCUP = T => The caret is NOT VISIBLE.
-       Used to track the current state of the caret)
+         (* TCUP = T => The caret is NOT VISIBLE.
+       Used to track the current state of the caret)
 
-                                TCCARETDS                    (* The display stream that the caret 
-                                                           appears in)
-                                TCCURSORBM                   (* The CURSOR representing the caret)
-                                TCCARETRATE                  (* %# of MSEC between caret up/down 
-                                                           transitions)
+                                TCCARETDS                    (* The display stream that the caret 
+                                                           appears in)
+                                TCCURSORBM                   (* The CURSOR representing the caret)
+                                TCCARETRATE                  (* %# of MSEC between caret up/down 
+                                                           transitions)
                                 TCFORCEUP
 
-         (* T => The caret is not allowed to become visible.
-       Used to keep the caret up during screen updates)
+         (* T => The caret is not allowed to become visible.
+       Used to keep the caret up during screen updates)
 
-                                TCCARETX                     (* X position in the window that the 
-                                                           caret appears at)
-                                TCCARETY                     (* Y position in the window where 
-                                                           the caret appears)
-                                TCCARET                      (* A lisp CARET to be flashed
-                                                           (eventually))
+                                TCCARETX                     (* X position in the window that the 
+                                                           caret appears at)
+                                TCCARETY                     (* Y position in the window where 
+                                                           the caret appears)
+                                TCCARET                      (* A lisp CARET to be flashed
+                                                           (eventually))
                                 )
                          TCNOWTIME _ (CREATECELL \FIXP)
                          TCTHENTIME _ (CREATECELL \FIXP)
@@ -1583,21 +1589,21 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 (DECLARE%: EVAL@COMPILE
 
-(DATATYPE PCTNODE (CHNUM                                 (* ; 
-                                                           "Character #of piece in this node.")
-                             PCE                             (* ; "PIECE ")
-                             LO                              (* ; 
-                                                 "Subtree these nodes' ch#are less than this node.")
-                             HI                              (* ; 
-                                                " Subtree these nodes' ch#are more than this node.")
-                             BF                              (* ; "Balance factor.")
-                                                             (* ; 
-                                            "1: Right(HI) Subtree is higher than left(lo) subtree.")
-                                                             (* ; 
-                                                "0: Right subtree and left subtree are same height")
-                                                             (* ; 
-                                          "-1: Right(HI) Subtree is shorter than left(lo) subtree.")
-                             RANK                            (* ; "(# of nodes in left subtree) +1")
+(DATATYPE PCTNODE (CHNUM                                 (* ; 
+                                                           "Character #of piece in this node.")
+                             PCE                             (* ; "PIECE ")
+                             LO                              (* ; 
+                                                 "Subtree these nodes' ch#are less than this node.")
+                             HI                              (* ; 
+                                                " Subtree these nodes' ch#are more than this node.")
+                             BF                              (* ; "Balance factor.")
+                                                             (* ; 
+                                            "1: Right(HI) Subtree is higher than left(lo) subtree.")
+                                                             (* ; 
+                                                "0: Right subtree and left subtree are same height")
+                                                             (* ; 
+                                          "-1: Right(HI) Subtree is shorter than left(lo) subtree.")
+                             RANK                            (* ; "(# of nodes in left subtree) +1")
                              )
                       CHNUM _ 0 BF _ 0 RANK _ 1)
 )
@@ -1613,6 +1619,17 @@ Copyright (c) 1986-1991, 1993-1994, 2021 by Venue.
 
 
 
+(* ;; "FROM TEDITHCPY and TEDITSCREEN")
+
+(DECLARE%: EVAL@COMPILE DONTCOPY 
+(DECLARE%: DOEVAL@COMPILE DONTCOPY
+
+(GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)
+)
+)
+
+
+
 (* ;;; "THE END")
 
 
diff --git a/library/TEDITDCL.LCOM b/library/TEDITDCL.LCOM
index a4dd4df2..da6d0c86 100644
--- a/library/TEDITDCL.LCOM
+++ b/library/TEDITDCL.LCOM
@@ -1,9 +1,9 @@
-(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
-(FILECREATED "30-Apr-2021 17:26:58" ("compiled on " 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;2) "29-Apr-2021 09:48:40" brecompiled 
-exprs%: nothing in "Medley  Full Sysout 30-Apr-2021 ..." dated "30-Apr-2021 14:49:58")
-(FILECREATED "30-Apr-2021 17:26:17" {DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;2 
-86155 previous date%: "25-Aug-94 10:53:00" 
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
+(FILECREATED "21-Sep-2021 12:53:57" ("compiled on " 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;2) "20-Sep-2021 11:14:12" brecompiled 
+exprs%: nothing in "FULL 20-Sep-2021 ..." dated "20-Sep-2021 11:14:18")
+(FILECREATED "21-Sep-2021 12:53:57" {DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;2 
+86549 changes to%: (VARS TEDITDCLCOMS) previous date%: "30-Apr-2021 17:26:17" 
 {DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITDCL.;1)
 (PRETTYCOMPRINT TEDITDCLCOMS)
 (RPAQQ TEDITDCLCOMS ((* ;;; 
@@ -38,7 +38,9 @@ WORDDELETE.TTC 2) (DELETE.TTC 3) (FUNCTIONCALL.TTC 4) (REDO.TTC 5) (UNDO.TTC 6)
 8) (EXPAND.TTC 9) (PUNCT.TTC 20) (TEXT.TTC 21) (WHITESPACE.TTC 22))) (DECLARE%: EVAL@COMPILE DONTCOPY 
 (CONSTANTS (MSPACE 153) (NSPACE 152) (THINSPACE 159) (FIGSPACE 154))) (* ;; "FROM TEDITWINDOW") (
 DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TEDITCARET)) (INITRECORDS TEDITCARET) (* ;; 
-"FROM PCTREE added by Nakamura") (RECORDS PCTNODE) (* ;;; "THE END") (COMS (* ;; 
+"FROM PCTREE added by Nakamura") (RECORDS PCTNODE) (* ;; "FROM TEDITHCPY and TEDITSCREEN") (DECLARE%: 
+EVAL@COMPILE DONTCOPY (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)) (* ;;; "THE END") (
+COMS (* ;; 
 "Bits in the CHARTABLE that control line breaking, and what happens when a line is broken on this character "
 ) (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (NOTBEFORE.LB 1) (* ; 
 "Must not break before this character (e.g. Japanese right-paren)") (NOTAFTER.LB 2) (* ; 
diff --git a/library/TEDITHCPY b/library/TEDITHCPY
index 1e187a48..544a7945 100644
--- a/library/TEDITHCPY
+++ b/library/TEDITHCPY
@@ -1,12 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED "20-Sep-2021 11:12:06" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITHCPY.;4 105838 
+(FILECREATED "21-Sep-2021 15:33:24" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITHCPY.;10 106458 
 
       changes to%:  (FNS TEDIT.HARDCOPYFN)
                     (VARS TEDITHCPYCOMS)
 
-      previous date%: "20-Sep-2021 11:06:37" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITHCPY.;3)
+      previous date%: "21-Sep-2021 12:54:04" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITHCPY.;7)
 
 
 (* ; "
@@ -15,7 +15,7 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 
 (PRETTYCOMPRINT TEDITHCPYCOMS)
 
-(RPAQQ TEDITHCPYCOMS 
+(RPAQQ TEDITHCPYCOMS
        ((FILES TEDITDCL)
         (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\SCRATCHLEN 64))
                (FILES (LOADCOMP)
@@ -41,20 +41,26 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
               (* ;; "Support for the window-menu's HARDCOPY button, LISTFILES, etc.")
 
               (FNS TEDIT.HARDCOPYFN \TEDIT.HARDCOPY \TEDIT.PRESS.HARDCOPY)
-              [P (LET [(IPVALUES (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES]
-                      (COND (IPVALUES                        (* ; 
-                                        "Only install INTERPRESS printing if INTERPRESS is loaded.")
-                                   (LISTPUT IPVALUES 'TEDIT (FUNCTION \TEDIT.HARDCOPY]
+              (P (LISTPUT (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES))
+                        'TEDIT
+                        (FUNCTION \TEDIT.HARDCOPY)))
               (P (LET [(PRESSVALUES (ASSOC 'CONVERSION (ASSOC 'PRESS PRINTFILETYPES]
-                      (COND (PRESSVALUES (LISTPUT PRESSVALUES 'TEDIT (FUNCTION \TEDIT.PRESS.HARDCOPY]
-        (COMS 
+                      (COND (PRESSVALUES                     (* ; 
+                                                  "Only install PRESS printing if PRESS is loaded.")
+                                   (LISTPUT PRESSVALUES 'TEDIT (FUNCTION \TEDIT.PRESS.HARDCOPY]
+        [COMS 
               (* ;; "vars for Japanese Line Break")
 
-              [VARS (TEDIT.DONT.BREAK.CHARS '(8482 8483 8491 8492 8508 8525 8539 8537 8535 9249 9251
-                                                   9253 9255 9257 9283 9315 9317 9319 9326 9505 9507
-                                                   9509 9511 9513 9539 9571 9573 9575 9582))
-                    (TEDIT.DONT.LAST.CHARS '(8524 8538 8536 8534]
-              (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS))
+              (INITVARS (TEDIT.DONT.BREAK.CHARS (CHARCODE ("41,42" "41,43" "41,53" "41,54" "41,74" 
+                                                                 "41,115" "41,133" "41,131" "41,127"
+                                                                 "Hira,41" "Hira,43" "Hira,45" 
+                                                                 "Hira,47" "Hira,51" "Hira,103" 
+                                                                 "Hira,143" "Hira,145" "Hira,147" 
+                                                                 "Hira,156" "Kata,41" "Kata,43" 
+                                                                 "Kata,45" "Kata,47" "Kata,51" 
+                                                                 "Kata,103" "Kata,143" "Kata,145" 
+                                                                 "Kata,147" "Kata,156")))
+                     (TEDIT.DONT.LAST.CHARS (CHARCODE ("41,114" "41,132" "41,130" "41,126"]
         (COMS 
               (* ;; "Support for hardcopying several files as one document")
 
@@ -1512,7 +1518,7 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 (DEFINEQ
 
 (TEDIT.HARDCOPYFN
-  [LAMBDA (WINDOW IMAGESTREAM)                          (* ; "Edited 20-Sep-2021 11:12 by rmk:")
+  [LAMBDA (WINDOW IMAGESTREAM)                          (* ; "Edited 21-Sep-2021 15:33 by rmk:")
 
     (* ;; 
  "This is the TEdit HARDCOPYFN, hooking into the system's standard Hardcopy window-menu operation.")
@@ -1562,30 +1568,28 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
         PFILE)])
 )
 
-[LET [(IPVALUES (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES]
-     (COND
-        (IPVALUES                                            (* ; 
-                                        "Only install INTERPRESS printing if INTERPRESS is loaded.")
-               (LISTPUT IPVALUES 'TEDIT (FUNCTION \TEDIT.HARDCOPY]
+(LISTPUT (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES))
+       'TEDIT
+       (FUNCTION \TEDIT.HARDCOPY))
 
 [LET [(PRESSVALUES (ASSOC 'CONVERSION (ASSOC 'PRESS PRINTFILETYPES]
      (COND
-        (PRESSVALUES (LISTPUT PRESSVALUES 'TEDIT (FUNCTION \TEDIT.PRESS.HARDCOPY]
+        (PRESSVALUES                                         (* ; 
+                                                  "Only install PRESS printing if PRESS is loaded.")
+               (LISTPUT PRESSVALUES 'TEDIT (FUNCTION \TEDIT.PRESS.HARDCOPY]
 
 
 
 (* ;; "vars for Japanese Line Break")
 
 
-(RPAQQ TEDIT.DONT.BREAK.CHARS 
-       (8482 8483 8491 8492 8508 8525 8539 8537 8535 9249 9251 9253 9255 9257 9283 9315 9317 9319 
-             9326 9505 9507 9509 9511 9513 9539 9571 9573 9575 9582))
+(RPAQ? TEDIT.DONT.BREAK.CHARS
+       (CHARCODE ("41,42" "41,43" "41,53" "41,54" "41,74" "41,115" "41,133" "41,131" "41,127" 
+                        "Hira,41" "Hira,43" "Hira,45" "Hira,47" "Hira,51" "Hira,103" "Hira,143" 
+                        "Hira,145" "Hira,147" "Hira,156" "Kata,41" "Kata,43" "Kata,45" "Kata,47" 
+                        "Kata,51" "Kata,103" "Kata,143" "Kata,145" "Kata,147" "Kata,156")))
 
-(RPAQQ TEDIT.DONT.LAST.CHARS (8524 8538 8536 8534))
-(DECLARE%: DOEVAL@COMPILE DONTCOPY
-
-(GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)
-)
+(RPAQ? TEDIT.DONT.LAST.CHARS (CHARCODE ("41,114" "41,132" "41,130" "41,126")))
 
 
 
@@ -1612,11 +1616,11 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 (PUTPROPS TEDITHCPY COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 
 1991 1992 1993 1994 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (3137 99855 (TEDIT.HARDCOPY 3147 . 4398) (TEDIT.HCPYFILE 4400 . 6474) (
-\TEDIT.HARDCOPY.DISPLAYLINE 6476 . 20621) (\TEDIT.HARDCOPY.FORMATLINE 20623 . 67945) (
-\DOFORMATTING.HARDCOPY 67947 . 81240) (\TEDIT.HARDCOPY.MODIFYLOOKS 81242 . 83649) (
-\TEDIT.HCPYLOOKS.UPDATE 83651 . 94259) (\TEDIT.HCPYFMTSPEC 94261 . 99281) (\TEDIT.INTEGER.IMAGEBOX 
-99283 . 99853)) (99944 101028 (\TEDIT.SCALE 99954 . 100248) (\TEDIT.SCALEREGION 100250 . 101026)) (
-101271 103822 (TEDIT.HARDCOPYFN 101281 . 102186) (\TEDIT.HARDCOPY 102188 . 103097) (
-\TEDIT.PRESS.HARDCOPY 103099 . 103820)) (104785 105688 (TEDIT-BOOK 104795 . 105686)))))
+  (FILEMAP (NIL (3655 100373 (TEDIT.HARDCOPY 3665 . 4916) (TEDIT.HCPYFILE 4918 . 6992) (
+\TEDIT.HARDCOPY.DISPLAYLINE 6994 . 21139) (\TEDIT.HARDCOPY.FORMATLINE 21141 . 68463) (
+\DOFORMATTING.HARDCOPY 68465 . 81758) (\TEDIT.HARDCOPY.MODIFYLOOKS 81760 . 84167) (
+\TEDIT.HCPYLOOKS.UPDATE 84169 . 94777) (\TEDIT.HCPYFMTSPEC 94779 . 99799) (\TEDIT.INTEGER.IMAGEBOX 
+99801 . 100371)) (100462 101546 (\TEDIT.SCALE 100472 . 100766) (\TEDIT.SCALEREGION 100768 . 101544)) (
+101789 104340 (TEDIT.HARDCOPYFN 101799 . 102704) (\TEDIT.HARDCOPY 102706 . 103615) (
+\TEDIT.PRESS.HARDCOPY 103617 . 104338)) (105405 106308 (TEDIT-BOOK 105415 . 106306)))))
 STOP
diff --git a/library/TEDITHCPY.LCOM b/library/TEDITHCPY.LCOM
index ad683311..e8c7905c 100644
Binary files a/library/TEDITHCPY.LCOM and b/library/TEDITHCPY.LCOM differ
diff --git a/library/TEDITSCREEN b/library/TEDITSCREEN
index 58d30800..772d9832 100644
--- a/library/TEDITSCREEN
+++ b/library/TEDITSCREEN
@@ -1,11 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED "30-Apr-2021 14:42:15" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITSCREEN.;3 221793 
+(FILECREATED "21-Sep-2021 12:53:40" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITSCREEN.;4 214736 
 
-      changes to%:  (FNS \FORMATLINE \DISPLAYLINE)
+      changes to%:  (MACROS MI-TEDIT.BLTCHAR)
+                    (VARS TEDITSCREENCOMS)
+                    (FNS \MAIKO.DISPLAYLINE \DISPLAYLINE)
 
-      previous date%: "29-Apr-2021 23:17:30" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITSCREEN.;2)
+      previous date%: "30-Apr-2021 14:42:15" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITSCREEN.;1)
 
 
 (* ; "
@@ -20,22 +22,30 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                (FILES (LOADCOMP)
                       TEDITDCL))
         (FNS \FORMATLINE \TEDIT.NSCHAR.RUN \TEDIT.PURGE.SPACES \DOFORMATTING)
-        (FNS \DISPLAYLINE \MAIKO.DISPLAYLINE \TEDIT.LINECACHE \TEDIT.CREATE.LINECACHE \TEDIT.BLTCHAR)
+        (FNS \DISPLAYLINE \TEDIT.LINECACHE \TEDIT.CREATE.LINECACHE \TEDIT.BLTCHAR)
+        (DECLARE%: EVAL@COMPILE DONTCOPY 
+
+               (* ;; "Machine independent version of \TEDIT.BLTCHAR")
+
+               (MACROS MI-TEDIT.BLTCHAR))
         (FNS TEDIT.CR.UPDATESCREEN TEDIT.DELETELINE TEDIT.INSERT.DISPLAYTEXT 
              TEDIT.INSERT.UPDATESCREEN TEDIT.UPDATE.SCREEN \BACKFORMAT \FILLWINDOW \FIXDLINES 
              \FIXILINES \SHOWTEXT \TEDIT.ADJUST.LINES \TEDIT.CLEAR.SCREEN.BELOW.LINE 
              \TEDIT.CLOSEUPLINES \TEDIT.COPY.LINEDESCRIPTOR \TEDIT.FIXCHANGEDLINE 
              \TEDIT.FIXCHANGEDPART \TEDIT.INSERTLINE \TEDIT.LINE.LIST \TEDIT.MARK.LINES.DIRTY 
              \TEDIT.NEXT.LINE.BOTTOM)
-        [VARS (TEDIT.DONT.BREAK.CHARS '(8482 8483 8491 8492 8508 8525 8539 8537 8535 9249 9251 9253 
-                                             9255 9257 9283 9315 9317 9319 9326 9505 9507 9509 9511 
-                                             9513 9539 9571 9573 9575 9582))
-              (TEDIT.DONT.LAST.CHARS '(8524 8538 8536 8534]
-        (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)
-        (P (COND ((EQ (MACHINETYPE)
-                      'MAIKO)
-                  (MOVD '\MAIKO.DISPLAYLINE '\DISPLAYLINE))
-                 (T (ADDTOVAR \MAIKO.MOVDS (\MAIKO.DISPLAYLINE \DISPLAYLINE))])
+        (COMS (* RMK%: These duplicate what appears on TEDITHCPY, GLOBALVARS moved to TEDITDCL)
+              (* (VARS (TEDIT.DONT.BREAK.CHARS (CHARCODE ("41,42" "41,43" "41,53" "41,54" "41,74" 
+                                                                "41,115" "41,133" "41,131" "41,127" 
+                                                                "Hira,41" "Hira,43" "Hira,45" 
+                                                                "Hira,47" "Hira,51" "Hira,103" 
+                                                                "Hira,143" "Hira,145" "Hira,147" 
+                                                                "Hira,156" "Kata,41" "Kata,43" 
+                                                                "Kata,45" "Kata,47" "Kata,51" 
+                                                                "Kata,103" "Kata,143" "Kata,145" 
+                                                                "Kata,147" "Kata,156")))
+                       (TEDIT.DONT.LAST.CHARS (CHARCODE ("41,114" "41,132" "41,130" "41,126")))
+                       (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS])
 
 (FILESLOAD TEDITDCL)
 (DECLARE%: EVAL@COMPILE DONTCOPY 
@@ -1084,9 +1094,9 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 (DEFINEQ
 
 (\DISPLAYLINE
-  [LAMBDA (TEXTOBJ LINE WINDOW)                         (* ; "Edited 30-Apr-2021 14:41 by rmk:")
+  [LAMBDA (TEXTOBJ LINE WINDOW)                         (* ; "Edited 21-Sep-2021 12:47 by rmk:")
 
-    (* ;; "Display the line of text LINE in the edit window where it belongs.")
+    (* ;; "Display the line of text LINE in the edit window where it belongs.")
 
     (PROG ((CH 0)
            (CHLIST (fetch (THISLINE CHARS) of (fetch (TEXTOBJ THISLINE) of TEXTOBJ)))
@@ -1107,8 +1117,8 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
            DISPLAYDATA DDPILOTBBT DDWIDTHCACHE DDOFFSETCACHE CURY LHEIGHT SCALE)
           [SETQ LHEIGHT (COND
                            ((fetch (LINEDESCRIPTOR PREVLINE) of LINE)
-                                                             (* ; 
-                                  "So if theres a base-to-base measure, we clear everything right.")
+                                                             (* ; 
+                                  "So if theres a base-to-base measure, we clear everything right.")
                             (IMAX (IDIFFERENCE (fetch (LINEDESCRIPTOR YBOT)
                                                   of (fetch (LINEDESCRIPTOR PREVLINE)
                                                             of LINE))
@@ -1116,9 +1126,9 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                                   (fetch (LINEDESCRIPTOR LHEIGHT) of LINE)))
                            (T (fetch (LINEDESCRIPTOR LHEIGHT) of LINE]
           (COND
-             (HARDCOPYMODE                                   (* ; 
-                                                     "This is a hardcopy-mode line.  Scale things.")
-                                                             (* ; "(SETQ DS HCPYDS)")
+             (HARDCOPYMODE                                   (* ; 
+                                                     "This is a hardcopy-mode line.  Scale things.")
+                                                             (* ; "(SETQ DS HCPYDS)")
                     (SETQ SCALE (DSPSCALE NIL HCPYDS)))
              (T (SETQ SCALE 1)))
           (SETQ CACHE (\TEDIT.LINECACHE (fetch (TEXTOBJ DISPLAYCACHE) of TEXTOBJ)
@@ -1129,8 +1139,8 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                                 (T (fetch (LINEDESCRIPTOR RIGHTMARGIN) of LINE)))
                              LHEIGHT))
           (COND
-             ((NEQ CACHE OLDCACHE)                           (* ; 
-               "We changed the bitmaps because this line was bigger--update the displaystream, too")
+             ((NEQ CACHE OLDCACHE)                           (* ; 
+               "We changed the bitmaps because this line was bigger--update the displaystream, too")
               (DSPDESTINATION CACHE DS)
               (DSPCLIPPINGREGION (create REGION
                                         LEFT _ 0
@@ -1139,11 +1149,11 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                                         HEIGHT _ (fetch BITMAPHEIGHT of CACHE))
                      DS)))
           (BITBLT NIL 0 0 CACHE 0 0 NIL NIL 'TEXTURE 'REPLACE WHITESHADE)
-                                                             (* ; "Clear the line cache")
+                                                             (* ; "Clear the line cache")
           (COND
-             (HARDCOPYMODE                                   (* ; 
-                                                     "This is a hardcopy-mode line.  Scale things.")
-                                                             (* ; "(SETQ DS HCPYDS)")
+             (HARDCOPYMODE                                   (* ; 
+                                                     "This is a hardcopy-mode line.  Scale things.")
+                                                             (* ; "(SETQ DS HCPYDS)")
                     (SETQ SCALE (DSPSCALE NIL HCPYDS)))
              (T (SETQ SCALE 1)))
           [COND
@@ -1153,12 +1163,12 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                    (IGEQ (fetch (LINEDESCRIPTOR YBOT) of LINE)
                          (fetch (TEXTOBJ WBOTTOM) of TEXTOBJ)))
 
-              (* ;; "Only display the line of it contains text (CHAR1 > 0), appears before the end of the test, and is on-screen.")
+              (* ;; "Only display the line of it contains text (CHAR1 > 0), appears before the end of the test, and is on-screen.")
 
               (COND
                  ((NEQ (fetch (THISLINE DESC) of THISLINE)
-                       LINE)                                 (* ; 
-                                                          "No image cache -- re-format and display")
+                       LINE)                                 (* ; 
+                                                          "No image cache -- re-format and display")
                   (\FORMATLINE TEXTOBJ NIL (fetch (LINEDESCRIPTOR CHAR1) of LINE)
                          LINE)))
               (MOVETO (fetch (LINEDESCRIPTOR LEFTMARGIN) of LINE)
@@ -1168,65 +1178,65 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
               (SETQ DDPILOTBBT (ffetch DDPILOTBBT of DISPLAYDATA))
               (SETQ XOFFSET (fetch DDXOFFSET of DISPLAYDATA))
 
-              (* ;; "The X position of the left edge of the window, since \TEDIT.BLTCHAR works on the screen bitmap itself.")
+              (* ;; "The X position of the left edge of the window, since \TEDIT.BLTCHAR works on the screen bitmap itself.")
 
               (SETQ CLIPLEFT (fetch DDClippingLeft of DISPLAYDATA))
-                                                             (* ; 
-                     "The left and right edges of the clipping region for the text display window.")
+                                                             (* ; 
+                     "The left and right edges of the clipping region for the text display window.")
               (SETQ CLIPRIGHT (fetch DDClippingRight of DISPLAYDATA))
               (SETQ OFONT (DSPFONT (fetch CLFONT of (SETQ OLOOKS (\EDITELT LOOKS 0)))
-                                 DS))                        (* ; "The starting font")
+                                 DS))                        (* ; "The starting font")
               (SETQ DDWIDTHCACHE (ffetch DDWIDTHSCACHE of DISPLAYDATA))
-                                                             (* ; 
-                                                           "Cache the character-image widths")
+                                                             (* ; 
+                                                           "Cache the character-image widths")
               (SETQ DDOFFSETCACHE (ffetch DDOFFSETSCACHE of DISPLAYDATA))
-                                                             (* ; 
-                                                          "And the offset-into-strike-bitmap array")
+                                                             (* ; 
+                                                          "And the offset-into-strike-bitmap array")
               (SETQ LOOKSTARTX (fetch (LINEDESCRIPTOR LEFTMARGIN) of LINE))
-                                                             (* ; 
-                                                  "Starting X position for the current-looks text.")
+                                                             (* ; 
+                                                  "Starting X position for the current-looks text.")
               (AND (fetch CLOFFSET of OLOOKS)
                    (RELMOVETO 0 (FIXR (FTIMES SCALE (fetch CLOFFSET of OLOOKS)))
-                          DS))                               (* ; 
-                                                      "Any sub- or superscripting at start of line")
+                          DS))                               (* ; 
+                                                      "Any sub- or superscripting at start of line")
               (bind (LOOKNO _ 1)
                      DX
                      (TX _ (IPLUS XOFFSET (fetch (LINEDESCRIPTOR LEFTMARGIN) of LINE)))
                  for I from 0 to (fetch (THISLINE LEN) of THISLINE)
                  do 
 
-                       (* ;; "Display the line character by character")
+                       (* ;; "Display the line character by character")
 
-                       (SETQ CH (\EDITELT CHLIST I))         (* ; 
-                                                      "Grab the character (or IMAGEOBJ) to display")
-                       (SETQ DX (\EDITELT WLIST I))          (* ; "And its width")
+                       (SETQ CH (\EDITELT CHLIST I))         (* ; 
+                                                      "Grab the character (or IMAGEOBJ) to display")
+                       (SETQ DX (\EDITELT WLIST I))          (* ; "And its width")
                        [SELECTC CH
-                           (LMInvisibleRun                   (* ; 
-                                        "An INVISIBLE run -- skip it, and skip over the char count")
+                           (LMInvisibleRun                   (* ; 
+                                        "An INVISIBLE run -- skip it, and skip over the char count")
                                 (add LOOKNO 1))
-                           (LMLooksChange                    (* ; "A LOOKS change")
+                           (LMLooksChange                    (* ; "A LOOKS change")
                                           (replace DDXPOSITION of DISPLAYDATA
                                              with (IDIFFERENCE TX XOFFSET))
-                                                             (* ; 
-                                            "Make the displaystream reflect our current X position")
+                                                             (* ; 
+                                            "Make the displaystream reflect our current X position")
                                           (TEDIT.MODIFYLOOKS LINE LOOKSTARTX DS OLOOKS
                                                  (fetch (LINEDESCRIPTOR DESCENT) of LINE))
-                                                             (* ; 
-                "Make any necessary changes to the preceding characters (underline, strike-out &c)")
+                                                             (* ; 
+                "Make any necessary changes to the preceding characters (underline, strike-out &c)")
                                           (DSPFONT (fetch CLFONT of (SETQ OLOOKS
                                                                              (\EDITELT LOOKS LOOKNO))
                                                           )
-                                                 DS)         (* ; "Set the new font")
-                                          (add LOOKNO 1) (* ; "Grab the next set of char looks")
+                                                 DS)         (* ; "Set the new font")
+                                          (add LOOKNO 1) (* ; "Grab the next set of char looks")
                                           (AND (fetch CLOFFSET of OLOOKS)
                                                (RELMOVETO 0 (fetch CLOFFSET of OLOOKS)
-                                                      DS))   (* ; "Account for super/subscripting")
+                                                      DS))   (* ; "Account for super/subscripting")
                                           (SETQ LOOKSTARTX (IDIFFERENCE TX XOFFSET))
-                                                             (* ; 
-                                     "Remember the starting Xpos for possible later underlining &c")
+                                                             (* ; 
+                                     "Remember the starting Xpos for possible later underlining &c")
                                           )
-                           ((CHARCODE (TAB %#^I))            (* ; 
-                                "TAB: use the width from the cache to decide the right formatting.")
+                           ((CHARCODE (TAB %#^I))            (* ; 
+                                "TAB: use the width from the cache to decide the right formatting.")
                                 [COND
                                    ((OR (IEQP CH (CHARCODE %#^I))
                                         (fetch CLLEADER of OLOOKS)
@@ -1244,60 +1254,60 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                                           (while (ILEQ TTX (IPLUS TX DX))
                                              do (COND
                                                        (HARDCOPYMODE
-                                                        (\TEDIT.BLTCHAR
-                                                         (CHARCODE %.)
-                                                         DS
-                                                         (FIXR (FQUOTIENT (IDIFFERENCE TTX DOTWIDTH)
-                                                                      SCALE))
-                                                         DISPLAYDATA DDPILOTBBT CLIPRIGHT))
+                                                        (MI-TEDIT.BLTCHAR (CHARCODE %.)
+                                                               DS
+                                                               (FIXR (FQUOTIENT (IDIFFERENCE TTX 
+                                                                                       DOTWIDTH)
+                                                                            SCALE))
+                                                               DISPLAYDATA DDPILOTBBT CLIPRIGHT))
                                                        ((OR TERMSA HARDCOPYMODE)
-                                                             (* ; 
-                                                           "Using special instrns from TERMSA")
+                                                             (* ; 
+                                                           "Using special instrns from TERMSA")
                                                         (\DSPPRINTCHAR DS (CHARCODE %.)))
-                                                       (T    (* ; "Native charcodes")
-                                                          (\TEDIT.BLTCHAR (CHARCODE %.)
+                                                       (T    (* ; "Native charcodes")
+                                                          (MI-TEDIT.BLTCHAR (CHARCODE %.)
                                                                  DS
                                                                  (IDIFFERENCE TTX DOTWIDTH)
                                                                  DISPLAYDATA DDPILOTBBT CLIPRIGHT)))
                                                    (add TTX DOTWIDTH])
-                           ((CHARCODE (EOL LF CR))           (* ; "It's a CR")
+                           ((CHARCODE (EOL LF CR))           (* ; "It's a CR")
                                 NIL)
-                           (NIL                              (* ; "NIL signifies a character we've suppressed as part of line formatting (e.g., a discretionary hyphen we didn't use to break the line).  Show it as a thin black line.")
+                           (NIL                              (* ; "NIL signifies a character we've suppressed as part of line formatting (e.g., a discretionary hyphen we didn't use to break the line).  Show it as a thin black line.")
                                 (BLTSHADE BLACKSHADE DS TX 0 1 100 'PAINT))
                            (COND
-                              [(SMALLP CH)                   (* ; 
-                                                           "Normal character -- just display it.")
+                              [(SMALLP CH)                   (* ; 
+                                                           "Normal character -- just display it.")
                                (COND
-                                  (HARDCOPYMODE (\TEDIT.BLTCHAR CH DS (FIXR (FQUOTIENT TX SCALE))
+                                  (HARDCOPYMODE (MI-TEDIT.BLTCHAR CH DS (FIXR (FQUOTIENT TX SCALE))
                                                        DISPLAYDATA DDPILOTBBT CLIPRIGHT))
-                                  ((OR TERMSA HARDCOPYMODE)  (* ; 
-                                                           "Using special instrns from TERMSA")
+                                  ((OR TERMSA HARDCOPYMODE)  (* ; 
+                                                           "Using special instrns from TERMSA")
                                    (\DSPPRINTCHAR DS CH))
-                                  (T                         (* ; "Native charcodes")
-                                     (\TEDIT.BLTCHAR CH DS TX DISPLAYDATA DDPILOTBBT CLIPRIGHT]
-                              (T                             (* ; "CH is an object.")
+                                  (T                         (* ; "Native charcodes")
+                                     (MI-TEDIT.BLTCHAR CH DS TX DISPLAYDATA DDPILOTBBT CLIPRIGHT]
+                              (T                             (* ; "CH is an object.")
                                  (MOVETO (IDIFFERENCE (FIXR (FQUOTIENT TX SCALE))
                                                 XOFFSET)
                                         (SETQ CURY (DSPYPOSITION NIL DS))
-                                        DS)                  (* ; 
-                                              "Go to the base line, left edge of the image region.")
+                                        DS)                  (* ; 
+                                              "Go to the base line, left edge of the image region.")
                                  (APPLY* (IMAGEOBJPROP CH 'DISPLAYFN)
                                         CH DS 'DISPLAY (fetch (TEXTOBJ STREAMHINT) of TEXTOBJ
                                                               ))
-                                                             (* ; 
-                                                           "Tell him to display himself here.")
+                                                             (* ; 
+                                                           "Tell him to display himself here.")
                                  (DSPFONT (fetch CLFONT of OLOOKS)
                                         DS)
                                  (MOVETO (IDIFFERENCE (FIXR (FQUOTIENT TX SCALE))
                                                 XOFFSET)
-                                        CURY DS)             (* ; 
-                                                           "Move to after the object's image")
+                                        CURY DS)             (* ; 
+                                                           "Move to after the object's image")
                                  ]
-                       (add TX DX)                       (* ; "Update our X position")
+                       (add TX DX)                       (* ; "Update our X position")
                  finally (replace DDXPOSITION of DISPLAYDATA
                                 with (IDIFFERENCE (FIXR (FQUOTIENT TX SCALE))
-                                                XOFFSET))    (* ; 
-                                      "Make any necessary looks mods to the last run of characters")
+                                                XOFFSET))    (* ; 
+                                      "Make any necessary looks mods to the last run of characters")
                        (TEDIT.MODIFYLOOKS LINE LOOKSTARTX DS OLOOKS (fetch (LINEDESCRIPTOR 
                                                                                       DESCENT)
                                                                        of LINE]
@@ -1305,31 +1315,27 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                  (fetch (TEXTOBJ WRIGHT) of TEXTOBJ)
                  LHEIGHT
                  'INPUT
-                 'REPLACE)                                   (* ; 
-                        "Paint the cached image on the screen (this lessens flicker during update)")
+                 'REPLACE)                                   (* ; 
+                        "Paint the cached image on the screen (this lessens flicker during update)")
           (COND
              ((fetch (FMTSPEC FMTREVISED) of (fetch (LINEDESCRIPTOR LFMTSPEC)
                                                         of LINE))
-                                                             (* ; 
-                                                     "This paragraph has been revised, so mark it.")
+                                                             (* ; 
+                                                     "This paragraph has been revised, so mark it.")
               (\TEDIT.MARK.REVISION TEXTOBJ (fetch (LINEDESCRIPTOR LFMTSPEC) of LINE)
                      WINDOWDS LINE)))
           (SELECTQ (fetch (LINEDESCRIPTOR LMARK) of LINE)
-              (GREY                                          (* ; 
-              "This line has some property that isn't visible to the user.  Tell him to be careful")
+              (GREY                                          (* ; 
+              "This line has some property that isn't visible to the user.  Tell him to be careful")
                     (BITBLT NIL 0 0 WINDOWDS 0 (fetch (LINEDESCRIPTOR YBASE) of LINE)
                            6 6 'TEXTURE 'PAINT 42405))
-              (SOLID                                         (* ; 
-              "This line has some property that isn't visible to the user.  Tell him to be careful")
+              (SOLID                                         (* ; 
+              "This line has some property that isn't visible to the user.  Tell him to be careful")
                      (BITBLT NIL 0 0 WINDOWDS 0 (fetch (LINEDESCRIPTOR YBASE) of LINE)
                             6 6 'TEXTURE 'PAINT BLACKSHADE))
               (BITBLT NIL 0 0 WINDOWDS 0 (fetch (LINEDESCRIPTOR YBASE) of LINE)
                      6 6 'TEXTURE 'REPLACE WHITESHADE])
 
-(\MAIKO.DISPLAYLINE
-(LAMBDA (TEXTOBJ LINE WINDOW) (* ; "Edited 25-Aug-94 13:25 by sybalsky") (* ;; "Display the line of text LINE in the edit window where it belongs.") (* ;; " This Function works on MIAKO") (PROG ((CH 0) (CHLIST (fetch (THISLINE CHARS) of (fetch (TEXTOBJ THISLINE) of TEXTOBJ))) (WLIST (fetch (THISLINE WIDTHS) of (fetch (TEXTOBJ THISLINE) of TEXTOBJ))) (LOOKS (fetch (THISLINE LOOKS) of (fetch (TEXTOBJ THISLINE) of TEXTOBJ))) (WINDOWDS (WINDOWPROP (OR WINDOW (CAR (fetch (TEXTOBJ \WINDOW) of TEXTOBJ))) (QUOTE DSP))) (TEXTLEN (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ)) (THISLINE (fetch (TEXTOBJ THISLINE) of TEXTOBJ)) (TERMSA (fetch (TEXTOBJ TXTTERMSA) of TEXTOBJ)) (STREAM (fetch (TEXTOBJ STREAMHINT) of TEXTOBJ)) (OLDCACHE (fetch LCBITMAP of (fetch (TEXTOBJ DISPLAYCACHE) of TEXTOBJ))) (DS (fetch (TEXTOBJ DISPLAYCACHEDS) of TEXTOBJ)) (HCPYDS (fetch (TEXTOBJ DISPLAYHCPYDS) of TEXTOBJ)) (HARDCOPYMODE (fetch (FMTSPEC FMTHARDCOPY) of (fetch (LINEDESCRIPTOR LFMTSPEC) of LINE))) LOOKSTARTX CACHE \PCHARSLEFT \PSTRING \PFILE FONT OFONT OLOOKS XOFFSET CLIPLEFT CLIPRIGHT DISPLAYDATA DDPILOTBBT DDWIDTHCACHE DDOFFSETCACHE CURY LHEIGHT SCALE) (SETQ LHEIGHT (COND ((fetch (LINEDESCRIPTOR PREVLINE) of LINE) (* ; "So if theres a base-to-base measure, we clear everything right.") (IMAX (IDIFFERENCE (fetch (LINEDESCRIPTOR YBOT) of (fetch (LINEDESCRIPTOR PREVLINE) of LINE)) (fetch (LINEDESCRIPTOR YBOT) of LINE)) (fetch (LINEDESCRIPTOR LHEIGHT) of LINE))) (T (fetch (LINEDESCRIPTOR LHEIGHT) of LINE)))) (COND (HARDCOPYMODE (* ; "This is a hardcopy-mode line.  Scale things.") (* ; "(SETQ DS HCPYDS)") (SETQ SCALE (DSPSCALE NIL HCPYDS))) (T (SETQ SCALE 1))) (SETQ CACHE (\TEDIT.LINECACHE (fetch (TEXTOBJ DISPLAYCACHE) of TEXTOBJ) (COND (HARDCOPYMODE (FIXR (FQUOTIENT (fetch (LINEDESCRIPTOR RIGHTMARGIN) of LINE) SCALE))) (T (fetch (LINEDESCRIPTOR RIGHTMARGIN) of LINE))) LHEIGHT)) (COND ((NEQ CACHE OLDCACHE) (* ; "We changed the bitmaps because this line was bigger--update the displaystream, too") (DSPDESTINATION CACHE DS) (DSPCLIPPINGREGION (create REGION LEFT _ 0 BOTTOM _ 0 WIDTH _ (fetch BITMAPWIDTH of CACHE) HEIGHT _ (fetch BITMAPHEIGHT of CACHE)) DS))) (BITBLT NIL 0 0 CACHE 0 0 NIL NIL (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE) (* ; "Clear the line cache") (COND (HARDCOPYMODE (* ; "This is a hardcopy-mode line.  Scale things.") (* ; "(SETQ DS HCPYDS)") (SETQ SCALE (DSPSCALE NIL HCPYDS))) (T (SETQ SCALE 1))) (COND ((AND (NOT (ZEROP (fetch (LINEDESCRIPTOR CHAR1) of LINE))) (ILEQ (fetch (LINEDESCRIPTOR CHAR1) of LINE) TEXTLEN) (IGEQ (fetch (LINEDESCRIPTOR YBOT) of LINE) (fetch (TEXTOBJ WBOTTOM) of TEXTOBJ))) (* ;; "Only display the line of it contains text (CHAR1 > 0), appears before the end of the test, and is on-screen.") (COND ((NEQ (fetch (THISLINE DESC) of THISLINE) LINE) (* ; "No image cache -- re-format and display") (\FORMATLINE TEXTOBJ NIL (fetch (LINEDESCRIPTOR CHAR1) of LINE) LINE))) (MOVETO (fetch (LINEDESCRIPTOR LEFTMARGIN) of LINE) (fetch (LINEDESCRIPTOR DESCENT) of LINE) DS) (SETQ DISPLAYDATA (fetch (STREAM IMAGEDATA) of DS)) (SETQ DDPILOTBBT (ffetch DDPILOTBBT of DISPLAYDATA)) (SETQ XOFFSET (fetch DDXOFFSET of DISPLAYDATA)) (* ;; "The X position of the left edge of the window, since \TEDIT.BLTCHAR works on the screen bitmap itself.") (SETQ CLIPLEFT (fetch DDClippingLeft of DISPLAYDATA)) (* ; "The left and right edges of the clipping region for the text display window.") (SETQ CLIPRIGHT (fetch DDClippingRight of DISPLAYDATA)) (SETQ OFONT (DSPFONT (fetch CLFONT of (SETQ OLOOKS (\EDITELT LOOKS 0))) DS)) (* ; "The starting font") (SETQ DDWIDTHCACHE (ffetch DDWIDTHSCACHE of DISPLAYDATA)) (* ; "Cache the character-image widths") (SETQ DDOFFSETCACHE (ffetch DDOFFSETSCACHE of DISPLAYDATA)) (* ; "And the offset-into-strike-bitmap array") (SETQ LOOKSTARTX (fetch (LINEDESCRIPTOR LEFTMARGIN) of LINE)) (* ; "Starting X position for the current-looks text.") (AND (fetch CLOFFSET of OLOOKS) (RELMOVETO 0 (FIXR (FTIMES SCALE (fetch CLOFFSET of OLOOKS))) DS)) (* ; "Any sub- or superscripting at start of line") (bind (LOOKNO _ 1) DX (TX _ (IPLUS XOFFSET (fetch (LINEDESCRIPTOR LEFTMARGIN) of LINE))) for I from 0 to (fetch (THISLINE LEN) of THISLINE) do (* ;; "Display the line character by character") (SETQ CH (\EDITELT CHLIST I)) (* ; "Grab the character (or IMAGEOBJ) to display") (SETQ DX (\EDITELT WLIST I)) (* ; "And its width") (SELECTC CH (LMInvisibleRun (* ; "An INVISIBLE run -- skip it, and skip over the char count") (add LOOKNO 1)) (LMLooksChange (* ; "A LOOKS change") (replace DDXPOSITION of DISPLAYDATA with (IDIFFERENCE TX XOFFSET)) (* ; "Make the displaystream reflect our current X position") (TEDIT.MODIFYLOOKS LINE LOOKSTARTX DS OLOOKS (fetch (LINEDESCRIPTOR DESCENT) of LINE)) (* ; "Make any necessary changes to the preceding characters (underline, strike-out &c)") (DSPFONT (fetch CLFONT of (SETQ OLOOKS (\EDITELT LOOKS LOOKNO))) DS) (* ; "Set the new font") (add LOOKNO 1) (* ; "Grab the next set of char looks") (AND (fetch CLOFFSET of OLOOKS) (RELMOVETO 0 (fetch CLOFFSET of OLOOKS) DS)) (* ; "Account for super/subscripting") (SETQ LOOKSTARTX (IDIFFERENCE TX XOFFSET)) (* ; "Remember the starting Xpos for possible later underlining &c")) ((CHARCODE (TAB %#^I)) (* ; "TAB: use the width from the cache to decide the right formatting.") (COND ((OR (IEQP CH (CHARCODE %#^I)) (fetch CLLEADER of OLOOKS) (EQ (fetch CLUSERINFO of OLOOKS) (QUOTE DOTTEDLEADER))) (LET* ((LEADERFONT (COND (HARDCOPYMODE (FONTCOPY (fetch CLFONT of OLOOKS) (QUOTE DEVICE) HCPYDS)) (T (fetch CLFONT of OLOOKS)))) (DOTWIDTH (CHARWIDTH (CHARCODE %.) LEADERFONT)) (TTX (IPLUS TX DOTWIDTH (IDIFFERENCE DOTWIDTH (IREMAINDER TX DOTWIDTH))))) (while (ILEQ TTX (IPLUS TX DX)) do (COND (HARDCOPYMODE (SUBRCALL TEDIT.BLTCHAR (CHARCODE %.) DS (FIXR (FQUOTIENT (IDIFFERENCE TTX DOTWIDTH) SCALE)) DISPLAYDATA DDPILOTBBT CLIPRIGHT)) ((OR TERMSA HARDCOPYMODE) (* ; "Using special instrns from TERMSA") (\DSPPRINTCHAR DS (CHARCODE %.))) (T (* ; "Native charcodes") (SUBRCALL TEDIT.BLTCHAR (CHARCODE %.) DS (IDIFFERENCE TTX DOTWIDTH) DISPLAYDATA DDPILOTBBT CLIPRIGHT))) (add TTX DOTWIDTH)))))) (13 (* ; "It's a CR") NIL) (NIL (* ; "NIL signifies a character we've suppressed as part of line formatting (e.g., a discretionary hyphen we didn't use to break the line).  Show it as a thin black line.") (BLTSHADE BLACKSHADE DS TX 0 1 100 (QUOTE PAINT))) (COND ((SMALLP CH) (* ; "Normal character -- just display it.") (COND (HARDCOPYMODE (SUBRCALL TEDIT.BLTCHAR CH DS (FIXR (FQUOTIENT TX SCALE)) DISPLAYDATA DDPILOTBBT CLIPRIGHT)) ((OR TERMSA HARDCOPYMODE) (* ; "Using special instrns from TERMSA") (\DSPPRINTCHAR DS CH)) (T (* ; "Native charcodes") (SUBRCALL TEDIT.BLTCHAR CH DS TX DISPLAYDATA DDPILOTBBT CLIPRIGHT)))) (T (* ; "CH is an object.") (MOVETO (IDIFFERENCE (FIXR (FQUOTIENT TX SCALE)) XOFFSET) (SETQ CURY (DSPYPOSITION NIL DS)) DS) (* ; "Go to the base line, left edge of the image region.") (APPLY* (IMAGEOBJPROP CH (QUOTE DISPLAYFN)) CH DS (QUOTE DISPLAY) (fetch (TEXTOBJ STREAMHINT) of TEXTOBJ)) (* ; "Tell him to display himself here.") (DSPFONT (fetch CLFONT of OLOOKS) DS) (MOVETO (IDIFFERENCE (FIXR (FQUOTIENT TX SCALE)) XOFFSET) CURY DS) (* ; "Move to after the object's image")))) (add TX DX) (* ; "Update our X position") finally (replace DDXPOSITION of DISPLAYDATA with (IDIFFERENCE (FIXR (FQUOTIENT TX SCALE)) XOFFSET)) (* ; "Make any necessary looks mods to the last run of characters") (TEDIT.MODIFYLOOKS LINE LOOKSTARTX DS OLOOKS (fetch (LINEDESCRIPTOR DESCENT) of LINE))))) (BITBLT CACHE 0 0 WINDOWDS 0 (fetch (LINEDESCRIPTOR YBOT) of LINE) (fetch (TEXTOBJ WRIGHT) of TEXTOBJ) LHEIGHT (QUOTE INPUT) (QUOTE REPLACE)) (* ; "Paint the cached image on the screen (this lessens flicker during update)") (COND ((fetch (FMTSPEC FMTREVISED) of (fetch (LINEDESCRIPTOR LFMTSPEC) of LINE)) (* ; "This paragraph has been revised, so mark it.") (\TEDIT.MARK.REVISION TEXTOBJ (fetch (LINEDESCRIPTOR LFMTSPEC) of LINE) WINDOWDS LINE))) (SELECTQ (fetch (LINEDESCRIPTOR LMARK) of LINE) (GREY (* ; "This line has some property that isn't visible to the user.  Tell him to be careful") (BITBLT NIL 0 0 WINDOWDS 0 (fetch (LINEDESCRIPTOR YBASE) of LINE) 6 6 (QUOTE TEXTURE) (QUOTE PAINT) 42405)) (SOLID (* ; "This line has some property that isn't visible to the user.  Tell him to be careful") (BITBLT NIL 0 0 WINDOWDS 0 (fetch (LINEDESCRIPTOR YBASE) of LINE) 6 6 (QUOTE TEXTURE) (QUOTE PAINT) BLACKSHADE)) (BITBLT NIL 0 0 WINDOWDS 0 (fetch (LINEDESCRIPTOR YBASE) of LINE) 6 6 (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE))))
-)
-
 (\TEDIT.LINECACHE
   (LAMBDA (CACHE WIDTH HEIGHT)                               (* jds "21-Apr-84 00:52")
           
@@ -1403,6 +1409,19 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
                   (\PILOTBITBLT DDPILOTBBT 0))
               T)))))
 )
+(DECLARE%: EVAL@COMPILE DONTCOPY 
+(DECLARE%: EVAL@COMPILE 
+
+(PUTPROPS MI-TEDIT.BLTCHAR MACRO [(CHARCODE DISPLAYSTREAM CURX DISPLAYDATA DDPILOTBBT 
+                                                 CLIPRIGHT)
+                                          (COND
+                                             ((EQ 'MAIKO (MACHINETYPE))
+                                              (SUBRCALL TEDIT.BLTCHAR CHARCODE DISPLAYSTREAM CURX 
+                                                     DISPLAYDATA DDPILOTBBT CLIPRIGHT))
+                                             (T (\TEDIT.BLTCHAR CHARCODE DISPLAYSTREAM CURX 
+                                                       DISPLAYDATA DDPILOTBBT CLIPRIGHT])
+)
+)
 (DEFINEQ
 
 (TEDIT.CR.UPDATESCREEN
@@ -2956,34 +2975,32 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
           (RETURN NEWYBOT])
 )
 
-(RPAQQ TEDIT.DONT.BREAK.CHARS (8482 8483 8491 8492 8508 8525 8539 8537 8535 9249 9251 9253 9255 
-                                        9257 9283 9315 9317 9319 9326 9505 9507 9509 9511 9513 9539 
-                                        9571 9573 9575 9582))
 
-(RPAQQ TEDIT.DONT.LAST.CHARS (8524 8538 8536 8534))
-(DECLARE%: DOEVAL@COMPILE DONTCOPY
 
-(GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)
-)
+(* RMK%: These duplicate what appears on TEDITHCPY, GLOBALVARS moved to TEDITDCL)
+
+
+
+
+(* (VARS (TEDIT.DONT.BREAK.CHARS (CHARCODE ("41,42" "41,43" "41,53" "41,54" "41,74" "41,115" 
+"41,133" "41,131" "41,127" "Hira,41" "Hira,43" "Hira,45" "Hira,47" "Hira,51" "Hira,103" "Hira,143" 
+"Hira,145" "Hira,147" "Hira,156" "Kata,41" "Kata,43" "Kata,45" "Kata,47" "Kata,51" "Kata,103" 
+"Kata,143" "Kata,145" "Kata,147" "Kata,156"))) (TEDIT.DONT.LAST.CHARS (CHARCODE ("41,114" "41,132" 
+"41,130" "41,126"))) (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)))
 
-[COND
-   ((EQ (MACHINETYPE)
-        'MAIKO)
-    (MOVD '\MAIKO.DISPLAYLINE '\DISPLAYLINE))
-   (T (ADDTOVAR \MAIKO.MOVDS (\MAIKO.DISPLAYLINE \DISPLAYLINE))]
 (PUTPROPS TEDITSCREEN COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 
 1991 1992 1993 1994 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (2111 76103 (\FORMATLINE 2121 . 55849) (\TEDIT.NSCHAR.RUN 55851 . 62668) (
-\TEDIT.PURGE.SPACES 62670 . 63128) (\DOFORMATTING 63130 . 76101)) (76104 106607 (\DISPLAYLINE 76114 . 
-94037) (\MAIKO.DISPLAYLINE 94039 . 102607) (\TEDIT.LINECACHE 102609 . 103360) (\TEDIT.CREATE.LINECACHE
- 103362 . 104106) (\TEDIT.BLTCHAR 104108 . 106605)) (106608 221063 (TEDIT.CR.UPDATESCREEN 106618 . 
-107869) (TEDIT.DELETELINE 107871 . 108905) (TEDIT.INSERT.DISPLAYTEXT 108907 . 124146) (
-TEDIT.INSERT.UPDATESCREEN 124148 . 130900) (TEDIT.UPDATE.SCREEN 130902 . 132120) (\BACKFORMAT 132122
- . 136433) (\FILLWINDOW 136435 . 151539) (\FIXDLINES 151541 . 158778) (\FIXILINES 158780 . 166755) (
-\SHOWTEXT 166757 . 170013) (\TEDIT.ADJUST.LINES 170015 . 177482) (\TEDIT.CLEAR.SCREEN.BELOW.LINE 
-177484 . 178214) (\TEDIT.CLOSEUPLINES 178216 . 186732) (\TEDIT.COPY.LINEDESCRIPTOR 186734 . 192300) (
-\TEDIT.FIXCHANGEDLINE 192302 . 203481) (\TEDIT.FIXCHANGEDPART 203483 . 215910) (\TEDIT.INSERTLINE 
-215912 . 216732) (\TEDIT.LINE.LIST 216734 . 217060) (\TEDIT.MARK.LINES.DIRTY 217062 . 218748) (
-\TEDIT.NEXT.LINE.BOTTOM 218750 . 221061)))))
+  (FILEMAP (NIL (2874 76866 (\FORMATLINE 2884 . 56612) (\TEDIT.NSCHAR.RUN 56614 . 63431) (
+\TEDIT.PURGE.SPACES 63433 . 63891) (\DOFORMATTING 63893 . 76864)) (76867 98847 (\DISPLAYLINE 76877 . 
+94847) (\TEDIT.LINECACHE 94849 . 95600) (\TEDIT.CREATE.LINECACHE 95602 . 96346) (\TEDIT.BLTCHAR 96348
+ . 98845)) (99561 214016 (TEDIT.CR.UPDATESCREEN 99571 . 100822) (TEDIT.DELETELINE 100824 . 101858) (
+TEDIT.INSERT.DISPLAYTEXT 101860 . 117099) (TEDIT.INSERT.UPDATESCREEN 117101 . 123853) (
+TEDIT.UPDATE.SCREEN 123855 . 125073) (\BACKFORMAT 125075 . 129386) (\FILLWINDOW 129388 . 144492) (
+\FIXDLINES 144494 . 151731) (\FIXILINES 151733 . 159708) (\SHOWTEXT 159710 . 162966) (
+\TEDIT.ADJUST.LINES 162968 . 170435) (\TEDIT.CLEAR.SCREEN.BELOW.LINE 170437 . 171167) (
+\TEDIT.CLOSEUPLINES 171169 . 179685) (\TEDIT.COPY.LINEDESCRIPTOR 179687 . 185253) (
+\TEDIT.FIXCHANGEDLINE 185255 . 196434) (\TEDIT.FIXCHANGEDPART 196436 . 208863) (\TEDIT.INSERTLINE 
+208865 . 209685) (\TEDIT.LINE.LIST 209687 . 210013) (\TEDIT.MARK.LINES.DIRTY 210015 . 211701) (
+\TEDIT.NEXT.LINE.BOTTOM 211703 . 214014)))))
 STOP
diff --git a/library/TEDITSCREEN.LCOM b/library/TEDITSCREEN.LCOM
index 9e18859e..55c75801 100644
Binary files a/library/TEDITSCREEN.LCOM and b/library/TEDITSCREEN.LCOM differ
