1
0
mirror of synced 2026-04-27 20:48:58 +00:00

rmk122--Next round on fonts and MCCS (#2280)

* A revision to the font, Unicode, Tedit, and other modules to implement the MCCS character coding as the standard for internal text strings.  MCCS is a variant of XCCS with arrows switched with circumflex/underscore and $ switched with currency, and allows for additional code assignments over time. :MCCS replaces :XCCS as the default external format, especially for source files.  The file XCCS is removed in favor of the file MCCS, which includes the XCCS external format for backward compatibility.

* This includes a single Medley-font formatted font file for each of the family/size/face display fonts.  The glyph assignments correspond to the MCCS character encoding (except for fonts with idiosyncratic encodings--Hippo, Symbol).  All charsets from legacy font files are included in each file, and the character sets and glyphs in each file have also been extended by offline coercion from related families (e.g. Glyphs not in legacy Terminal are taken from legacy Modern). There should be fewer black boxes, and character-display shouldn't change when you switch fonts.

* The Unicode mapping tables have been redefined to set up correspondences between Unicode and MCCS, not XCCS.  Separate XCCS to/from MCCS mapping functions are provided in the file MCCS; they are no longer included in INTERPRESS.

* TEDIT converts characters in legacy fonts to their new MCCS codes as it reads formatted files, marks the file as MCCS compatible and preserves the new codes on writing.

* Default keyboard assignments produce the MCCS uparrow and leftarrow for shift-6 and shift-hyphen, use Function-6 for circumflex and Function-10 for underscore.

See documentation in FONTCODECHANGES.TEDIT MCCS.TEDIT MEDLEYFONTFORMAT.TEDIT in docs/internal, and library/UNICODE.TEDIT.
This commit is contained in:
rmkaplan
2025-10-20 17:17:34 -07:00
committed by GitHub
parent 54353a4bef
commit 82fc95ce18
401 changed files with 8871 additions and 6601 deletions

View File

@@ -1,16 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 1-Aug-2025 14:53:19" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-FILE.;645 169238
(FILECREATED "25-Sep-2025 21:32:46" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-FILE.;655 173148
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.GET.CHARLOOKS \TEDIT.FORMATTEDSTREAMP \TEDIT.GET.OBJECT
\TEDIT.PUT.PCTB.MERGEABLE \TEDIT.PUT.CHARLOOKS \TEDIT.GET.SINGLE.CHARLOOKS
\TEDIT.PUT.SINGLE.CHARLOOKS)
:CHANGES-TO (FNS \TEDIT.GET.FORMATTED.FILE \TEDIT.PUT.SINGLE.CHARLOOKS
\TEDIT.GET.SINGLE.CHARLOOKS)
:PREVIOUS-DATE "29-Jul-2025 09:30:44"
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>tedit>TEDIT-FILE.;642)
:PREVIOUS-DATE " 9-Sep-2025 21:49:43" {WMEDLEY}<library>tedit>TEDIT-FILE.;653)
(PRETTYCOMPRINT TEDIT-FILECOMS)
@@ -25,7 +23,8 @@
(\PieceDescriptorSAFEOBJECT 6)
(\PieceDescriptorMETAINFO 7)
(\PieceDescriptorPROPERTIES 8))
(EXPORT (MACROS \SMALLPIN \SMALLPOUT)))
(EXPORT (MACROS \SMALLPIN \SMALLPOUT))
(RECORDS \TEDIT.FILETRAILER))
(COMS
(* ;; "Public entries ")
@@ -39,7 +38,7 @@
 "Until CL:COMPILE-FILE and any others are updated, They should use the public TEDIT.FORMATTEDFILEP")
