1
0
mirror of synced 2026-01-30 05:44:19 +00:00

FONT, EDITFONT: Cleanup strike font reading and writing (#845)

EDITFONThad its own slightly different version.  Now centralized in FONT with slight adjustments to internal interfaces.
Note that we don't have a way of writing AC font files, as near as I can tell
This commit is contained in:
rmkaplan
2022-07-17 21:22:56 -07:00
committed by GitHub
parent 06664219ca
commit a54888734e
4 changed files with 232 additions and 407 deletions

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "26-Jun-2022 13:00:17" {DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;2 188234
(FILECREATED "12-Jul-2022 15:09:31" {DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;11 187571
:CHANGES-TO (VARS FONTCOMS)
(FNS \CREATE-REAL-CHARSET.DISPLAY)
:CHANGES-TO (FNS \INSTALLCHARSETINFO \CREATECHARSET WRITESTRIKEFONTFILE \READSTRIKEFONTFILE)
(VARS FONTCOMS)
:PREVIOUS-DATE " 9-Feb-2021 11:39:44"
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;1)
:PREVIOUS-DATE "11-Jul-2022 23:05:20"
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;3)
(* ; "
@@ -98,7 +98,7 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
(FUNCTIONS \CREATEKERNELEMENT \FSETLEFTKERN \FGETLEFTKERN)
(CONSTANTS (\MAXNSCHAR 65535]
(COMS (* ; "NS Character specific code")
(FNS \CREATECHARSET)
(FNS \CREATECHARSET \INSTALLCHARSETINFO)
(GLOBALVARS DISPLAYFONTCOERCIONS MISSINGDISPLAYFONTCOERCIONS
MISSINGCHARSETDISPLAYFONTCOERCIONS CHARSETERRORFLG)
(INITVARS (DISPLAYFONTCOERCIONS NIL)
@@ -2425,66 +2425,61 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
(DEFINEQ
(\READSTRIKEFONTFILE
[LAMBDA (STRM FAMILY SIZE FACE) (* ; "Edited 4-Dec-92 12:11 by jds")
[LAMBDA (STRM FAMILY SIZE FACE) (* ; "Edited 12-Jul-2022 09:19 by rmk")
(* ; "Edited 4-Dec-92 12:11 by jds")
(* ;
 "STRM has already been determined to be a vanilla strike-format file.")
 "STRM has already been determined to be a vanilla strike-format file.")
(* ; "returns a charsetinfo")
(COND
((NEQ 2 (GETFILEPTR STRM))
(SETFILEPTR STRM 2)))
(PROG (CSINFO NUMBCODES RW BITMAP OFFSETS FIRSTCHAR LASTCHAR HEIGHT WIDTHS)
(SETQ CSINFO (create CHARSETINFO))
(SETQ FIRSTCHAR (\WIN STRM)) (* ; "minimum ascii code")
(SETQ LASTCHAR (\WIN STRM)) (* ; "maximum ascii code")
(\WIN STRM) (* ;
 "MaxWidth which isn't used by anyone.")
(\WIN STRM) (* ;
 "number of words in this StrikeBody")
(replace (CHARSETINFO CHARSETASCENT) of CSINFO with (\WIN STRM))
(LET (CSINFO NUMBCODES RW BITMAP OFFSETS FIRSTCHAR LASTCHAR HEIGHT WIDTHS)
(SETQ CSINFO (create CHARSETINFO))
(SETQ FIRSTCHAR (\WIN STRM)) (* ; "minimum ascii code")
(SETQ LASTCHAR (\WIN STRM)) (* ; "maximum ascii code")
(\WIN STRM) (* ;
 "MaxWidth which isn't used by anyone.")
(\WIN STRM) (* ;
 "number of words in this StrikeBody")
(replace (CHARSETINFO CHARSETASCENT) of CSINFO with (\WIN STRM))
(* ;
 "ascent in scan lines (=FBBdy+FBBoy)")
(replace (CHARSETINFO CHARSETDESCENT) of CSINFO with (\WIN STRM))
 "ascent in scan lines (=FBBdy+FBBoy)")
(replace (CHARSETINFO CHARSETDESCENT) of CSINFO with (\WIN STRM))
(* ; "descent in scan-lines (=FBBoy)")
(\WIN STRM) (* ;
 "offset in bits (<0 for kerning, else 0, =FBBox)")
(SETQ RW (\WIN STRM)) (* ; "raster width of bitmap")
(\WIN STRM) (* ;
 "offset in bits (<0 for kerning, else 0, =FBBox)")
(SETQ RW (\WIN STRM)) (* ; "raster width of bitmap")
(* ; "height of bitmap")
(* ;; "JDS 12/4/92: Apparently, these fields can be signed values, if all chars, e.g., ride above the base line.")
(* ;; "JDS 12/4/92: Apparently, these fields can be signed values, if all chars, e.g., ride above the base line.")
(SETQ HEIGHT (IPLUS (SIGNED (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
16)
(SIGNED (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO)
16)))
(SETQ BITMAP (BITMAPCREATE (UNFOLD RW BITSPERWORD)
HEIGHT))
(\BINS STRM (fetch BITMAPBASE of BITMAP)
0
(UNFOLD (ITIMES RW HEIGHT)
BYTESPERWORD)) (* ; "read bits into bitmap")
(replace (CHARSETINFO CHARSETBITMAP) of CSINFO with BITMAP)
(SETQ NUMBCODES (IPLUS (IDIFFERENCE LASTCHAR FIRSTCHAR)
3)) (* (SETQ OFFSETS (ARRAY
 (IPLUS \MAXCHAR 3)
 (QUOTE SMALLPOSP) 0 0)))
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
(SETQ HEIGHT (IPLUS (SIGNED (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
16)
(SIGNED (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO)
16)))
(SETQ BITMAP (BITMAPCREATE (UNFOLD RW BITSPERWORD)
HEIGHT))
(\BINS STRM (fetch BITMAPBASE of BITMAP)
0
(UNFOLD (ITIMES RW HEIGHT)
BYTESPERWORD)) (* ; "read bits into bitmap")
(replace (CHARSETINFO CHARSETBITMAP) of CSINFO with BITMAP)
(SETQ NUMBCODES (IPLUS (IDIFFERENCE LASTCHAR FIRSTCHAR)
3)) (* ;
 "(SETQ OFFSETS (ARRAY (IPLUS \MAXCHAR 3) (QUOTE SMALLPOSP) 0 0))")
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
(* ; "initialise the offsets to 0")
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETOFFSET OFFSETS I 0))
(* (AIN OFFSETS FIRSTCHAR NUMBCODES
 STRM))
(for I from FIRSTCHAR as J from 1 to NUMBCODES
do (\FSETOFFSET OFFSETS I (\WIN STRM)))
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETWIDTH WIDTHS I 0))
(* (replace WIDTHS of
 (CHARSETINFO CSINFO) with
 (ARRAY (IPLUS \MAXCHAR 3)
 (QUOTE SMALLPOSP) 0 0)))
(\FONTRESETCHARWIDTHS CSINFO FIRSTCHAR LASTCHAR)
(replace (CHARSETINFO IMAGEWIDTHS) of CSINFO with (fetch (CHARSETINFO
WIDTHS)
of CSINFO))
(RETURN CSINFO])
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETOFFSET OFFSETS I 0))
(* ;
 "(AIN OFFSETS FIRSTCHAR NUMBCODES STRM)")
(for I from FIRSTCHAR as J from 1 to NUMBCODES do (\FSETOFFSET OFFSETS I (\WIN STRM)))
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETWIDTH WIDTHS I 0))
(* ;
 "(replace WIDTHS of (CHARSETINFO CSINFO) with (ARRAY (IPLUS \MAXCHAR 3) (QUOTE SMALLPOSP) 0 0))")
(\FONTRESETCHARWIDTHS CSINFO FIRSTCHAR LASTCHAR)
(replace (CHARSETINFO IMAGEWIDTHS) of CSINFO with (fetch (CHARSETINFO WIDTHS) of CSINFO))
CSINFO])
(\SFMAKEBOLD
[LAMBDA (CSINFO) (* gbn "25-Jul-85 04:52")
@@ -2693,107 +2688,60 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
(DEFINEQ
(WRITESTRIKEFONTFILE
[LAMBDA (FONT CHARSET FILENAME) (* ; "Edited 30-Mar-87 20:25 by FS")
(* ;; "Write strike FILE using info in FONT, AND CHARSET number.")
(* ;; "This code only works if original file was STRIKE. Otherwise, a new CSINFO is dummied up and it is used instead. So, CSINFO when read in might be different than the one written out.")
(PROG (STREAM CSINFO FIRSTCHAR LASTCHAR WIDTHS OFFSETS IMWIDTHS MAXWIDTH RASTERWIDTH LENGTH
DUMMYCHAR DUMMYOFFSET DUMMYINDEX WIDTH OFFSET CODE MAXCODE)
(SETQ MAXCODE 255) (* ; "Max charcode")
(SETQ DUMMYINDEX 256) (* ; "Dummy char marker")
(COND
((NOT (FONTP FONT))
(LISPERROR "ILLEGAL ARG" FONT)))
(COND
((NULL CHARSET)
(SETQ CHARSET 0))
((NOT (AND (IGEQ CHARSET 0)
(ILESSP CHARSET \MAXCHARSET)))
(LISPERROR "ILLEGAL ARG" CHARSET)))
(SETQ CSINFO (STRIKECSINFO (\GETCHARSETINFO CHARSET FONT T)))
[LAMBDA (FONT CHARSET FILE) (* ; "Edited 12-Jul-2022 14:36 by rmk")
(* kbr%: "21-Oct-85 15:08")
(* ;
 "Guarantee its a STRIKE font CSINFO.")
(COND
((NULL CSINFO)
(ERROR "Couldn't find charset " CHARSET)))
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
(SETQ IMWIDTHS (fetch (CHARSETINFO IMAGEWIDTHS) of CSINFO))
(* ;; "Index 256 contains a dummy width; use it's value to determine missing chars")
(SETQ DUMMYOFFSET (\FGETOFFSET OFFSETS DUMMYINDEX))
[SETQ FIRSTCHAR (for I from 0 to MAXCODE
thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
DUMMYOFFSET]
[SETQ LASTCHAR (for I from MAXCODE to 0 by -1
thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
DUMMYOFFSET]
(SETQ DUMMYCHAR (ADD1 LASTCHAR))
[SETQ STREAM (OPENSTREAM FILENAME 'OUTPUT 'NEW '((TYPE BINARY]
(* ;; "")
(* ;; "STRIKE Header")
(* ;; "")
(\WOUT STREAM 32768)
(\WOUT STREAM FIRSTCHAR)
(\WOUT STREAM LASTCHAR)
(SETQ MAXWIDTH 0)
[for I from 0 to DUMMYINDEX do (SETQ MAXWIDTH (IMAX MAXWIDTH
(\FGETWIDTH WIDTHS I]
(\WOUT STREAM MAXWIDTH)
(* ;; "")
(* ;; "STRIKE Body")
(* ;; "")
(* ;; "Length of body")
(SETQ RASTERWIDTH (fetch (BITMAP BITMAPRASTERWIDTH) of (fetch (CHARSETINFO
CHARSETBITMAP)
of CSINFO)))
(SETQ LENGTH (IPLUS 8 (IDIFFERENCE LASTCHAR FIRSTCHAR)
(ITIMES (fetch (FONTDESCRIPTOR \SFHeight) of FONT)
RASTERWIDTH)))
(\WOUT STREAM LENGTH)
(* ;; "Ascent, Descent, Xoffset (no longer used) and Rasterwidth.")
(\WOUT STREAM (fetch (CHARSETINFO CHARSETASCENT) of CSINFO))
(\WOUT STREAM (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO))
(\WOUT STREAM 0) (* ;
 "offset in bits (<0 for kerning, else 0, =FBBox)")
(\WOUT STREAM RASTERWIDTH)
(* ;; "Bitmap")
[\BOUTS STREAM (fetch (BITMAP BITMAPBASE) of (fetch (CHARSETINFO CHARSETBITMAP)
of CSINFO))
0
(ITIMES 2 RASTERWIDTH (IPLUS (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
(fetch (CHARSETINFO CHARSETDESCENT) of CSINFO]
(* ;; "Offsets")
(SETQ CODE 0)
(\WOUT STREAM CODE)
(for I from FIRSTCHAR to DUMMYCHAR
do (SETQ OFFSET (\FGETOFFSET OFFSETS I))
(SETQ WIDTH (\FGETWIDTH WIDTHS I))
[COND
((AND (IEQP OFFSET DUMMYOFFSET)
(NOT (IEQP I DUMMYCHAR))) (* ; "CODE stays the same.")
)
(T (SETQ CODE (IPLUS CODE WIDTH]
(\WOUT STREAM CODE))
(CLOSEF STREAM])
 "Write strike FILE using info in FONT. *")
(CL:UNLESS (FONTP FONT)
(LISPERROR "ILLEGAL ARG" FONT))
(CL:UNLESS CHARSET (SETQ CHARSET 0))
(CL:UNLESS (AND (IGEQ CHARSET 0)
(ILEQ CHARSET \MAXCHARSET))
(LISPERROR "ILLEGAL ARG" CHARSET))
(LET (STREAM CSINFO FIRSTCHAR LASTCHAR WIDTHS MAXWIDTH LENGTH RASTERWIDTH DUMMYCHAR DUMMYOFFSET
PREVIOUSOFFSET OFFSETS)
(SETQ CSINFO (\GETCHARSETINFO CHARSET FONT T))
(CL:UNLESS CSINFO (ERROR "Couldn't find charset " CHARSET))
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
(SETQ DUMMYOFFSET (\FGETOFFSET OFFSETS DUMMYINDEX))
[SETQ FIRSTCHAR (for I from 0 to MAXCODE thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
DUMMYOFFSET]
[SETQ LASTCHAR (for I from MAXCODE to 0 by -1 thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
DUMMYOFFSET]
(SETQ DUMMYCHAR (ADD1 LASTCHAR))
[SETQ STREAM (OPENSTREAM FILE 'OUTPUT 'NEW '((TYPE BINARY]
(\WOUT STREAM 32768) (* ; "STRIKE HEADER. *")
(\WOUT STREAM FIRSTCHAR)
(\WOUT STREAM LASTCHAR)
(SETQ MAXWIDTH 0)
[for I from 0 to DUMMYINDEX do (SETQ MAXWIDTH (IMAX MAXWIDTH (\FGETWIDTH WIDTHS I]
(\WOUT STREAM MAXWIDTH) (* ; "STRIKE BODY. *")
(* ; "Length. *")
(SETQ RASTERWIDTH (fetch (BITMAP BITMAPRASTERWIDTH) of (fetch (CHARSETINFO CHARSETBITMAP)
of CSINFO)))
(SETQ LENGTH (IPLUS 8 (IDIFFERENCE LASTCHAR FIRSTCHAR)
(ITIMES (fetch (FONTDESCRIPTOR \SFHeight) of FONT)
RASTERWIDTH)))
(\WOUT STREAM LENGTH) (* ;
 "Ascent, Descent, Xoffset (no longer used) and Rasterwidth. *")
(\WOUT STREAM (fetch (CHARSETINFO CHARSETASCENT) of CSINFO))
(\WOUT STREAM (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO))
(\WOUT STREAM 0)
(\WOUT STREAM RASTERWIDTH) (* ; "Bitmap. *")
[\BOUTS STREAM (fetch (BITMAP BITMAPBASE) of (fetch (CHARSETINFO CHARSETBITMAP) of CSINFO))
0
(ITIMES 2 RASTERWIDTH (IPLUS (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
(fetch (CHARSETINFO CHARSETDESCENT) of CSINFO]
(* ; "Offsets. *")
(for I WIDTH OFFSET (CODE _ 0) from FIRSTCHAR to DUMMYCHAR first (\WOUT STREAM CODE)
do (SETQ OFFSET (\FGETOFFSET OFFSETS I))
(SETQ WIDTH (\FGETWIDTH WIDTHS I))
(CL:UNLESS (AND (IEQP OFFSET DUMMYOFFSET)
(NOT (IEQP I DUMMYCHAR)))
(ADD CODE WIDTH))
(\WOUT STREAM CODE))
(CLOSEF STREAM])
(STRIKECSINFO
[LAMBDA (CSINFO) (* ; "Edited 27-Apr-89 13:39 by atm")
@@ -3193,45 +3141,56 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
(DEFINEQ
(\CREATECHARSET
[LAMBDA (CHARSET FONT NOSLUG?) (* ; "Edited 8-May-93 23:42 by rmk:")
[LAMBDA (CHARSET FONT NOSLUG?) (* ; "Edited 12-Jul-2022 14:37 by rmk")
(* ; "Edited 8-May-93 23:42 by rmk:")
(* ; "Edited 4-Dec-92 11:43 by jds")
(* ;; "Creates and returns the CHARSETINFO for charset CHARSET in fontdesc FONT, installing it in fonts FONTCHARSETVECTOR")
(* ;
 "NOSLUG? means don't create an empty (slug) csinfo if the charset is not found, just return NIL")
 "NOSLUG? means don't create an empty (slug) csinfo if the charset is not found, just return NIL")
(DECLARE (GLOBALVARS \DISPLAYSTREAMTYPES))
(AND (IGREATERP CHARSET \MAXCHARSET)
(\ILLEGAL.ARG CHARSET))
(PROG [CSINFO (CREATEFN (COND
((FMEMB (FONTPROP FONT 'DEVICE)
\DISPLAYSTREAMTYPES)
(FUNCTION \CREATECHARSET.DISPLAY))
(T (CADR (ASSOC 'CREATECHARSET (CDR (ASSOC (FONTPROP FONT
'DEVICE)
IMAGESTREAMTYPES]
(CL:WHEN (OR (ILESSP CHARSET 0)
(IGREATERP CHARSET \MAXCHARSET))
(\ILLEGAL.ARG CHARSET))
(LET [CSINFO (CREATEFN (COND
((FMEMB (FONTPROP FONT 'DEVICE)
\DISPLAYSTREAMTYPES)
(FUNCTION \CREATECHARSET.DISPLAY))
(T (CADR (ASSOC 'CREATECHARSET (CDR (ASSOC (FONTPROP FONT 'DEVICE)
IMAGESTREAMTYPES]
(* ;; "Create a descriptor of info for that charset, and use it to fill things in.")
(* ;; "Create a descriptor of info for that charset, and use it to fill things in.")
(COND
([NOT (SETQ CSINFO (APPLY CREATEFN (APPEND (FONTPROP FONT 'DEVICESPEC)
(LIST CHARSET FONT NOSLUG?]
(CL:WHEN [SETQ CSINFO (APPLY CREATEFN (APPEND (FONTPROP FONT 'DEVICESPEC)
(LIST CHARSET FONT NOSLUG?]
(* ;
 "the create method returned NIL--NOSLUG? must be T.")
(RETURN NIL)))
(replace \SFAscent of FONT with (IMAX (fetch \SFAscent of FONT)
(SIGNED (fetch CHARSETASCENT
 "the create method did not return NIL--NOSLUG? must be T. ")
(\INSTALLCHARSETINFO FONT CSINFO CHARSET))])
(\INSTALLCHARSETINFO
[LAMBDA (FONT CSINFO CHARSET) (* ; "Edited 12-Jul-2022 15:08 by rmk")
(replace \SFAscent of FONT with (IMAX (fetch \SFAscent of FONT)
(SIGNED (fetch CHARSETASCENT of CSINFO)
16)))
(replace (FONTDESCRIPTOR \SFDescent) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFDescent)
of FONT)
(SIGNED (fetch (CHARSETINFO
CHARSETDESCENT)
of CSINFO)
16)))
(replace \SFDescent of FONT with (IMAX (fetch \SFDescent of FONT)
(SIGNED (ffetch CHARSETDESCENT
of CSINFO)
16)))
(replace \SFHeight of FONT with (IPLUS (fetch \SFAscent of FONT)
(ffetch \SFDescent of FONT)))
(* ;
 "jtm: height = ascent + descent, not (IMAX fontHeight charSetHeight)")
(RETURN (\SETCHARSETINFO (ffetch FONTCHARSETVECTOR of FONT)
CHARSET CSINFO])
 "jtm: height = ascent + descent, not (IMAX fontHeight charSetHeight)")
(replace (FONTDESCRIPTOR \SFHeight) of FONT with (IPLUS (fetch (FONTDESCRIPTOR \SFAscent)
of FONT)
(ffetch (FONTDESCRIPTOR \SFDescent)
of FONT)))
(\SETCHARSETINFO (fetch (FONTDESCRIPTOR FONTCHARSETVECTOR) of FONT)
CHARSET CSINFO)
(* ;; "\AVGCHARWIDTH has to be confused after the CSINFO is stuck in.")
(replace (FONTDESCRIPTOR FONTAVGCHARWIDTH) of FONT with (\AVGCHARWIDTH FONT))
CSINFO])
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -3348,30 +3307,30 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
(PUTPROPS FONT COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1989
1990 1991 1992 1993 1994 1999 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (8745 18264 (CHARWIDTH 8755 . 9540) (CHARWIDTHY 9542 . 10912) (STRINGWIDTH 10914 . 12007
) (\CHARWIDTH.DISPLAY 12009 . 12422) (\STRINGWIDTH.DISPLAY 12424 . 12848) (\STRINGWIDTH.GENERIC 12850
. 18262)) (18265 24647 (DEFAULTFONT 18275 . 20108) (FONTCLASS 20110 . 22272) (FONTCLASSUNPARSE 22274
. 23173) (FONTCLASSCOMPONENT 23175 . 23684) (SETFONTCLASSCOMPONENT 23686 . 24645)) (25321 38053 (
FONTCREATE 25331 . 34598) (\FONT.SYMBOLMEMB 34600 . 34830) (\FONT.SYMBOLASSOC 34832 . 35990) (
\FONT.COMPARESYMBOL 35992 . 38051)) (38092 42716 (FONTASCENT 38102 . 38270) (FONTDESCENT 38272 . 38541
) (FONTHEIGHT 38543 . 38729) (FONTPROP 38731 . 42174) (\AVGCHARWIDTH 42176 . 42714)) (42763 55402 (
GETCHARBITMAP 42773 . 45663) (PUTCHARBITMAP 45665 . 53722) (MOVECHARBITMAP 53724 . 55400)) (55403
139942 (FONTCOPY 55413 . 60721) (FONTSAVAILABLE 60723 . 65928) (FONTFILEFORMAT 65930 . 67554) (FONTP
67556 . 67855) (FONTUNPARSE 67857 . 70421) (SETFONTDESCRIPTOR 70423 . 72132) (CHARCODEP 72134 . 72495)
(EDITCHAR 72497 . 72926) (\STREAMCHARWIDTH 72928 . 77092) (\UNITWIDTHSVECTOR 77094 . 77457) (
\CREATEDISPLAYFONT 77459 . 78212) (\CREATECHARSET.DISPLAY 78214 . 81130) (\CREATE-REAL-CHARSET.DISPLAY
81132 . 88036) (\BUILDSLUGCSINFO 88038 . 89481) (\SEARCHDISPLAYFONTFILES 89483 . 91416) (
\SEARCHFONTFILES 91418 . 94729) (\FINDFONTFILE 94731 . 95922) (\FONTSYMBOL 95924 . 96574) (
\DEVICESYMBOL 96576 . 97445) (\FONTFACE 97447 . 104637) (\FONTFACE.COLOR 104639 . 111559) (
\FONTFILENAME 111561 . 114976) (\FONTFILENAME.OLD 114978 . 117927) (\FONTFILENAME.NEW 117929 . 120186)
(\FONTINFOFROMFILENAME 120188 . 123302) (\FONTINFOFROMFILENAME.OLD 123304 . 125581) (\GETFONTDESC
125583 . 125974) (\COERCEFONTDESC 125976 . 131361) (\LOOKUPFONT 131363 . 132707) (\LOOKUPFONTSINCORE
132709 . 134782) (\READDISPLAYFONTFILE 134784 . 139940)) (140845 157895 (\READSTRIKEFONTFILE 140855 .
145383) (\SFMAKEBOLD 145385 . 147781) (\SFMAKEITALIC 147783 . 150686) (\SFMAKEROTATEDFONT 150688 .
152089) (\SFROTATECSINFO 152091 . 152728) (\SFROTATEFONTCHARACTERS 152730 . 153110) (
\SFFIXOFFSETSAFTERROTATION 153112 . 155251) (\SFROTATECSINFOOFFSETS 155253 . 156522) (\SFMAKECOLOR
156524 . 157893)) (157896 166207 (WRITESTRIKEFONTFILE 157906 . 162747) (STRIKECSINFO 162749 . 166205))
(180252 180415 (\CREATEKERNELEMENT 180252 . 180415)) (180417 180545 (\FSETLEFTKERN 180417 . 180545))
(180547 180641 (\FGETLEFTKERN 180547 . 180641)) (180810 183666 (\CREATECHARSET 180820 . 183664)) (
184821 186573 (\FONTRESETCHARWIDTHS 184831 . 186571)))))
(FILEMAP (NIL (8812 18331 (CHARWIDTH 8822 . 9607) (CHARWIDTHY 9609 . 10979) (STRINGWIDTH 10981 . 12074
) (\CHARWIDTH.DISPLAY 12076 . 12489) (\STRINGWIDTH.DISPLAY 12491 . 12915) (\STRINGWIDTH.GENERIC 12917
. 18329)) (18332 24714 (DEFAULTFONT 18342 . 20175) (FONTCLASS 20177 . 22339) (FONTCLASSUNPARSE 22341
. 23240) (FONTCLASSCOMPONENT 23242 . 23751) (SETFONTCLASSCOMPONENT 23753 . 24712)) (25388 38120 (
FONTCREATE 25398 . 34665) (\FONT.SYMBOLMEMB 34667 . 34897) (\FONT.SYMBOLASSOC 34899 . 36057) (
\FONT.COMPARESYMBOL 36059 . 38118)) (38159 42783 (FONTASCENT 38169 . 38337) (FONTDESCENT 38339 . 38608
) (FONTHEIGHT 38610 . 38796) (FONTPROP 38798 . 42241) (\AVGCHARWIDTH 42243 . 42781)) (42830 55469 (
GETCHARBITMAP 42840 . 45730) (PUTCHARBITMAP 45732 . 53789) (MOVECHARBITMAP 53791 . 55467)) (55470
140009 (FONTCOPY 55480 . 60788) (FONTSAVAILABLE 60790 . 65995) (FONTFILEFORMAT 65997 . 67621) (FONTP
67623 . 67922) (FONTUNPARSE 67924 . 70488) (SETFONTDESCRIPTOR 70490 . 72199) (CHARCODEP 72201 . 72562)
(EDITCHAR 72564 . 72993) (\STREAMCHARWIDTH 72995 . 77159) (\UNITWIDTHSVECTOR 77161 . 77524) (
\CREATEDISPLAYFONT 77526 . 78279) (\CREATECHARSET.DISPLAY 78281 . 81197) (\CREATE-REAL-CHARSET.DISPLAY
81199 . 88103) (\BUILDSLUGCSINFO 88105 . 89548) (\SEARCHDISPLAYFONTFILES 89550 . 91483) (
\SEARCHFONTFILES 91485 . 94796) (\FINDFONTFILE 94798 . 95989) (\FONTSYMBOL 95991 . 96641) (
\DEVICESYMBOL 96643 . 97512) (\FONTFACE 97514 . 104704) (\FONTFACE.COLOR 104706 . 111626) (
\FONTFILENAME 111628 . 115043) (\FONTFILENAME.OLD 115045 . 117994) (\FONTFILENAME.NEW 117996 . 120253)
(\FONTINFOFROMFILENAME 120255 . 123369) (\FONTINFOFROMFILENAME.OLD 123371 . 125648) (\GETFONTDESC
125650 . 126041) (\COERCEFONTDESC 126043 . 131428) (\LOOKUPFONT 131430 . 132774) (\LOOKUPFONTSINCORE
132776 . 134849) (\READDISPLAYFONTFILE 134851 . 140007)) (140912 157636 (\READSTRIKEFONTFILE 140922 .
145124) (\SFMAKEBOLD 145126 . 147522) (\SFMAKEITALIC 147524 . 150427) (\SFMAKEROTATEDFONT 150429 .
151830) (\SFROTATECSINFO 151832 . 152469) (\SFROTATEFONTCHARACTERS 152471 . 152851) (
\SFFIXOFFSETSAFTERROTATION 152853 . 154992) (\SFROTATECSINFOOFFSETS 154994 . 156263) (\SFMAKECOLOR
156265 . 157634)) (157637 164890 (WRITESTRIKEFONTFILE 157647 . 161430) (STRIKECSINFO 161432 . 164888))
(178935 179098 (\CREATEKERNELEMENT 178935 . 179098)) (179100 179228 (\FSETLEFTKERN 179100 . 179228))
(179230 179324 (\FGETLEFTKERN 179230 . 179324)) (179493 183003 (\CREATECHARSET 179503 . 181254) (
\INSTALLCHARSETINFO 181256 . 183001)) (184158 185910 (\FONTRESETCHARWIDTHS 184168 . 185908)))))
STOP

Binary file not shown.