1
0
mirror of synced 2026-05-03 14:49:45 +00:00

Hardcopy to printer (#2290)

* Separate interface for imagefile creation from the send-to-printer interface
* SEND.FILE.TO.PRINTER recognizes :DEFAULTPRINTER
* Various changes to address #2414
* Move BITMAP properties from PRINTERTYPES to PRINTFILETYPES.
* Fix ShellOpen, add UNIX-TMP-FILE-NAME
* Include COERCEFONTSPEC changes in anticipation of HTML streams
* PDFSTREAM compatible with new imagefile architecture plus able to convert non-local Postscript streams
* SKETCH compatible with new imagefile/printing architecture
* TEDIT compatible with new printing architecture
* Tedit files are of type TEDIT, not TEXT, new interface function TEDIT.TO.IMAGEFILE
* ATTACHEDWINDOW:  DOATTACHEDWINDOWCOM allows menu to have a form to EVAL, like the background menu
* WINDOW: fix menus for new hardcopy architecture
* Remove FLUSHFONTSINCORE--FLUSHFONTCACHE is more general
* LOAD character names as suggested in PR #2398
* HARDCOPYW respects file extension
* VIEWER as default printinghost
* SLASHIT interprets '.
* MCCS to UTF8 conversion on printer name
* Deal with {LPT}.LOCAL and upper casing
* @ LPT printers work with exact upper/lower matching
* Using NSPRINT functions to recognize fax
* Let "UNIX" be the name of the default printer of type UNIX
This commit is contained in:
rmkaplan
2026-01-26 15:38:22 -08:00
committed by GitHub
parent 23cef354eb
commit 65df2ba6a4
63 changed files with 3435 additions and 3177 deletions

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "23-Sep-2025 08:19:29" {MEDLEY}<library>tedit>TEDIT-STREAM.;15 192029
(FILECREATED " 2-Dec-2025 17:50:45" {WMEDLEY}<library>tedit>TEDIT-STREAM.;930 194007
:EDIT-BY rmk
:CHANGES-TO (FNS \TEDIT.TEXTINIT)
:CHANGES-TO (FNS OPENTEXTSTREAM \TEDIT.OPENTEXTFILE)
:PREVIOUS-DATE "20-Sep-2025 08:49:36" {MEDLEY}<library>tedit>TEDIT-STREAM.;14)
:PREVIOUS-DATE "19-Oct-2025 15:09:09" {WMEDLEY}<library>TEDIT>TEDIT-STREAM.;927)
(PRETTYCOMPRINT TEDIT-STREAMCOMS)
@@ -83,10 +83,6 @@
(ADDVARS (INSPECTMACROS (TEXTOBJ \TEDIT.TEXTOBJ.PROPNAMES
\TEDIT.TEXTOBJ.PROPFETCHFN
\TEDIT.TEXTOBJ.PROPSTOREFN]
[COMS
(* ;; "Support for error handling: The old error handler for the stream-not-open error. This is here, because you only want to do this ONCE, even if you load TEXT-STREAM multiple times (as, e.g., in development)")
(INITVARS (*TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN]
(DECLARE%: DONTEVAL@LOAD DOCOPY (P (\TEDIT.TEXTINIT)))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
(NLAML)
@@ -126,7 +122,9 @@
 "The number of bytes in the UTF-8 encoding of all the Unicode characters in this piece")
[ACCESSFNS ((POBJ (AND (EQ OBJECT.PTYPE (PTYPE DATUM))
(type? IMAGEOBJ (PCONTENTS DATUM))
(PCONTENTS DATUM]
(PCONTENTS DATUM))
(AND (EQ OBJECT.PTYPE (PTYPE DATUM))
(SETPC DATUM PCONTENTS NEWVALUE]
PFPOS _ 0 PLEN _ 0 PBYTELEN _ 0)
(DATATYPE TEXTOBJ (
@@ -698,6 +696,8 @@
(\TEDIT.TEXTBIN
[LAMBDA (TSTREAM)
(* ;; "Edited 13-Oct-2025 17:16 by rmk")
(* ;; "Edited 21-Oct-2024 00:26 by rmk")
(* ;; "Edited 3-May-2024 14:57 by rmk")
@@ -767,7 +767,7 @@
(if (\ENDOFPIECEP PCCHARSLEFT)
then (SETQ PC (\TEDIT.INSTALL.PIECE TSTREAM (NEXTPIECE PC)
0))
else (\TEDIT.INSTALL.FILEBUFFER TSTREAM (SUB1 PCCHARSLEFT))))
else (\TEDIT.INSTALL.FILEBUFFER TSTREAM PCCHARSLEFT)))
(if (NOT PC)
then (STREAMOP 'ENDOFSTREAMOP TSTREAM TSTREAM)
elseif (ffetch (STREAM BINABLE) of TSTREAM)
@@ -1232,6 +1232,10 @@
(OPENTEXTSTREAM
[LAMBDA (TEXT WINDOW START/PROPS END PROPS)
(* ;; "Edited 2-Dec-2025 17:49 by rmk")
(* ;; "Edited 25-Sep-2025 21:30 by rmk")
(* ;; "Edited 9-Sep-2025 22:07 by rmk")
(* ;; "Edited 17-Feb-2025 08:57 by rmk")
@@ -1317,12 +1321,12 @@
(if TEXT
then (* ;
 "Verify/open the file before the window")
(SETQ TEXT (\TEDIT.OPENTEXTFILE TEXT PROPS))
(SETQ TEXT (\TEDIT.OPENTEXTFILE TEXT PROPS T))
(FSETTOBJ TEXTOBJ TXTFILE TEXT)
else
(* ;; "An empty document starts in an MCCS environment")
(FPUTMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
(PUTMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
'CHARENCODING
'MCCS))
@@ -1352,7 +1356,8 @@
TSTREAM))])
(COPYTEXTSTREAM
[LAMBDA (ORIGINAL CROSSCOPY) (* ; "Edited 21-Apr-2025 23:48 by rmk")
[LAMBDA (ORIGINAL CROSSCOPY) (* ; "Edited 5-Oct-2025 10:54 by rmk")
(* ; "Edited 21-Apr-2025 23:48 by rmk")
(* ; "Edited 8-Feb-2025 20:10 by rmk")
(* ; "Edited 12-Jan-2025 12:16 by rmk")
(* ; "Edited 17-Mar-2024 12:41 by rmk")
@@ -1372,7 +1377,10 @@
(LET* ((TSTREAM (TEXTSTREAM ORIGINAL))
(TEXTOBJ (FTEXTOBJ TSTREAM))
[NEWSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL (COPY (FGETTOBJ TEXTOBJ EDITPROPS]
[NEWSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL (APPEND (COPY (FGETTOBJ TEXTOBJ EDITPROPS))
(for DP in (FGETTOBJ TEXTOBJ DOCPROPS)
collect (LIST (CAR DP)
(COPY (CDR DP]
(NEWTEXTOBJ (FTEXTOBJ NEWSTREAM))) (* ;
 "Create an empty textstream into which the pieces can be hammered")
(for PC NEWPC inpieces (\TEDIT.FIRSTPIECE TEXTOBJ)
@@ -1657,7 +1665,8 @@
(SETTOBJ TEXTOBJ DEFAULTPARALOOKS PARALOOKS])
(\TEDIT.OPENTEXTFILE
[LAMBDA (TEXT PROPS) (* ; "Edited 16-Sep-2025 00:28 by rmk")
[LAMBDA (TEXT PROPS ERROR) (* ; "Edited 2-Dec-2025 17:49 by rmk")
(* ; "Edited 16-Sep-2025 00:28 by rmk")
(* ; "Edited 8-Sep-2025 21:52 by rmk")
(* ; "Edited 21-Nov-2024 11:38 by rmk")
(* ; "Edited 20-Dec-2023 10:49 by rmk")
@@ -1668,29 +1677,22 @@
(* ; "Edited 17-Sep-2023 21:29 by rmk")
(CL:WHEN TEXT
(if (\GETSTREAM TEXT 'INPUT T)
elseif (OR (LITATOM TEXT)
(STRINGP TEXT)
(CL:PATHNAMEP TEXT)
(STREAMP TEXT))
then (* ; "String detects empty extension")
[RESETSAVE [SETQ TEXT (OPENSTREAM (if (STREAMP TEXT)
elseif (OR (CL:PATHNAMEP TEXT)
(FILENAMEFIELD.STRING TEXT
'EXTENSION))
then (FINDFILE TEXT T)
elseif (FINDFILE-WITH-EXTENSIONS TEXT NIL
*TEDIT-EXTENSIONS*)
else TEXT)
'INPUT
'OLD
`((TYPE TEXT)
(FORMAT ,(LISTGET PROPS 'FORMAT]
'(PROGN (AND RESETSTATE (CLOSEF? OLDVALUE]
TEXT
else
(* ;; "Don't know what it is")
(ERROR TEXT " does not identify a Tedit document")))])
elseif [AND (OR (LITATOM TEXT)
(STRINGP TEXT)
(CL:PATHNAMEP TEXT)
(STREAMP TEXT))
(CAR (NLSETQ (OPENSTREAM (if (STREAMP TEXT)
elseif (CL:PATHNAMEP TEXT)
then (FINDFILE TEXT T)
elseif (FINDFILE-WITH-EXTENSIONS TEXT NIL
*TEDIT-EXTENSIONS*)
else TEXT)
'INPUT
'OLD
`((TYPE TEXT)
(FORMAT ,(LISTGET PROPS 'FORMAT]
elseif ERROR
then (ERROR "File not found:" TEXT)))])
(\TEDIT.CREATE.TEXTSTREAM
[LAMBDA (PROPS) (* ; "Edited 28-Jul-2025 22:56 by rmk")
@@ -1751,7 +1753,7 @@
NEWSTREAM])
(\TEDIT.TEXTINIT
[LAMBDA NIL (* ; "Edited 23-Sep-2025 08:19 by rmk")
[LAMBDA NIL (* ; "Edited 23-Sep-2025 21:03 by rmk")
(* ; "Edited 20-Sep-2025 08:48 by rmk")
(* ; "Edited 18-Sep-2025 14:52 by rmk")
(* ; "Edited 10-Jul-2025 11:28 by rmk")
@@ -1791,7 +1793,7 @@
(* ;; "(FW8 WORD)")
(SETQ \TEDITIMAGEOPS (create IMAGEOPS
IMAGETYPE _ 'TEXT
IMAGETYPE _ 'TEDIT
IMXPOSITION _ (FUNCTION \TEDIT.TEXTDSPXPOSITION)
IMYPOSITION _ (FUNCTION \TEDIT.TEXTDSPYPOSITION)
IMLEFTMARGIN _ (FUNCTION \TEDIT.TEXTLEFTMARGIN)
@@ -1821,6 +1823,9 @@
(FUNCTION \TEDIT.TEXTOUTCHARFN)
(FUNCTION \TEDIT.TEXTFORMATBYTESTREAM)
'CR NIL (FUNCTION \TEDIT.TEXTFORMATBYTESTRING))
(* ;; "Support for error handling: The old error handler for the stream-not-open error. ")
(SETQ \TEDITFDEV (create FDEV
DEVICENAME _ 'TEDIT
RESETABLE _ T
@@ -1856,6 +1861,9 @@
TRUNCATEFILE _ (FUNCTION NILL)
WRITEPAGES _ (FUNCTION NILL)
DEFAULTEXTERNALFORMAT _ :TEXTSTREAM))
(* ;
 "Only load once, not every time TEDIT-STREAM is loaded e.g. in development")
(RPAQ? *TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN))
(CL:SETF (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN)
(FUNCTION (LAMBDA (CONDITION)
(LET ((STREAM (STREAM-ERROR-STREAM CONDITION)))
@@ -2100,28 +2108,34 @@
(\TEDIT.INSTALL.PIECE TSTREAM PC (- CH# START-OF-PIECE)))])
(\TEDIT.TEXTDSPXPOSITION
[LAMBDA (TSTREAM XPOSITION) (* ; "Edited 20-Sep-2025 08:30 by rmk")
[LAMBDA (TSTREAM XPOSITION) (* ; "Edited 20-Sep-2025 22:48 by rmk")
(* ; "Edited 25-Jun-2024 11:59 by rmk")
(* ; "Edited 17-Mar-2024 12:15 by rmk")
(* ; "Edited 3-Jan-2001 17:27 by rmk:")
(* ;
 "Edited 24-Oct-88 23:09 by rmk:; Edited 26-Sep-85 16:30 by ajb:")
(* ;; "This doesn't make much sense for a character-oriented stream like a TEDIT stream. If the stream is displayed in a window, this returns the window's current position, and changes it as well. But that doesn't affect or particularly relate to the underlying sequence of characters.")
(* ;;
 "Simply returns the XPOSITION of the primary window's display stream, this is a read-only function")
(* ;; "If there is no window (an OPENTEXTSTREAM being written on by a printing algorithm, like the pretty printer for source files, this estimates the XPOSITION from the number of characters that have been printed on the line since the last TERPRI (= POSITION), assuming that they are all the width of the space (or the average charwidth). And if XPOSITION is non-NIL, that is also translated into an estimated number of characters, and spaces are put out to get out to that position (essentially assuming that we are writing at the end of the file). We can't go backwards.")
(* ;; "")
(* ;; "We could be more accurate by reading backwards to the last TERPRI, and not rely on POSITION. And if we were going backwards, we could think of this as setting the caret position as close as possible to the specified XPOSITION, But going forward, we still would have to fill in with spaces--and that's the PRETTYPRINT case.")
(LET ((WINDOW (\TEDIT.PRIMARYPANE TSTREAM))
SPACEWIDTH) (* ;
SPACEWIDTH CHARPOS NSPACES) (* ;
 "If there is no window, estimate from character position")
(if WINDOW
then (DSPXPOSITION XPOSITION WINDOW)
else (SETQ SPACEWIDTH (CHARWIDTH (CHARCODE SPACE)
TSTREAM))
(PROG1 (TIMES SPACEWIDTH (POSITION TSTREAM))
(CL:WHEN (AND XPOSITION (IGEQ XPOSITION 0))
(SPACES (IDIFFERENCE (QUOTIENT XPOSITION SPACEWIDTH)
(POSITION TSTREAM))
TSTREAM)))])
(SETQ CHARPOS (POSITION TSTREAM))
(PROG1 (TIMES SPACEWIDTH CHARPOS)
(CL:WHEN XPOSITION
(SETQ NSPACES (IDIFFERENCE (FIXR (FQUOTIENT XPOSITION SPACEWIDTH))
CHARPOS))
(CL:WHEN (IGREATERP NSPACES 0)
(SPACES NSPACES TSTREAM))))])
(\TEDIT.TEXTDSPYPOSITION
[LAMBDA (TSTREAM YPOSITION) (* ; "Edited 25-Jun-2024 11:59 by rmk")
@@ -2970,7 +2984,8 @@
OLDITEMS])
(\TEDIT.TEXTPROP
[LAMBDA (TEXTOBJ PROP SETNEWVALUE NEWVALUE) (* ; "Edited 17-Jul-2025 00:19 by rmk")
[LAMBDA (TEXTOBJ PROP SETNEWVALUE NEWVALUE) (* ; "Edited 5-Oct-2025 10:15 by rmk")
(* ; "Edited 17-Jul-2025 00:19 by rmk")
(* ; "Edited 16-Feb-2025 23:27 by rmk")
(* ; "Edited 15-Feb-2025 14:02 by rmk")
(* ; "Edited 22-Dec-2024 00:23 by rmk")
@@ -3056,32 +3071,42 @@
(CL:WHEN SETNEWVALUE (FSETTOBJ TEXTOBJ LOOPFN NEWVALUE))))
(CHARFN (PROG1 (FGETTOBJ TEXTOBJ CHARFN)
(CL:WHEN SETNEWVALUE (FSETTOBJ TEXTOBJ CHARFN NEWVALUE))))
(PROG1 (LISTGET (FGETTOBJ TEXTOBJ EDITPROPS)
PROP)
(CL:WHEN SETNEWVALUE
(CL:UNLESS (LISTP (FGETTOBJ TEXTOBJ EDITPROPS))
(OR (PROG1 (LISTGET (FGETTOBJ TEXTOBJ EDITPROPS)
PROP)
(CL:WHEN SETNEWVALUE
(CL:UNLESS (LISTP (FGETTOBJ TEXTOBJ EDITPROPS))
(* ;
 "Make sure we have a list to smash, no matter what.")
(FSETTOBJ TEXTOBJ EDITPROPS (LIST PROP NIL)))
(LISTPUT (FGETTOBJ TEXTOBJ EDITPROPS)
PROP NEWVALUE)))])
(FSETTOBJ TEXTOBJ EDITPROPS (LIST PROP NIL)))
(LISTPUT (FGETTOBJ TEXTOBJ EDITPROPS)
PROP NEWVALUE)))
(PROG1 (GETMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
PROP)
(CL:WHEN SETNEWVALUE
(PUTMULTI (FGETTOBJ TEXTOBJ DOCPROPS)
PROP NEWVALUE)))])
)
(DEFINEQ
(\TEDIT.TEXTOBJ.PROPNAMES
[LAMBDA (TEXTOBJ) (* ; "Edited 4-Jul-2024 11:08 by rmk")
[LAMBDA (TEXTOBJ) (* ; "Edited 5-Oct-2025 10:50 by rmk")
(* ; "Edited 4-Jul-2024 11:08 by rmk")
(* ; "Edited 30-Jun-2024 09:04 by rmk")
(* ;; "Stick the user properties at the end with --USERPROPS-- separator. INSPECTABLEFIELDNAMES does the sort for defined field names, the UFIELDS have to be sorted here.")
(LET ([TFIELDS (REMOVE 'EDITPROPS (INSPECTABLEFIELDNAMES (OR (RECLOOK 'TEXTOBJ)
(LET [[TFIELDS (REMOVE 'EDITPROPS (INSPECTABLEFIELDNAMES (OR (RECLOOK 'TEXTOBJ)
(SYSRECLOOK1 'TEXTOBJ]
(UFIELDS (for X in (fetch (TEXTOBJ EDITPROPS) of TEXTOBJ) by (CDDR X) collect X)))
(EPROPS (for X in (fetch (TEXTOBJ EDITPROPS) of TEXTOBJ) by (CDDR X) collect X))
(DPROPS (for X in (fetch (TEXTOBJ DOCPROPS) of TEXTOBJ) collect (CAR X]
(CL:UNLESS (OR (EQ T INSPECTDONTSORTFIELDS)
(MEMB 'TEXTOBJ INSPECTDONTSORTFIELDS))
(SETQ UFIELDS (SORT UFIELDS)))
(APPEND TFIELDS (CONS '--USERPROPS--)
UFIELDS])
(SETQ EPROPS (SORT EPROPS))
(SETQ DPROPS (SORT DPROPS)))
(APPEND TFIELDS (CONS '--EDITPROPS--)
EPROPS
(CONS '--DOCPROPS--)
DPROPS])
(\TEDIT.TEXTOBJ.PROPFETCHFN
[LAMBDA (TEXTOBJ PROPNAME) (* ; "Edited 4-Jul-2024 11:53 by rmk")
@@ -3113,15 +3138,6 @@
(ADDTOVAR INSPECTMACROS (TEXTOBJ \TEDIT.TEXTOBJ.PROPNAMES \TEDIT.TEXTOBJ.PROPFETCHFN
\TEDIT.TEXTOBJ.PROPSTOREFN))
)
(* ;;
"Support for error handling: The old error handler for the stream-not-open error. This is here, because you only want to do this ONCE, even if you load TEXT-STREAM multiple times (as, e.g., in development)"
)
(RPAQ? *TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN))
(DECLARE%: DONTEVAL@LOAD DOCOPY
(\TEDIT.TEXTINIT)
@@ -3135,34 +3151,34 @@
(ADDTOVAR LAMA TEXTPROP)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (36887 67703 (\TEDIT.TEXTBIN 36897 . 47647) (\TEDIT.TEXTPEEKBIN 47649 . 53199) (
\TEDIT.TEXTBACKFILEPTR 53201 . 58874) (\TEDIT.TEXTBOUT 58876 . 63493) (\TEDIT.INSTALL.FILEBUFFER 63495
. 67701)) (68601 72892 (\TEDIT.TEXTOUTCHARFN 68611 . 70167) (\TEDIT.TEXTINCCODEFN 70169 . 70908) (
\TEDIT.TEXTBACKCCODEFN 70910 . 71502) (\TEDIT.TEXTFORMATBYTESTREAM 71504 . 72341) (
\TEDIT.TEXTFORMATBYTESTRING 72343 . 72890)) (72939 84503 (OPENTEXTSTREAM 72949 . 79824) (
COPYTEXTSTREAM 79826 . 83726) (TEDIT.STREAMCHANGEDP 83728 . 84030) (TXTFILE 84032 . 84501)) (84504
115746 (\TEDIT.REOPENTEXTSTREAM 84514 . 85866) (\TEDIT.OPENTEXTSTREAM.PIECES 85868 . 90796) (
\TEDIT.OPENTEXTSTREAM.PROPS 90798 . 91900) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 91902 . 97143) (
\TEDIT.OPENTEXTSTREAM.WINDOW 97145 . 99936) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 99938 . 101877) (
\TEDIT.OPENTEXTFILE 101879 . 104356) (\TEDIT.CREATE.TEXTSTREAM 104358 . 105505) (\TEDIT.REOPEN.STREAM
105507 . 107843) (\TEDIT.TEXTINIT 107845 . 115744)) (115784 116972 (\TEDIT.TTYBOUT 115794 . 116970)) (
117090 137553 (\TEDIT.TEXTCLOSEF 117100 . 118424) (\TEDIT.TEXTDSPFONT 118426 . 119624) (
\TEDIT.TEXTEOFP 119626 . 121381) (\TEDIT.TEXTGETEOFPTR 121383 . 121706) (\TEDIT.TEXTSETEOFPTR 121708
. 122995) (\TEDIT.TEXTGETFILEPTR 122997 . 125832) (\TEDIT.TEXTSETFILEINFO 125834 . 126342) (
\TEDIT.TEXTOPENF 126344 . 127275) (\TEDIT.TEXTSETEOF 127277 . 127893) (\TEDIT.TEXTSETFILEPTR 127895 .
130005) (\TEDIT.TEXTDSPXPOSITION 130007 . 131490) (\TEDIT.TEXTDSPYPOSITION 131492 . 132233) (
\TEDIT.TEXTLEFTMARGIN 132235 . 132826) (\TEDIT.TEXTCOLOR 132828 . 133411) (\TEDIT.TEXTRIGHTMARGIN
133413 . 136702) (\TEDIT.TEXTDSPCHARWIDTH 136704 . 137008) (\TEDIT.TEXTDSPSTRINGWIDTH 137010 . 137316)
(\TEDIT.TEXTDSPLINEFEED 137318 . 137551)) (137591 150204 (\TEDIT.NTHCHARCODE 137601 . 139052) (
\TEDIT.PIECE.NTHCHARCODE 139054 . 142964) (\TEDIT.RPLCHARCODE 142966 . 144424) (
\TEDIT.PIECE.RPLCHARCODE 144426 . 149849) (\TEDIT.NTHCHARLOOKS 149851 . 150202)) (151251 172345 (
\TEDIT.DELETE.SELPIECES 151261 . 154886) (\TEDIT.INSERTCH 154888 . 162927) (\TEDIT.INSERTCH.HISTORY
162929 . 166393) (\TEDIT.INSERTEOL 166395 . 168220) (\TEDIT.INSERTCH.INSERTION 168222 . 171059) (
\TEDIT.INSERTCH.EXTEND 171061 . 172343)) (172346 173850 (\TEDIT.NEXTCHANGEABLE.CHNO 172356 . 173071) (
\TEDIT.LASTCHANGEABLE.CHNO 173073 . 173848)) (173851 175555 (\SETUPGETCH 173861 . 175553)) (175613
180071 (\TEDIT.INSTALL.PIECE 175623 . 180069)) (180109 189210 (TEXTPROP 180119 . 180466) (GETTEXTPROP
180468 . 180712) (PUTTEXTPROP 180714 . 180971) (GETTEXTPROPS 180973 . 181417) (PUTTEXTPROPS 181419 .
182323) (TEXTPROP.ADD 182325 . 182588) (\TEDIT.TEXTPROP 182590 . 189208)) (189211 191281 (
\TEDIT.TEXTOBJ.PROPNAMES 189221 . 190173) (\TEDIT.TEXTOBJ.PROPFETCHFN 190175 . 190691) (
\TEDIT.TEXTOBJ.PROPSTOREFN 190693 . 191279)))))
(FILEMAP (NIL (36705 67564 (\TEDIT.TEXTBIN 36715 . 47508) (\TEDIT.TEXTPEEKBIN 47510 . 53060) (
\TEDIT.TEXTBACKFILEPTR 53062 . 58735) (\TEDIT.TEXTBOUT 58737 . 63354) (\TEDIT.INSTALL.FILEBUFFER 63356
. 67562)) (68462 72753 (\TEDIT.TEXTOUTCHARFN 68472 . 70028) (\TEDIT.TEXTINCCODEFN 70030 . 70769) (
\TEDIT.TEXTBACKCCODEFN 70771 . 71363) (\TEDIT.TEXTFORMATBYTESTREAM 71365 . 72202) (
\TEDIT.TEXTFORMATBYTESTRING 72204 . 72751)) (72800 84875 (OPENTEXTSTREAM 72810 . 79786) (
COPYTEXTSTREAM 79788 . 84098) (TEDIT.STREAMCHANGEDP 84100 . 84402) (TXTFILE 84404 . 84873)) (84876
116145 (\TEDIT.REOPENTEXTSTREAM 84886 . 86238) (\TEDIT.OPENTEXTSTREAM.PIECES 86240 . 91168) (
\TEDIT.OPENTEXTSTREAM.PROPS 91170 . 92272) (\TEDIT.OPENTEXTSTREAM.SETUP.SEL 92274 . 97515) (
\TEDIT.OPENTEXTSTREAM.WINDOW 97517 . 100308) (\TEDIT.OPENTEXTSTREAM.DEFAULTLOOKS 100310 . 102249) (
\TEDIT.OPENTEXTFILE 102251 . 104383) (\TEDIT.CREATE.TEXTSTREAM 104385 . 105532) (\TEDIT.REOPEN.STREAM
105534 . 107870) (\TEDIT.TEXTINIT 107872 . 116143)) (116183 117371 (\TEDIT.TTYBOUT 116193 . 117369)) (
117489 139172 (\TEDIT.TEXTCLOSEF 117499 . 118823) (\TEDIT.TEXTDSPFONT 118825 . 120023) (
\TEDIT.TEXTEOFP 120025 . 121780) (\TEDIT.TEXTGETEOFPTR 121782 . 122105) (\TEDIT.TEXTSETEOFPTR 122107
. 123394) (\TEDIT.TEXTGETFILEPTR 123396 . 126231) (\TEDIT.TEXTSETFILEINFO 126233 . 126741) (
\TEDIT.TEXTOPENF 126743 . 127674) (\TEDIT.TEXTSETEOF 127676 . 128292) (\TEDIT.TEXTSETFILEPTR 128294 .
130404) (\TEDIT.TEXTDSPXPOSITION 130406 . 133109) (\TEDIT.TEXTDSPYPOSITION 133111 . 133852) (
\TEDIT.TEXTLEFTMARGIN 133854 . 134445) (\TEDIT.TEXTCOLOR 134447 . 135030) (\TEDIT.TEXTRIGHTMARGIN
135032 . 138321) (\TEDIT.TEXTDSPCHARWIDTH 138323 . 138627) (\TEDIT.TEXTDSPSTRINGWIDTH 138629 . 138935)
(\TEDIT.TEXTDSPLINEFEED 138937 . 139170)) (139210 151823 (\TEDIT.NTHCHARCODE 139220 . 140671) (
\TEDIT.PIECE.NTHCHARCODE 140673 . 144583) (\TEDIT.RPLCHARCODE 144585 . 146043) (
\TEDIT.PIECE.RPLCHARCODE 146045 . 151468) (\TEDIT.NTHCHARLOOKS 151470 . 151821)) (152870 173964 (
\TEDIT.DELETE.SELPIECES 152880 . 156505) (\TEDIT.INSERTCH 156507 . 164546) (\TEDIT.INSERTCH.HISTORY
164548 . 168012) (\TEDIT.INSERTEOL 168014 . 169839) (\TEDIT.INSERTCH.INSERTION 169841 . 172678) (
\TEDIT.INSERTCH.EXTEND 172680 . 173962)) (173965 175469 (\TEDIT.NEXTCHANGEABLE.CHNO 173975 . 174690) (
\TEDIT.LASTCHANGEABLE.CHNO 174692 . 175467)) (175470 177174 (\SETUPGETCH 175480 . 177172)) (177232
181690 (\TEDIT.INSTALL.PIECE 177242 . 181688)) (181728 191194 (TEXTPROP 181738 . 182085) (GETTEXTPROP
182087 . 182331) (PUTTEXTPROP 182333 . 182590) (GETTEXTPROPS 182592 . 183036) (PUTTEXTPROPS 183038 .
183942) (TEXTPROP.ADD 183944 . 184207) (\TEDIT.TEXTPROP 184209 . 191192)) (191195 193572 (
\TEDIT.TEXTOBJ.PROPNAMES 191205 . 192464) (\TEDIT.TEXTOBJ.PROPFETCHFN 192466 . 192982) (
\TEDIT.TEXTOBJ.PROPSTOREFN 192984 . 193570)))))
STOP