(P (MOVD? '\TEDIT.GET.TRAILER '\TEDIT.FORMATTEDP1]
(FNS \TEDIT.GET.PIECES3 \TEDIT.GET.IDATE3 \TEDIT.MAKE.STRINGPIECE)
(FNS \TEDIT.GET.PIECES3 \TEDIT.GET.PROPS3 \TEDIT.MAKE.STRINGPIECE)
(FNS \TEDIT.GET.UNFORMATTED.FILE.MCCS \TEDIT.INTERPRET.MCCS.SHIFTS
\TEDIT.CONVERT.XCCSTOMCCS)
(* ; "XCCS")
@@ -115,6 +114,11 @@
(* "END EXPORTED DEFINITIONS")
(DECLARE%: EVAL@COMPILE
(RECORD \TEDIT.FILETRAILER (PIECESTART TRAILERSIZE VERSION PCCOUNT IDATE PROPS))
)
)
@@ -242,7 +246,8 @@
(\TEDIT.GET.TRAILER STREAM))))])
(TEDIT.FILEDATE
[LAMBDA (FILE INTEGER) (* ; "Edited 26-Mar-2024 21:37 by rmk")
[LAMBDA (FILE INTEGER) (* ; "Edited 8-Sep-2025 18:26 by rmk")
(* ; "Edited 26-Mar-2024 21:37 by rmk")
(* ; "Edited 18-Jan-2024 10:26 by rmk")
(* ; "Edited 13-Jan-2024 10:20 by rmk")
(* ; "Edited 19-Dec-2023 10:13 by rmk")
@@ -253,7 +258,8 @@
(* ;; "FILE must be random access. If not, then presumably we first have to fetch the last 5+4+8 bytes to someplace else.")
(LET [(IDATE (CAR (LAST (TEDIT.FORMATTEDFILEP FILE]
(LET [(IDATE (CAR (NTH (TEDIT.FORMATTEDFILEP FILE)
5]
(CL:WHEN IDATE
(CL:IF INTEGER
IDATE
@@ -702,7 +708,10 @@
(\TEDIT.INSERTPIECES PIECES NIL TEXTOBJ)))])
(\TEDIT.GET.FORMATTED.FILE
[LAMBDA (TEXT TSTREAM START END PROPS) (* ; "Edited 28-Mar-2025 14:15 by rmk")
[LAMBDA (TEXT TSTREAM START END PROPS) (* ; "Edited 25-Sep-2025 21:27 by rmk")
(* ; "Edited 9-Sep-2025 21:45 by rmk")
(* ; "Edited 7-Sep-2025 12:14 by rmk")
(* ; "Edited 28-Mar-2025 14:15 by rmk")
(* ; "Edited 7-Feb-2025 08:19 by rmk")
(* ; "Edited 28-Oct-2024 17:48 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
@@ -719,13 +728,14 @@
(* ;; "Returns NIL if TSTREAM is not a formatted file, otherwise the ")
(LET ((TEXTOBJ (TEXTOBJ! (GETTSTR TSTREAM TEXTOBJ)))
(LET ((TEXTOBJ (FTEXTOBJ TSTREAM))
(TRAILER (\TEDIT.GET.TRAILER TEXT END))
PCCOUNT IDATE PC)
PCCOUNT IDATE PROPS PC)
(CL:WHEN TRAILER
(SETTOBJ TEXTOBJ TXTPAGEFRAMES NIL)
(SETQ PCCOUNT (CADDDR TRAILER))
(SELECTQ (CADDR TRAILER)
(FSETTOBJ TEXTOBJ DOCPROPS (fetch (\TEDIT.FILETRAILER PROPS) of TRAILER))
(SETQ PCCOUNT (fetch (\TEDIT.FILETRAILER PCCOUNT) of TRAILER))
(SELECTQ (fetch (\TEDIT.FILETRAILER VERSION) of TRAILER)
(3 (* ; "Version 3")
(\TEDIT.INSERTPIECES (\TEDIT.GET.PIECES3 TEXT TSTREAM PCCOUNT START END)
NIL TEXTOBJ))
@@ -740,7 +750,9 @@
(\TEDIT.THELP "File format version incompatible with this version of TEdit."))
(CL:WHEN (SETQ PC (\TEDIT.LASTPIECE TEXTOBJ))
(FSETPC PC PPARALAST T))
(\TEDIT.TRANSLATE.ASCIICHARS TSTREAM NIL)
(CL:UNLESS (EQ 'MCCS (GETMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
'CHARENCODING))
(\TEDIT.MCCS.TRANSLATE TSTREAM))
TEXTOBJ)])
(\TEDIT.FORMATTEDSTREAMP
@@ -844,19 +856,20 @@
(RETURN STR])
(\TEDIT.GET.TRAILER
[LAMBDA (STREAM LEN) (* ; "Edited 26-Mar-2024 21:36 by rmk")
[LAMBDA (STREAM LEN) (* ; "Edited 9-Sep-2025 00:03 by rmk")
(* ; "Edited 26-Mar-2024 21:36 by rmk")
(* ; "Edited 18-Jan-2024 10:22 by rmk")
(* ; "Edited 16-Jan-2024 22:39 by rmk")
(* ; "Edited 15-Jan-2024 17:38 by rmk")
(* ; "Edited 13-Jan-2024 21:49 by rmk")
(* ;; "For an open formatted stream, returns a list (VERSION PCCOUNT DESCPTR IDATE) where DESCPTR is the byte position of the first piece. Returns NIL if it is not a formatted stream. Either way, the file is left at position 0 FWIW ")
(* ;; "For an open formatted stream, returns a list (PIECESTART TRAILERSIZE VERSION PCCOUNT IDATE PROPS) where PIECESTART is the byte position of the first piece. Returns NIL if it is not a formatted stream. Either way, the file is left at position 0 FWIW ")
(* ;; "If STREAM is the format-stream split of a complete Tedit file, then PIECESTART is the position in that larger file that this section was taken from, and 0 in STREAM corresponds to PIECESTART in that file. TRAILERSIZE")
(SETQ LEN (OR LEN (GETEOFPTR STREAM)))
(CL:WHEN (IGREATERP LEN 8)
(LET (PIECESTART TRAILERSIZE PCCOUNT VERSION IDATE)
(LET (PIECESTART TRAILERSIZE PCCOUNT VERSION IDATE PROPS)
(SETFILEPTR STREAM (IDIFFERENCE LEN 8)) (* ;
 "Move to start of FILEPTR to descriptions")
(SETQ PIECESTART (\DWIN STREAM)) (* ;
@@ -866,15 +879,21 @@
31415))
(PROG1 (SELECTQ VERSION
(3 (* ; "Current version")
[SETQ IDATE (OR (\TEDIT.GET.IDATE3 STREAM LEN)
(GETFILEINFO STREAM 'ICREATIONDATE]
(SETQ TRAILERSIZE (IPLUS 8 (CL:IF IDATE
(IPLUS (CONSTANT (NCHARS "DATE:"))
4)
0)))
(LIST PIECESTART TRAILERSIZE VERSION PCCOUNT IDATE))
(CL:MULTIPLE-VALUE-SETQ (TRAILERSIZE IDATE PROPS)
(\TEDIT.GET.PROPS3 STREAM LEN))
(create \TEDIT.FILETRAILER
PIECESTART _ PIECESTART
TRAILERSIZE _ TRAILERSIZE
VERSION _ VERSION
PCCOUNT _ PCCOUNT
IDATE _ IDATE
PROPS _ PROPS))
((2 1 0)
(LIST PIECESTART 8 VERSION PCCOUNT))
(create \TEDIT.FILETRAILER
PIECESTART _ PIECESTART
TRAILERSIZE _ 8
VERSION _ VERSION
PCCOUNT _ PCCOUNT))
NIL)
(SETFILEPTR STREAM 0))))])
@@ -1065,32 +1084,62 @@
NIL)
(RETURN PC])
(\TEDIT.GET.IDATE3
[LAMBDA (STREAM END) (* ; "Edited 6-Dec-2023 16:55 by rmk")
(\TEDIT.GET.PROPS3
[LAMBDA (STREAM END) (* ; "Edited 9-Sep-2025 21:49 by rmk")
(* ; "Edited 6-Dec-2023 16:55 by rmk")
(* ;; "Returns the integer IDATE for slightly updated version 3 files, otherwise NIL. 4 for the bytes of the IDATE, 8 for the header. Leaves resets to starting position (assumes an error wouldn't matter).")
(* ;; "Returns the integer IDATE for slightly updated version 3 files, the directory idate if there is no date in the file. At exit resets to starting position (assumes an error wouldn't matter).")
(CL:WHEN (IGREATERP END (IPLUS (CONSTANT (NCHARS "DATE:"))
4 8))
(LET ((FILEPTR (GETFILEPTR STREAM)))
(SETFILEPTR STREAM (IDIFFERENCE END (IPLUS (CONSTANT (NCHARS "DATE:"))
4 8)))
(* ;; "Before the date there may also be a property list, unseen by pre MCCS code. This is headed by PROPS: followed by a pointer to the first byte of the property list, which can be READ.")
(CL:WHEN (IGREATERP END (CONSTANT (IPLUS (NCHARS "DATE:")
4 8)))
(LET ((ORIGPTR (GETFILEPTR STREAM))
[DATEPTR (IDIFFERENCE END (CONSTANT (IPLUS (NCHARS "DATE:")
4 8]
(TRAILERSIZE 8)
IDATE PROPSLEN PROPS)
(SETFILEPTR STREAM DATEPTR)
(* ;;
 "DATE: is the marker for this extension to version 3 (could be removed if version is update). ")
(PROG1 (CL:WHEN (AND (EQ (CHARCODE D)
(BIN STREAM))
(EQ (CHARCODE A)
(BIN STREAM))
(EQ (CHARCODE T)
(BIN STREAM))
(EQ (CHARCODE E)
(BIN STREAM))
(EQ (CHARCODE %:)
(BIN STREAM)))
(\DWIN STREAM))
(SETFILEPTR STREAM FILEPTR))))])
(CL:WHEN (AND (EQ (CHARCODE D)
(BIN STREAM))
(EQ (CHARCODE A)
(BIN STREAM))
(EQ (CHARCODE T)
(BIN STREAM))
(EQ (CHARCODE E)
(BIN STREAM))
(EQ (CHARCODE %:)
(BIN STREAM)))
(SETQ IDATE (\DWIN STREAM))
(add TRAILERSIZE (CONSTANT (IPLUS (NCHARS "DATE:")
4)))
(CL:WHEN [IGREATERP END (IPLUS TRAILERSIZE (CONSTANT (IPLUS (NCHARS "PROPS:")
4]
[SETFILEPTR STREAM (IDIFFERENCE DATEPTR (CONSTANT (IPLUS (NCHARS "PROPS:")
4]
(CL:WHEN (AND (EQ (CHARCODE P)
(BIN STREAM))
(EQ (CHARCODE R)
(BIN STREAM))
(EQ (CHARCODE O)
(BIN STREAM))
(EQ (CHARCODE P)
(BIN STREAM))
(EQ (CHARCODE S)
(BIN STREAM))
(EQ (CHARCODE %:)
(BIN STREAM)))
(SETQ PROPSLEN (\DWIN STREAM))
(SETFILEPTR STREAM (IDIFFERENCE DATEPTR PROPSLEN))
(SETQ PROPS (CAR (READ STREAM *TEDIT-FILE-READTABLE*)))
(add TRAILERSIZE PROPSLEN))))
(SETFILEPTR STREAM ORIGPTR)
(CL:VALUES TRAILERSIZE (OR IDATE (GETFILEINFO STREAM 'ICREATIONDATE))
PROPS)))])
(\TEDIT.MAKE.STRINGPIECE
[LAMBDA (PC STRING) (* ; "Edited 23-Jan-2024 14:32 by rmk")
@@ -1456,7 +1505,9 @@
(for I from 1 to (\WIN FILE) collect (\TEDIT.GET.SINGLE.CHARLOOKS FILE TEXTOBJ])
(\TEDIT.GET.SINGLE.CHARLOOKS
[LAMBDA (FILE TEXTOBJ) (* ; "Edited 1-Aug-2025 13:43 by rmk")
[LAMBDA (FILE TEXTOBJ) (* ; "Edited 25-Sep-2025 18:30 by rmk")
(* ; "Edited 7-Sep-2025 11:04 by rmk")
(* ; "Edited 1-Aug-2025 13:43 by rmk")
(* ; "Edited 26-Jul-2025 11:14 by rmk")
(* ; "Edited 21-Jul-2025 23:41 by rmk")
(* ; "Edited 20-Jul-2025 13:14 by rmk")
@@ -1554,7 +1605,6 @@
'R)
'R]
(FSETCLOOKS LOOKS CLFONT FONT)
(FSETCLOOKS LOOKS CLNAME (FONTUNPARSE FONT))
(SETFILEPTR FILE (IPLUS FILEPOS LOOKSLEN))
(RETURN LOOKS])
@@ -1781,6 +1831,7 @@
(\TEDIT.PUT.PCTB
[LAMBDA (TEXTOBJ CHARSTREAM FORMATSTREAM CONTINUE KEEPSEPARATE)
(* ; "Edited 9-Sep-2025 21:32 by rmk")
(* ; "Edited 26-Apr-2025 00:11 by rmk")
(* ; "Edited 21-Oct-2024 00:33 by rmk")
(* ; "Edited 15-May-2024 17:03 by rmk")
@@ -1908,7 +1959,7 @@
(CL:UNLESS UNFORMATTED?
(\TEDIT.PUT.TRAILER FORMATSTREAM (\GETFILEPTR CHARSTREAM
)
PCCOUNT 3))
PCCOUNT 3 (FGETTOBJ TEXTOBJ DOCPROPS)))
(CL:UNLESS (OR UNFORMATTED? KEEPSEPARATE)
(COPYBYTES FORMATSTREAM CHARSTREAM 0 (GETEOFPTR
FORMATSTREAM
@@ -1968,16 +2019,24 @@
(\TEDIT.THELP "OTHER PTYPES"])
(\TEDIT.PUT.TRAILER
[LAMBDA (FORMATSTREAM PIECESTART PCCOUNT VERSION) (* ; "Edited 13-Jan-2024 10:13 by rmk")
[LAMBDA (FORMATSTREAM PIECESTART PCCOUNT VERSION PROPS) (* ; "Edited 9-Sep-2025 17:55 by rmk")
(* ; "Edited 13-Jan-2024 10:13 by rmk")
(* ;; "Finalize FORMATSTREAM. We sneak in the date here--at the end of the looks, after the last look but before the final pointers, so that it doesn't interfere with anything. TEDIT.FILEDATE pulls it out if it's there.")
(PRIN1 "DATE:" FORMATSTREAM)
(\DWOUT FORMATSTREAM (IDATE))
(\DWOUT FORMATSTREAM PIECESTART) (* ; "Position of the first piece")
(\WOUT FORMATSTREAM PCCOUNT) (* ;
(LET ((PROPSPTR (GETFILEPTR FORMATSTREAM)))
(CL:WHEN PROPS (* ; "CONS to protect an atom or number")
(PRIN2 (CONS PROPS)
FORMATSTREAM *TEDIT-FILE-READTABLE*)
(PRIN1 "PROPS:" FORMATSTREAM)
(\DWOUT FORMATSTREAM (IPLUS 4 (IDIFFERENCE (GETFILEPTR FORMATSTREAM)
PROPSPTR))))
(PRIN1 "DATE:" FORMATSTREAM)
(\DWOUT FORMATSTREAM (IDATE))
(\DWOUT FORMATSTREAM PIECESTART) (* ; "Position of the first piece")
(\WOUT FORMATSTREAM PCCOUNT) (* ;
 "Number of pieces followed by the password")
(\WOUT FORMATSTREAM (IPLUS 31415 VERSION])
(\WOUT FORMATSTREAM (IPLUS 31415 VERSION])
(\TEDIT.PUT.PCTB.MERGEABLE
[LAMBDA (PREVPC PC EDITSTENTATIVE EXTFORMAT TEXTOBJ) (* ; "Edited 1-Aug-2025 14:51 by rmk")
@@ -2272,7 +2331,8 @@
(PUTHASH LOOKS I LOOKSHASH])
(\TEDIT.PUT.SINGLE.CHARLOOKS
[LAMBDA (FORMATSTREAM LOOKS) (* ; "Edited 1-Aug-2025 13:42 by rmk")
[LAMBDA (FORMATSTREAM LOOKS) (* ; "Edited 25-Sep-2025 18:31 by rmk")
(* ; "Edited 1-Aug-2025 13:42 by rmk")
(* ; "Edited 21-Jul-2025 23:32 by rmk")
(* ; "Edited 20-Jul-2025 13:17 by rmk")
(* ; "Edited 22-Apr-2025 14:50 by rmk")
@@ -2634,28 +2694,28 @@
(RPAQ? *TEDIT-FILE-READTABLE* (COPYREADTABLE \ORIGREADTABLE))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (5423 35544 (TEDIT.GET 5433 . 11843) (TEDIT.FORMATTEDFILEP 11845 . 13161) (
TEDIT.FILEDATE 13163 . 14334) (TEDIT.INCLUDE 14336 . 22365) (TEDIT.RAW.INCLUDE 22367 . 23175) (
TEDIT.PUT 23177 . 31533) (TEDIT.PUT.STREAM 31535 . 35542)) (35545 55851 (\TEDIT.GET.FOREIGN.FILE 35555
. 38980) (\TEDIT.GET.UNFORMATTED.FILE 38982 . 43288) (\TEDIT.GET.FORMATTED.FILE 43290 . 46317) (
\TEDIT.FORMATTEDSTREAMP 46319 . 49450) (\ARBIN 49452 . 50172) (\ATMIN 50174 . 50711) (\DWIN 50713 .
51092) (\STRINGIN 51094 . 51802) (\TEDIT.GET.TRAILER 51804 . 54320) (\TEDIT.CACHEFILE 54322 . 55849))
(56017 70228 (\TEDIT.GET.PIECES3 56027 . 66990) (\TEDIT.GET.IDATE3 66992 . 68387) (
\TEDIT.MAKE.STRINGPIECE 68389 . 70226)) (70229 83655 (\TEDIT.GET.UNFORMATTED.FILE.MCCS 70239 . 76472)
(\TEDIT.INTERPRET.MCCS.SHIFTS 76474 . 82719) (\TEDIT.CONVERT.XCCSTOMCCS 82721 . 83653)) (83677 89816 (
\TEDIT.GET.UNFORMATTED.FILE.UTF8 83687 . 89814)) (89839 101019 (\TEDIT.GET.CHARLOOKS.LIST 89849 .
90580) (\TEDIT.GET.SINGLE.CHARLOOKS 90582 . 97492) (\TEDIT.GET.CHARLOOKS 97494 . 99050) (
\TEDIT.GET.PARALOOKS.INDEX 99052 . 99596) (\TEDIT.GET.CHARLOOKS.INDEX 99598 . 101017)) (101020 108677
(\TEDIT.GET.PARALOOKS.LIST 101030 . 101652) (\TEDIT.GET.SINGLE.PARALOOKS 101654 . 108675)) (108678
112511 (\TEDIT.GET.OBJECT 108688 . 112509)) (112576 145141 (\TEDIT.PUT.PCTB 112586 . 122356) (
\TEDIT.PUT.PCTB.PIECEDATA 122358 . 125556) (\TEDIT.PUT.TRAILER 125558 . 126325) (
\TEDIT.PUT.PCTB.MERGEABLE 126327 . 130100) (\TEDIT.PUT.UTF8.SPLITPIECES 130102 . 134804) (
\TEDIT.PUT.PCTB.NEXTNEW 134806 . 139302) (\TEDIT.INSERT.NEWPIECES 139304 . 142739) (\TEDIT.PUTRESET
142741 . 142983) (\ARBOUT 142985 . 143709) (\ATMOUT 143711 . 144316) (\DWOUT 144318 . 144597) (
\STRINGOUT 144599 . 145139)) (145142 157767 (\TEDIT.PUT.CHARLOOKS.LIST 145152 . 146824) (
\TEDIT.PUT.SINGLE.CHARLOOKS 146826 . 152997) (\TEDIT.PUT.CHARLOOKS 152999 . 154338) (
\TEDIT.PUT.CHARLOOKS1 154340 . 155391) (\TEDIT.PUT.OBJECT 155393 . 157765)) (157768 165407 (
\TEDIT.PUT.PARALOOKS.LIST 157778 . 158680) (\TEDIT.PUT.SINGLE.PARALOOKS 158682 . 164266) (
\TEDIT.PUT.PARALOOKS 164268 . 165405)) (165502 168931 (TEDITFROMLISPSOURCE 165512 . 168180) (
SHELLSCRIPTP 168182 . 168411) (TEDITFROMSHELLSCRIPT 168413 . 168929)))))
(FILEMAP (NIL (5431 35690 (TEDIT.GET 5441 . 11851) (TEDIT.FORMATTEDFILEP 11853 . 13169) (
TEDIT.FILEDATE 13171 . 14480) (TEDIT.INCLUDE 14482 . 22511) (TEDIT.RAW.INCLUDE 22513 . 23321) (
TEDIT.PUT 23323 . 31679) (TEDIT.PUT.STREAM 31681 . 35688)) (35691 56965 (\TEDIT.GET.FOREIGN.FILE 35701
. 39126) (\TEDIT.GET.UNFORMATTED.FILE 39128 . 43434) (\TEDIT.GET.FORMATTED.FILE 43436 . 47079) (
\TEDIT.FORMATTEDSTREAMP 47081 . 50212) (\ARBIN 50214 . 50934) (\ATMIN 50936 . 51473) (\DWIN 51475 .
51854) (\STRINGIN 51856 . 52564) (\TEDIT.GET.TRAILER 52566 . 55434) (\TEDIT.CACHEFILE 55436 . 56963))
(57131 73169 (\TEDIT.GET.PIECES3 57141 . 68104) (\TEDIT.GET.PROPS3 68106 . 71328) (
\TEDIT.MAKE.STRINGPIECE 71330 . 73167)) (73170 86596 (\TEDIT.GET.UNFORMATTED.FILE.MCCS 73180 . 79413)
(\TEDIT.INTERPRET.MCCS.SHIFTS 79415 . 85660) (\TEDIT.CONVERT.XCCSTOMCCS 85662 . 86594)) (86618 92757 (
\TEDIT.GET.UNFORMATTED.FILE.UTF8 86628 . 92755)) (92780 104122 (\TEDIT.GET.CHARLOOKS.LIST 92790 .
93521) (\TEDIT.GET.SINGLE.CHARLOOKS 93523 . 100595) (\TEDIT.GET.CHARLOOKS 100597 . 102153) (
\TEDIT.GET.PARALOOKS.INDEX 102155 . 102699) (\TEDIT.GET.CHARLOOKS.INDEX 102701 . 104120)) (104123
111780 (\TEDIT.GET.PARALOOKS.LIST 104133 . 104755) (\TEDIT.GET.SINGLE.PARALOOKS 104757 . 111778)) (
111781 115614 (\TEDIT.GET.OBJECT 111791 . 115612)) (115679 148942 (\TEDIT.PUT.PCTB 115689 . 125596) (
\TEDIT.PUT.PCTB.PIECEDATA 125598 . 128796) (\TEDIT.PUT.TRAILER 128798 . 130126) (
\TEDIT.PUT.PCTB.MERGEABLE 130128 . 133901) (\TEDIT.PUT.UTF8.SPLITPIECES 133903 . 138605) (
\TEDIT.PUT.PCTB.NEXTNEW 138607 . 143103) (\TEDIT.INSERT.NEWPIECES 143105 . 146540) (\TEDIT.PUTRESET
146542 . 146784) (\ARBOUT 146786 . 147510) (\ATMOUT 147512 . 148117) (\DWOUT 148119 . 148398) (
\STRINGOUT 148400 . 148940)) (148943 161677 (\TEDIT.PUT.CHARLOOKS.LIST 148953 . 150625) (
\TEDIT.PUT.SINGLE.CHARLOOKS 150627 . 156907) (\TEDIT.PUT.CHARLOOKS 156909 . 158248) (
\TEDIT.PUT.CHARLOOKS1 158250 . 159301) (\TEDIT.PUT.OBJECT 159303 . 161675)) (161678 169317 (
\TEDIT.PUT.PARALOOKS.LIST 161688 . 162590) (\TEDIT.PUT.SINGLE.PARALOOKS 162592 . 168176) (
\TEDIT.PUT.PARALOOKS 168178 . 169315)) (169412 172841 (TEDITFROMLISPSOURCE 169422 . 172090) (
SHELLSCRIPTP 172092 . 172321) (TEDITFROMSHELLSCRIPT 172323 . 172839)))))
STOP