READ-BDF initial changes for XCCS to MCCS (#2360)
* Verbose mode (READ-BDF) was implemented incorrectly - fixed * Cleanup DEFPACKAGE in source file using :IMPORT-FROM, and fewer imports. * Various renaming for consistency with XCCS -> MCCS changes. * Use IL:FONTSPEC record instead of using FIRST, SECOND, etc. * Fix the parsing of IL:FONTSPEC to use COMPRESSED instead of incorrect CONDENSED. * Zero-width "image" with zero-width "escapement" GLYPHS now get put into NOMAPPINGCHARSET. * Add (FILES (SYSLOAD) SYSEDIT) under existing (DECLARE: EVAL@COMPILE DONTCOPY ...)
This commit is contained in:
@@ -1,17 +1,19 @@
|
|||||||
(DEFINE-FILE-INFO PACKAGE (DEFPACKAGE "BDF" (USE "XCL" "LISP") (EXPORT "READ-BDF"
|
(DEFINE-FILE-INFO PACKAGE (DEFPACKAGE "BDF" (USE "XCL" "LISP") (EXPORT "READ-BDF"
|
||||||
"WRITE-BDF-TO-DISPLAYFONT-FILES") (IMPORT \AVGCHARWIDTH \FGETWIDTH \FONTFACE \FONTFILENAME
|
"WRITE-BDF-TO-DISPLAYFONT-FILES") (IMPORT-FROM "IL" "BITBLT" "BITMAPCREATE" "BITMAPHEIGHT"
|
||||||
\FSETOFFSET \FSETWIDTH \FONTSYMBOL \GETSTREAM \INSTALLCHARSETINFO \PUTBASE BITBLT BITMAPCREATE
|
"BITMAPWIDTH" "BLACKSHADE" "BLTSHADE" "BOLD" "COMPRESSED" "CHARSETINFO" "DISPLAY" "FONTDESCRIPTOR"
|
||||||
BITMAPHEIGHT BITMAPWIDTH BLACKSHADE BLTSHADE BOLD CONDENSED CHARSETINFO DISPLAY FONTDESCRIPTOR FONTP
|
"FONTP" "FONTPROP" "INPUT" "ITALIC" "LIGHT" "LRSH" "MEDIUM" "REGULAR" "TCONC" "UTOMCODE" "UTOMCODE?"
|
||||||
FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITESTRIKEFONTFILE))
|
"WRITESTRIKEFONTFILE")) READTABLE "XCL" BASE 10)
|
||||||
READTABLE "XCL" BASE 10)
|
|
||||||
|
|
||||||
(IL:FILECREATED "30-Apr-2025 13:20:10" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;61| 47500
|
(IL:FILECREATED " 6-Nov-2025 23:10:51" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;13| 49101
|
||||||
|
|
||||||
:EDIT-BY "mth"
|
:EDIT-BY "mth"
|
||||||
|
|
||||||
:CHANGES-TO (IL:FUNCTIONS GET-FAMILY-FACE-SIZE-FROM-NAME)
|
:CHANGES-TO (IL:FUNCTIONS BDF-TO-FONTDESCRIPTOR BDF-TO-CHARSETINFO READ-GLYPH
|
||||||
|
WRITE-BDF-TO-DISPLAYFONT-FILES)
|
||||||
|
(FILE-ENVIRONMENTS "READ-BDF")
|
||||||
|
(IL:VARS IL:READ-BDFCOMS)
|
||||||
|
|
||||||
:PREVIOUS-DATE "25-Apr-2025 10:10:08" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;60|
|
:PREVIOUS-DATE " 6-Nov-2025 22:43:21" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;9|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -23,8 +25,10 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(IL:FUNCTIONS BDF-TO-CHARSETINFO BDF-TO-FONTDESCRIPTOR GET-FAMILY-FACE-SIZE-FROM-NAME
|
(IL:FUNCTIONS BDF-TO-CHARSETINFO BDF-TO-FONTDESCRIPTOR GET-FAMILY-FACE-SIZE-FROM-NAME
|
||||||
GLYPHS-BY-CHARSET PACKFILENAME.STRING READ-BDF READ-DELIMITED-LIST-FROM-STRING
|
GLYPHS-BY-CHARSET PACKFILENAME.STRING READ-BDF READ-DELIMITED-LIST-FROM-STRING
|
||||||
READ-GLYPH SPLIT-FONT-NAME WRITE-BDF-TO-DISPLAYFONT-FILES)
|
READ-GLYPH SPLIT-FONT-NAME WRITE-BDF-TO-DISPLAYFONT-FILES)
|
||||||
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY (IL:FILES (IL:LOADCOMP)
|
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY (IL:FILES (IL:SYSLOAD)
|
||||||
IL:FONT))
|
IL:SYSEDIT)
|
||||||
|
(IL:FILES (IL:LOADCOMP)
|
||||||
|
IL:FONT))
|
||||||
(FILE-ENVIRONMENTS "READ-BDF")
|
(FILE-ENVIRONMENTS "READ-BDF")
|
||||||
(IL:PROP (IL:DATABASE)
|
(IL:PROP (IL:DATABASE)
|
||||||
IL:READ-BDF)))
|
IL:READ-BDF)))
|
||||||
@@ -40,10 +44,10 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(SLUG NIL :TYPE GLYPH))
|
(SLUG NIL :TYPE GLYPH))
|
||||||
|
|
||||||
(DEFSTRUCT GLYPH
|
(DEFSTRUCT GLYPH
|
||||||
"This is an individual BDF glyph. Includes some values calculted for creating CHARSETINFO"
|
"This is an individual BDF glyph. Includes some values calculated for creating CHARSETINFO"
|
||||||
(NAME NIL :TYPE STRING)
|
(NAME NIL :TYPE STRING)
|
||||||
ENCODING SWIDTH DWIDTH SWIDTH1 DWIDTH1 VVECTOR BBW BBH BBXOFF0 BBYOFF0 BITMAP
|
ENCODING SWIDTH DWIDTH SWIDTH1 DWIDTH1 VVECTOR BBW BBH BBXOFF0 BBYOFF0 BITMAP
|
||||||
(XCODE 0 :TYPE INTEGER)
|
(MCODE 0 :TYPE INTEGER)
|
||||||
(WIDTH 0 :TYPE INTEGER)
|
(WIDTH 0 :TYPE INTEGER)
|
||||||
(ASCENT 0 :TYPE INTEGER)
|
(ASCENT 0 :TYPE INTEGER)
|
||||||
(DESCENT 0 :TYPE INTEGER))
|
(DESCENT 0 :TYPE INTEGER))
|
||||||
@@ -55,6 +59,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(DEFCONSTANT NOMAPPINGCHARSET (1+ MAXCHARSET))
|
(DEFCONSTANT NOMAPPINGCHARSET (1+ MAXCHARSET))
|
||||||
|
|
||||||
(DEFUN BDF-TO-CHARSETINFO (FONT CSET SLUG-OR-WIDTH &OPTIONAL MAP-UNKNOWN-TO-PRIVATE)
|
(DEFUN BDF-TO-CHARSETINFO (FONT CSET SLUG-OR-WIDTH &OPTIONAL MAP-UNKNOWN-TO-PRIVATE)
|
||||||
|
(IL:* IL:\; "Edited 6-Nov-2025 17:30 by mth")
|
||||||
(IL:* IL:\; "Edited 23-Apr-2025 17:53 by mth")
|
(IL:* IL:\; "Edited 23-Apr-2025 17:53 by mth")
|
||||||
(IL:* IL:\; "Edited 21-Apr-2025 16:23 by mth")
|
(IL:* IL:\; "Edited 21-Apr-2025 16:23 by mth")
|
||||||
(IL:* IL:\; "Edited 30-Jan-2025 16:40 by mth")
|
(IL:* IL:\; "Edited 30-Jan-2025 16:40 by mth")
|
||||||
@@ -98,7 +103,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
((INTEGERP SLUG-OR-WIDTH)
|
((INTEGERP SLUG-OR-WIDTH)
|
||||||
(SETQ SLUGWIDTH SLUG-OR-WIDTH))
|
(SETQ SLUGWIDTH SLUG-OR-WIDTH))
|
||||||
(T (ERROR "Invalid SLUG-OR-WIDTH: ~S" SLUG-OR-WIDTH)))
|
(T (ERROR "Invalid SLUG-OR-WIDTH: ~S" SLUG-OR-WIDTH)))
|
||||||
(SETQ CSGLYPHS (LOOP :FOR XGL :IN CSGLYPHS :COLLECT (LET* ((XCODE (CAR XGL))
|
(SETQ CSGLYPHS (LOOP :FOR XGL :IN CSGLYPHS :COLLECT (LET* ((MCODE (CAR XGL))
|
||||||
(GL (CDR XGL))
|
(GL (CDR XGL))
|
||||||
(GWIDTH (GLYPH-WIDTH
|
(GWIDTH (GLYPH-WIDTH
|
||||||
GL))
|
GL))
|
||||||
@@ -112,13 +117,13 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
|
|
||||||
"Is the above statement actually true?")
|
"Is the above statement actually true?")
|
||||||
|
|
||||||
(SETF (GLYPH-XCODE GL)
|
(SETF (GLYPH-MCODE GL)
|
||||||
XCODE)
|
MCODE)
|
||||||
(SETQ FIRSTCHAR
|
(SETQ FIRSTCHAR
|
||||||
(MIN FIRSTCHAR XCODE
|
(MIN FIRSTCHAR MCODE
|
||||||
))
|
))
|
||||||
(SETQ LASTCHAR
|
(SETQ LASTCHAR
|
||||||
(MAX LASTCHAR XCODE)
|
(MAX LASTCHAR MCODE)
|
||||||
)
|
)
|
||||||
(INCF TOTAL-WIDTH GWIDTH)
|
(INCF TOTAL-WIDTH GWIDTH)
|
||||||
(SETQ ASCENT
|
(SETQ ASCENT
|
||||||
@@ -133,13 +138,13 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(IL:* IL:|;;|
|
(IL:* IL:|;;|
|
||||||
"Initialize the offsets to the TOTAL-WIDTH (without the SLUG. It will be added later)")
|
"Initialize the offsets to the TOTAL-WIDTH (without the SLUG. It will be added later)")
|
||||||
|
|
||||||
(IL:|for| I IL:|from| 0 IL:|to| (+ MAXTHINCHAR 2) IL:|do| (\\FSETOFFSET OFFSETS I
|
(IL:|for| I IL:|from| 0 IL:|to| (+ MAXTHINCHAR 2) IL:|do| (IL:\\FSETOFFSET OFFSETS I
|
||||||
TOTAL-WIDTH))
|
TOTAL-WIDTH))
|
||||||
(SETQ WIDTHS (IL:|fetch| (CHARSETINFO IL:WIDTHS) IL:|of| CSINFO))
|
(SETQ WIDTHS (IL:|fetch| (CHARSETINFO IL:WIDTHS) IL:|of| CSINFO))
|
||||||
|
|
||||||
(IL:* IL:|;;| "Initialize the widths to SLUGWIDTH")
|
(IL:* IL:|;;| "Initialize the widths to SLUGWIDTH")
|
||||||
|
|
||||||
(IL:|for| I IL:|from| 0 IL:|to| (+ MAXTHINCHAR 2) IL:|do| (\\FSETWIDTH WIDTHS I
|
(IL:|for| I IL:|from| 0 IL:|to| (+ MAXTHINCHAR 2) IL:|do| (IL:\\FSETWIDTH WIDTHS I
|
||||||
SLUGWIDTH))
|
SLUGWIDTH))
|
||||||
(IL:|replace| (CHARSETINFO IL:IMAGEWIDTHS) IL:|of| CSINFO IL:|with| WIDTHS)
|
(IL:|replace| (CHARSETINFO IL:IMAGEWIDTHS) IL:|of| CSINFO IL:|with| WIDTHS)
|
||||||
|
|
||||||
@@ -151,19 +156,19 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(SETQ BMAP (BITMAPCREATE (+ TOTAL-WIDTH SLUGWIDTH)
|
(SETQ BMAP (BITMAPCREATE (+ TOTAL-WIDTH SLUGWIDTH)
|
||||||
HEIGHT 1))
|
HEIGHT 1))
|
||||||
(IL:|replace| (CHARSETINFO IL:CHARSETBITMAP) IL:|of| CSINFO IL:|with| BMAP)
|
(IL:|replace| (CHARSETINFO IL:CHARSETBITMAP) IL:|of| CSINFO IL:|with| BMAP)
|
||||||
(LOOP :FOR GL :IN CSGLYPHS :WITH GLBM :WITH GLW :WITH XCODE :DO (SETQ GLBM
|
(LOOP :FOR GL :IN CSGLYPHS :WITH GLBM :WITH GLW :WITH MCODE :DO (SETQ GLBM
|
||||||
(GLYPH-BITMAP
|
(GLYPH-BITMAP
|
||||||
GL))
|
GL))
|
||||||
(SETQ GLW (GLYPH-WIDTH GL))
|
(SETQ GLW (GLYPH-WIDTH GL))
|
||||||
(SETQ XCODE (GLYPH-XCODE GL))
|
(SETQ MCODE (GLYPH-MCODE GL))
|
||||||
(BITBLT GLBM 0 0 BMAP (+ DLEFT (MAX 0 (GLYPH-BBXOFF0 GL)))
|
(BITBLT GLBM 0 0 BMAP (+ DLEFT (MAX 0 (GLYPH-BBXOFF0 GL)))
|
||||||
(+ DESCENT (GLYPH-BBYOFF0 GL))
|
(+ DESCENT (GLYPH-BBYOFF0 GL))
|
||||||
(BITMAPWIDTH GLBM)
|
(BITMAPWIDTH GLBM)
|
||||||
(BITMAPHEIGHT GLBM)
|
(BITMAPHEIGHT GLBM)
|
||||||
'INPUT
|
'INPUT
|
||||||
'IL:REPLACE)
|
'IL:REPLACE)
|
||||||
(\\FSETOFFSET OFFSETS XCODE DLEFT)
|
(IL:\\FSETOFFSET OFFSETS MCODE DLEFT)
|
||||||
(\\FSETOFFSET WIDTHS XCODE GLW)
|
(IL:\\FSETOFFSET WIDTHS MCODE GLW)
|
||||||
(INCF DLEFT GLW))
|
(INCF DLEFT GLW))
|
||||||
|
|
||||||
(IL:* IL:|;;| "Now insert the SLUG glyph into the BMAP, or make a slug (block)")
|
(IL:* IL:|;;| "Now insert the SLUG glyph into the BMAP, or make a slug (block)")
|
||||||
@@ -185,6 +190,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
|
|
||||||
(DEFUN BDF-TO-FONTDESCRIPTOR (BDFONT FAMILY SIZE FACE ROTATION DEVICE &OPTIONAL
|
(DEFUN BDF-TO-FONTDESCRIPTOR (BDFONT FAMILY SIZE FACE ROTATION DEVICE &OPTIONAL
|
||||||
MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING)
|
MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING)
|
||||||
|
(IL:* IL:\; "Edited 5-Nov-2025 16:09 by mth")
|
||||||
(IL:* IL:\; "Edited 21-Apr-2025 16:03 by mth")
|
(IL:* IL:\; "Edited 21-Apr-2025 16:03 by mth")
|
||||||
(IL:* IL:\; "Edited 30-Jan-2025 21:27 by mth")
|
(IL:* IL:\; "Edited 30-Jan-2025 21:27 by mth")
|
||||||
(WHEN (AND (BDF-FONT-P BDFONT)
|
(WHEN (AND (BDF-FONT-P BDFONT)
|
||||||
@@ -200,18 +206,22 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(OR DEVICE (FONTPROP FAMILY 'IL:DEVICE))
|
(OR DEVICE (FONTPROP FAMILY 'IL:DEVICE))
|
||||||
MAP-UNKNOWN-TO-PRIVATE)))
|
MAP-UNKNOWN-TO-PRIVATE)))
|
||||||
(WHEN (LISTP FAMILY)
|
(WHEN (LISTP FAMILY)
|
||||||
(RETURN (BDF-TO-FONTDESCRIPTOR BDFONT (FIRST FAMILY)
|
|
||||||
(OR (SECOND FAMILY)
|
(IL:* IL:|;;| "Assume this is a FONTSPEC")
|
||||||
|
|
||||||
|
(RETURN (BDF-TO-FONTDESCRIPTOR BDFONT (IL:|fetch| (IL:FONTSPEC IL:FSFAMILY)
|
||||||
|
IL:|of| FAMILY)
|
||||||
|
(OR (IL:|fetch| (IL:FONTSPEC IL:FSSIZE) IL:|of| FAMILY)
|
||||||
SIZE)
|
SIZE)
|
||||||
(OR (THIRD FAMILY)
|
(OR (IL:|fetch| (IL:FONTSPEC IL:FSFACE) IL:|of| FAMILY)
|
||||||
FACE "MRR")
|
FACE "MRR")
|
||||||
(OR (FOURTH FAMILY)
|
(OR (IL:|fetch| (IL:FONTSPEC IL:FSROTATION) IL:|of| FAMILY)
|
||||||
ROTATION 0)
|
ROTATION 0)
|
||||||
(OR (FIFTH FAMILY)
|
(OR (IL:|fetch| (IL:FONTSPEC IL:FSDEVICE) IL:|of| FAMILY)
|
||||||
DEVICE
|
DEVICE
|
||||||
'DISPLAY)
|
'DISPLAY)
|
||||||
MAP-UNKNOWN-TO-PRIVATE)))
|
MAP-UNKNOWN-TO-PRIVATE)))
|
||||||
(SETQ FAMILY (\\FONTSYMBOL FAMILY))
|
(SETQ FAMILY (IL:\\FONTSYMBOL FAMILY))
|
||||||
(UNLESS (AND (INTEGERP SIZE)
|
(UNLESS (AND (INTEGERP SIZE)
|
||||||
(PLUSP SIZE))
|
(PLUSP SIZE))
|
||||||
(ERROR "Invalid SIZE: ~S~%" SIZE))
|
(ERROR "Invalid SIZE: ~S~%" SIZE))
|
||||||
@@ -236,7 +246,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(INTERN (STRING-UPCASE DEVICE)
|
(INTERN (STRING-UPCASE DEVICE)
|
||||||
"IL"))
|
"IL"))
|
||||||
(T (IL:\\ILLEGAL.ARG DEVICE))))
|
(T (IL:\\ILLEGAL.ARG DEVICE))))
|
||||||
(SETQ FACE (\\FONTFACE FACE NIL DEV))
|
(SETQ FACE (IL:\\FONTFACE FACE NIL DEV))
|
||||||
(SETQ GBCSL (GLYPHS-BY-CHARSET BDFONT MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING))
|
(SETQ GBCSL (GLYPHS-BY-CHARSET BDFONT MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING))
|
||||||
(UNLESS SLUGWIDTH
|
(UNLESS SLUGWIDTH
|
||||||
|
|
||||||
@@ -268,15 +278,16 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
GBCS CSET (OR SLUG (1+
|
GBCS CSET (OR SLUG (1+
|
||||||
SLUGWIDTH
|
SLUGWIDTH
|
||||||
))))
|
))))
|
||||||
(\\INSTALLCHARSETINFO FONTDESC CSINFO CSET)
|
(IL:\\INSTALLCHARSETINFO FONTDESC CSINFO CSET
|
||||||
|
)
|
||||||
(LIST CSET)))))
|
(LIST CSET)))))
|
||||||
(LIST FONTDESC CHARSETS))))
|
(LIST FONTDESC CHARSETS))))
|
||||||
(RETURN (VALUES-LIST (NCONC (GBCS-TO-FONTDESC (FIRST GBCSL)
|
(RETURN (VALUES-LIST (NCONC (GBCS-TO-FONTDESC (FIRST GBCSL)
|
||||||
FAMILY)
|
FAMILY)
|
||||||
(GBCS-TO-FONTDESC (SECOND GBCSL)
|
(GBCS-TO-FONTDESC (SECOND GBCSL)
|
||||||
(\\FONTSYMBOL (CONCATENATE 'STRING
|
(IL:\\FONTSYMBOL (CONCATENATE 'STRING
|
||||||
(SYMBOL-NAME FAMILY)
|
(SYMBOL-NAME FAMILY)
|
||||||
"-UNMAPPED")))
|
"-UNMAPPED")))
|
||||||
(LIST (ASSOC NOMAPPINGCHARSET (FIRST GBCSL)
|
(LIST (ASSOC NOMAPPINGCHARSET (FIRST GBCSL)
|
||||||
:TEST
|
:TEST
|
||||||
#'EQL)))))))))
|
#'EQL)))))))))
|
||||||
@@ -311,8 +322,8 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
'((#\R . REGULAR)
|
'((#\R . REGULAR)
|
||||||
(#\N . REGULAR)
|
(#\N . REGULAR)
|
||||||
(#\B . BOLD)
|
(#\B . BOLD)
|
||||||
(#\S . CONDENSED)
|
(#\S . COMPRESSED)
|
||||||
(#\C . CONDENSED)))))
|
(#\C . COMPRESSED)))))
|
||||||
'REGULAR)) (IL:* IL:\;
|
'REGULAR)) (IL:* IL:\;
|
||||||
"S is for \"SemiCondensed\", Assuming \"Condensed\"")
|
"S is for \"SemiCondensed\", Assuming \"Condensed\"")
|
||||||
|
|
||||||
@@ -336,17 +347,19 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(FIRST (BF-SIZE BDFONT))))))
|
(FIRST (BF-SIZE BDFONT))))))
|
||||||
|
|
||||||
(DEFUN GLYPHS-BY-CHARSET (FONT &OPTIONAL MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING)
|
(DEFUN GLYPHS-BY-CHARSET (FONT &OPTIONAL MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING)
|
||||||
|
(IL:* IL:\; "Edited 6-Nov-2025 18:11 by mth")
|
||||||
|
(IL:* IL:\; "Edited 5-Nov-2025 16:18 by mth")
|
||||||
(IL:* IL:\; "Edited 21-Apr-2025 15:48 by mth")
|
(IL:* IL:\; "Edited 21-Apr-2025 15:48 by mth")
|
||||||
(IL:* IL:\; "Edited 9-Jan-2025 11:23 by mth")
|
(IL:* IL:\; "Edited 9-Jan-2025 11:23 by mth")
|
||||||
(LET* ((NCSETS (+ MAXCHARSET 2))
|
(LET* ((NCSETS (+ MAXCHARSET 2))
|
||||||
(CSETS (MAKE-ARRAY NCSETS :INITIAL-CONTENTS (LOOP :REPEAT NCSETS :COLLECT (CONS NIL))))
|
(CSETS (MAKE-ARRAY NCSETS :INITIAL-CONTENTS (LOOP :REPEAT NCSETS :COLLECT (CONS NIL))))
|
||||||
(UTOXFN (COND
|
(UTOMFN (COND
|
||||||
(RAW-UNICODE-MAPPING #'IDENTITY)
|
(RAW-UNICODE-MAPPING #'IDENTITY)
|
||||||
(MAP-UNKNOWN-TO-PRIVATE #'UTOXCODE)
|
(MAP-UNKNOWN-TO-PRIVATE #'UTOMCODE)
|
||||||
(T #'UTOXCODE?)))
|
(T #'UTOMCODE?)))
|
||||||
(SLUG (BF-SLUG FONT))
|
(SLUG (BF-SLUG FONT))
|
||||||
(SLUGWIDTH (AND SLUG (GLYPH-WIDTH SLUG)))
|
(SLUGWIDTH (AND SLUG (GLYPH-WIDTH SLUG)))
|
||||||
NOMAPPINGCSETS ENC XCODE XCS)
|
NOMAPPINGCSETS ENC MCODE MCS)
|
||||||
(UNLESS (OR MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING)
|
(UNLESS (OR MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING)
|
||||||
(SETQ NOMAPPINGCSETS (MAKE-ARRAY NCSETS :INITIAL-CONTENTS (LOOP :REPEAT NCSETS :COLLECT
|
(SETQ NOMAPPINGCSETS (MAKE-ARRAY NCSETS :INITIAL-CONTENTS (LOOP :REPEAT NCSETS :COLLECT
|
||||||
(CONS NIL)))))
|
(CONS NIL)))))
|
||||||
@@ -358,7 +371,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
:UNLESS
|
:UNLESS
|
||||||
(EQ GL SLUG)
|
(EQ GL SLUG)
|
||||||
:DO
|
:DO
|
||||||
(SETQ XCS NIL)
|
(SETQ MCS NIL)
|
||||||
(SETQ ENC (GLYPH-ENCODING GL))
|
(SETQ ENC (GLYPH-ENCODING GL))
|
||||||
(WHEN (LISTP ENC)
|
(WHEN (LISTP ENC)
|
||||||
|
|
||||||
@@ -372,9 +385,9 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
"The -1 case of the (OR ...) shouldn't happen. The (EQ GL SLUG) test above should have caught it")
|
"The -1 case of the (OR ...) shouldn't happen. The (EQ GL SLUG) test above should have caught it")
|
||||||
|
|
||||||
)
|
)
|
||||||
(SETQ XCODE (AND (INTEGERP ENC)
|
(SETQ MCODE (AND (INTEGERP ENC)
|
||||||
(PLUSP ENC)
|
(PLUSP ENC)
|
||||||
(FUNCALL UTOXFN ENC)))
|
(FUNCALL UTOMFN ENC)))
|
||||||
(IF RAW-UNICODE-MAPPING
|
(IF RAW-UNICODE-MAPPING
|
||||||
(COND
|
(COND
|
||||||
((> ENC 65535)
|
((> ENC 65535)
|
||||||
@@ -394,7 +407,15 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(CONS ENC GL)))
|
(CONS ENC GL)))
|
||||||
(T (PUT-GLYPH-IN-CHARSET-ARRAY ENC GL CSETS)))
|
(T (PUT-GLYPH-IN-CHARSET-ARRAY ENC GL CSETS)))
|
||||||
(COND
|
(COND
|
||||||
((NULL XCODE)
|
((AND (ZEROP (GLYPH-BBW GL))
|
||||||
|
(ZEROP (FIRST (GLYPH-DWIDTH GL))))
|
||||||
|
|
||||||
|
(IL:* IL:|;;|
|
||||||
|
"This has zero-width \"image\" with zero-width \"escapement\", put it in the NOMAPPINGCHARSET")
|
||||||
|
|
||||||
|
(TCONC (AREF CSETS NOMAPPINGCHARSET)
|
||||||
|
(CONS ENC GL)))
|
||||||
|
((NULL MCODE)
|
||||||
|
|
||||||
(IL:* IL:|;;| "These assoc with the Unicode encoding")
|
(IL:* IL:|;;| "These assoc with the Unicode encoding")
|
||||||
|
|
||||||
@@ -408,37 +429,37 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(TCONC (AREF CSETS NOMAPPINGCHARSET)
|
(TCONC (AREF CSETS NOMAPPINGCHARSET)
|
||||||
(CONS ENC GL)))
|
(CONS ENC GL)))
|
||||||
(T (PUT-GLYPH-IN-CHARSET-ARRAY ENC GL NOMAPPINGCSETS))))
|
(T (PUT-GLYPH-IN-CHARSET-ARRAY ENC GL NOMAPPINGCSETS))))
|
||||||
((AND (INTEGERP XCODE)
|
((AND (INTEGERP MCODE)
|
||||||
(<= 0 XCODE 65535))
|
(<= 0 MCODE 65535))
|
||||||
|
|
||||||
(IL:* IL:|;;|
|
(IL:* IL:|;;|
|
||||||
"These assoc with the 8 bit character code within the charset")
|
"These assoc with the 8 bit character code within the charset")
|
||||||
|
|
||||||
(PUT-GLYPH-IN-CHARSET-ARRAY XCODE GL CSETS)
|
(PUT-GLYPH-IN-CHARSET-ARRAY MCODE GL CSETS)
|
||||||
|
|
||||||
(IL:* IL:|;;| "Default SLUG width is width of A.")
|
(IL:* IL:|;;| "Default SLUG width is width of A.")
|
||||||
|
|
||||||
(WHEN (AND (NOT SLUGWIDTH)
|
(WHEN (AND (NOT SLUGWIDTH)
|
||||||
(= ENC (CHAR-CODE #\A)))
|
(= ENC (CHAR-CODE #\A)))
|
||||||
|
|
||||||
(IL:* IL:|;;| "A is the same code in XCCS and UNICODE ")
|
(IL:* IL:|;;| "A is the same code in MCCS and UNICODE ")
|
||||||
|
|
||||||
(IL:* IL:|;;|
|
(IL:* IL:|;;|
|
||||||
"Comparing with ENC, not XCODE, to look only in charset 0")
|
"Comparing with ENC, not MCODE, to look only in charset 0")
|
||||||
|
|
||||||
(SETQ SLUGWIDTH (GLYPH-WIDTH GL))))
|
(SETQ SLUGWIDTH (GLYPH-WIDTH GL))))
|
||||||
((LISTP XCODE)
|
((LISTP MCODE)
|
||||||
|
|
||||||
(IL:* IL:|;;|
|
(IL:* IL:|;;|
|
||||||
"These assoc with the 8 bit character code within the charset (like above)")
|
"These assoc with the 8 bit character code within the charset (like above)")
|
||||||
|
|
||||||
(LOOP :FOR XC :IN XCODE :WITH CS :UNLESS (MEMBER (SETQ CS
|
(LOOP :FOR MC :IN MCODE :WITH CS :UNLESS (MEMBER (SETQ CS
|
||||||
(LRSH XC 8))
|
(LRSH MC 8))
|
||||||
XCS)
|
MCS)
|
||||||
:DO
|
:DO
|
||||||
(PUSH CS XCS)
|
(PUSH CS MCS)
|
||||||
(PUT-GLYPH-IN-CHARSET-ARRAY XC GL CSETS)))
|
(PUT-GLYPH-IN-CHARSET-ARRAY MC GL CSETS)))
|
||||||
(T (ERROR "Invalid XCODE: ~A~%"))))))
|
(T (ERROR "Invalid MCODE: ~A~%"))))))
|
||||||
|
|
||||||
(IL:* IL:|;;| "Extract the lists from the TCONC pointers")
|
(IL:* IL:|;;| "Extract the lists from the TCONC pointers")
|
||||||
|
|
||||||
@@ -488,7 +509,8 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
X))
|
X))
|
||||||
Y))))
|
Y))))
|
||||||
|
|
||||||
(DEFUN READ-BDF (PATH &OPTIONAL VERBOSE) (IL:* IL:\; "Edited 24-Apr-2025 00:44 by mth")
|
(DEFUN READ-BDF (PATH &OPTIONAL VERBOSE) (IL:* IL:\; "Edited 30-Apr-2025 13:37 by mth")
|
||||||
|
(IL:* IL:\; "Edited 24-Apr-2025 00:44 by mth")
|
||||||
(IL:* IL:\; "Edited 17-Apr-2025 15:10 by mth")
|
(IL:* IL:\; "Edited 17-Apr-2025 15:10 by mth")
|
||||||
(IL:* IL:\; "Edited 12-Jul-2024 23:02 by mth")
|
(IL:* IL:\; "Edited 12-Jul-2024 23:02 by mth")
|
||||||
(LET
|
(LET
|
||||||
@@ -603,15 +625,15 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(SETF (BF-SLUG FONT)
|
(SETF (BF-SLUG FONT)
|
||||||
GL))))))
|
GL))))))
|
||||||
(ENDFONT (SETQ FONT-COMPLETE T))))))))
|
(ENDFONT (SETQ FONT-COMPLETE T))))))))
|
||||||
(WHEN VERBOSE
|
(DESTRUCTURING-BIND (FAMILY (WEIGHT SLANT EXPANSION)
|
||||||
(DESTRUCTURING-BIND (FAMILY (WEIGHT SLANT EXPANSION)
|
SIZE)
|
||||||
SIZE)
|
(GET-FAMILY-FACE-SIZE-FROM-NAME FONT)
|
||||||
(GET-FAMILY-FACE-SIZE-FROM-NAME FONT)
|
(WHEN VERBOSE
|
||||||
(FORMAT *STANDARD-OUTPUT*
|
(FORMAT *STANDARD-OUTPUT*
|
||||||
"Name: ~A~%Family: ~A~%Size: ~A~%Weight: ~A~%Slant: ~A~%Expansion: ~A~%"
|
"Name: ~A~%Family: ~A~%Size: ~A~%Weight: ~A~%Slant: ~A~%Expansion: ~A~%"
|
||||||
(BF-NAME FONT)
|
(BF-NAME FONT)
|
||||||
FAMILY SIZE WEIGHT SLANT EXPANSION)))
|
FAMILY SIZE WEIGHT SLANT EXPANSION))
|
||||||
FONT)))
|
(VALUES FONT FAMILY WEIGHT SLANT EXPANSION SIZE)))))
|
||||||
|
|
||||||
(DEFUN READ-DELIMITED-LIST-FROM-STRING (INPUT-STRING &OPTIONAL (DELIMIT #\]))
|
(DEFUN READ-DELIMITED-LIST-FROM-STRING (INPUT-STRING &OPTIONAL (DELIMIT #\]))
|
||||||
(IL:* IL:\; "Edited 20-Aug-2024 16:46 by mth")
|
(IL:* IL:\; "Edited 20-Aug-2024 16:46 by mth")
|
||||||
@@ -699,7 +721,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(SETQ WORDINDEX (* BITROW BM.RASTERWIDTH))
|
(SETQ WORDINDEX (* BITROW BM.RASTERWIDTH))
|
||||||
(SETQ BYTEPOS (* 16 (1- NWORDS)))
|
(SETQ BYTEPOS (* 16 (1- NWORDS)))
|
||||||
(LOOP :REPEAT NWORDS :DO
|
(LOOP :REPEAT NWORDS :DO
|
||||||
(\\PUTBASE BM.BASE WORDINDEX
|
(IL:\\PUTBASE BM.BASE WORDINDEX
|
||||||
(LDB (BYTE 16 BYTEPOS)
|
(LDB (BYTE 16 BYTEPOS)
|
||||||
BITS))
|
BITS))
|
||||||
(INCF WORDINDEX)
|
(INCF WORDINDEX)
|
||||||
@@ -744,12 +766,13 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(CHAR-SETS T)
|
(CHAR-SETS T)
|
||||||
MAP-UNKNOWN-TO-PRIVATE WRITE-UNMAPPED
|
MAP-UNKNOWN-TO-PRIVATE WRITE-UNMAPPED
|
||||||
RAW-UNICODE-MAPPING)
|
RAW-UNICODE-MAPPING)
|
||||||
|
(IL:* IL:\; "Edited 5-Nov-2025 23:06 by mth")
|
||||||
(IL:* IL:\; "Edited 25-Apr-2025 10:08 by mth")
|
(IL:* IL:\; "Edited 25-Apr-2025 10:08 by mth")
|
||||||
(IL:* IL:\; "Edited 24-Apr-2025 00:09 by mth")
|
(IL:* IL:\; "Edited 24-Apr-2025 00:09 by mth")
|
||||||
(IL:* IL:\; "Edited 21-Apr-2025 16:03 by mth")
|
(IL:* IL:\; "Edited 21-Apr-2025 16:03 by mth")
|
||||||
(IL:* IL:\; "Edited 3-Feb-2025 23:18 by mth")
|
(IL:* IL:\; "Edited 3-Feb-2025 23:18 by mth")
|
||||||
(UNLESS (TYPEP BDFONT 'BDF-FONT)
|
(UNLESS (TYPEP BDFONT 'BDF-FONT)
|
||||||
(ERROR "Not a BDF-FONT: ~S~%" BDFONT))
|
(ERROR "Not a BDF-FONT: ~S ~%" BDFONT))
|
||||||
(COND
|
(COND
|
||||||
((EQ CHAR-SETS T) (IL:* IL:\; "This means ALL charsets")
|
((EQ CHAR-SETS T) (IL:* IL:\; "This means ALL charsets")
|
||||||
)
|
)
|
||||||
@@ -769,7 +792,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(GET-FAMILY-FACE-SIZE-FROM-NAME BDFONT)
|
(GET-FAMILY-FACE-SIZE-FROM-NAME BDFONT)
|
||||||
(SETQ FAMILY (OR FAMILY FN-FAMILY))
|
(SETQ FAMILY (OR FAMILY FN-FAMILY))
|
||||||
(WHEN RAW-UNICODE-MAPPING
|
(WHEN RAW-UNICODE-MAPPING
|
||||||
(SETQ FAMILY (\\FONTSYMBOL (CONCATENATE 'STRING "RAW-" (STRING FAMILY)))))
|
(SETQ FAMILY (IL:\\FONTSYMBOL (CONCATENATE 'STRING "RAW-" (STRING FAMILY)))))
|
||||||
(SETQ FACE (OR FACE FN-FACE))
|
(SETQ FACE (OR FACE FN-FACE))
|
||||||
(SETQ SIZE (OR SIZE FN-SIZE))
|
(SETQ SIZE (OR SIZE FN-SIZE))
|
||||||
(MULTIPLE-VALUE-BIND (FONTDESC CSETS UNMAPPED-FONTDESC UNICODE-CSETS UNMAPPEDGLYPHS)
|
(MULTIPLE-VALUE-BIND (FONTDESC CSETS UNMAPPED-FONTDESC UNICODE-CSETS UNMAPPEDGLYPHS)
|
||||||
@@ -780,16 +803,16 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(SETQ UNICODE-CSETS (INTERSECTION CHAR-SETS UNICODE-CSETS)))
|
(SETQ UNICODE-CSETS (INTERSECTION CHAR-SETS UNICODE-CSETS)))
|
||||||
(LOOP :FOR CS :IN CSETS :DO (WRITESTRIKEFONTFILE FONTDESC CS
|
(LOOP :FOR CS :IN CSETS :DO (WRITESTRIKEFONTFILE FONTDESC CS
|
||||||
(PACKFILENAME.STRING :BODY DEST-DIR :NAME
|
(PACKFILENAME.STRING :BODY DEST-DIR :NAME
|
||||||
(\\FONTFILENAME FAMILY SIZE FACE
|
(IL:\\FONTFILENAME FAMILY SIZE FACE
|
||||||
"DISPLAYFONT" CS))))
|
"DISPLAYFONT" CS))))
|
||||||
(IF WRITE-UNMAPPED
|
(IF WRITE-UNMAPPED
|
||||||
(LOOP :FOR CS :IN UNICODE-CSETS :DO (WRITESTRIKEFONTFILE
|
(LOOP :FOR CS :IN UNICODE-CSETS :DO (WRITESTRIKEFONTFILE
|
||||||
UNMAPPED-FONTDESC CS
|
UNMAPPED-FONTDESC CS
|
||||||
(PACKFILENAME.STRING
|
(PACKFILENAME.STRING
|
||||||
:BODY DEST-DIR :NAME
|
:BODY DEST-DIR :NAME
|
||||||
(\\FONTFILENAME (FONTPROP
|
(IL:\\FONTFILENAME (FONTPROP
|
||||||
UNMAPPED-FONTDESC
|
UNMAPPED-FONTDESC
|
||||||
'IL:FAMILY)
|
'IL:FAMILY)
|
||||||
SIZE FACE "DISPLAYFONT" CS))))
|
SIZE FACE "DISPLAYFONT" CS))))
|
||||||
(SETQ UNICODE-CSETS NIL))
|
(SETQ UNICODE-CSETS NIL))
|
||||||
|
|
||||||
@@ -801,6 +824,10 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(VALUES FONTDESC CSETS UNMAPPED-FONTDESC UNICODE-CSETS UNMAPPEDGLYPHS))))
|
(VALUES FONTDESC CSETS UNMAPPED-FONTDESC UNICODE-CSETS UNMAPPEDGLYPHS))))
|
||||||
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY
|
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY
|
||||||
|
|
||||||
|
(IL:FILESLOAD (IL:SYSLOAD)
|
||||||
|
IL:SYSEDIT)
|
||||||
|
|
||||||
|
|
||||||
(IL:FILESLOAD (IL:LOADCOMP)
|
(IL:FILESLOAD (IL:LOADCOMP)
|
||||||
IL:FONT)
|
IL:FONT)
|
||||||
)
|
)
|
||||||
@@ -808,25 +835,23 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
|
|||||||
(DEFINE-FILE-ENVIRONMENT "READ-BDF" :PACKAGE (DEFPACKAGE "BDF" (:USE "XCL" "LISP")
|
(DEFINE-FILE-ENVIRONMENT "READ-BDF" :PACKAGE (DEFPACKAGE "BDF" (:USE "XCL" "LISP")
|
||||||
(:EXPORT "READ-BDF"
|
(:EXPORT "READ-BDF"
|
||||||
"WRITE-BDF-TO-DISPLAYFONT-FILES")
|
"WRITE-BDF-TO-DISPLAYFONT-FILES")
|
||||||
(:IMPORT \\AVGCHARWIDTH \\FGETWIDTH \\FONTFACE
|
(:IMPORT-FROM "IL" "BITBLT" "BITMAPCREATE"
|
||||||
\\FONTFILENAME \\FSETOFFSET \\FSETWIDTH
|
"BITMAPHEIGHT" "BITMAPWIDTH" "BLACKSHADE"
|
||||||
\\FONTSYMBOL \\GETSTREAM
|
"BLTSHADE" "BOLD" "COMPRESSED"
|
||||||
\\INSTALLCHARSETINFO \\PUTBASE BITBLT
|
"CHARSETINFO" "DISPLAY" "FONTDESCRIPTOR"
|
||||||
BITMAPCREATE BITMAPHEIGHT BITMAPWIDTH
|
"FONTP" "FONTPROP" "INPUT" "ITALIC"
|
||||||
BLACKSHADE BLTSHADE BOLD CONDENSED
|
"LIGHT" "LRSH" "MEDIUM" "REGULAR" "TCONC"
|
||||||
CHARSETINFO DISPLAY FONTDESCRIPTOR FONTP
|
"UTOMCODE" "UTOMCODE?"
|
||||||
FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM
|
"WRITESTRIKEFONTFILE"))
|
||||||
REGULAR TCONC UTOXCODE UTOXCODE?
|
|
||||||
WRITESTRIKEFONTFILE))
|
|
||||||
:READTABLE "XCL"
|
:READTABLE "XCL"
|
||||||
:COMPILER :COMPILE-FILE)
|
:COMPILER :COMPILE-FILE)
|
||||||
|
|
||||||
(IL:PUTPROPS IL:READ-BDF IL:DATABASE IL:NO)
|
(IL:PUTPROPS IL:READ-BDF IL:DATABASE IL:NO)
|
||||||
(IL:DECLARE\: IL:DONTCOPY
|
(IL:DECLARE\: IL:DONTCOPY
|
||||||
(IL:FILEMAP (NIL (2316 10275 (BDF-TO-CHARSETINFO 2316 . 10275)) (10277 16147 (BDF-TO-FONTDESCRIPTOR
|
(IL:FILEMAP (NIL (2497 10576 (BDF-TO-CHARSETINFO 2497 . 10576)) (10578 16996 (BDF-TO-FONTDESCRIPTOR
|
||||||
10277 . 16147)) (16149 19687 (GET-FAMILY-FACE-SIZE-FROM-NAME 16149 . 19687)) (19689 26500 (
|
10578 . 16996)) (16998 20538 (GET-FAMILY-FACE-SIZE-FROM-NAME 16998 . 20538)) (20540 27970 (
|
||||||
GLYPHS-BY-CHARSET 19689 . 26500)) (26502 27927 (PACKFILENAME.STRING 26502 . 27927)) (27929 34733 (
|
GLYPHS-BY-CHARSET 20540 . 27970)) (27972 29397 (PACKFILENAME.STRING 27972 . 29397)) (29399 36358 (
|
||||||
READ-BDF 27929 . 34733)) (34735 35058 (READ-DELIMITED-LIST-FROM-STRING 34735 . 35058)) (35060 41548 (
|
READ-BDF 29399 . 36358)) (36360 36683 (READ-DELIMITED-LIST-FROM-STRING 36360 . 36683)) (36685 43176 (
|
||||||
READ-GLYPH 35060 . 41548)) (41550 42291 (SPLIT-FONT-NAME 41550 . 42291)) (42293 46075 (
|
READ-GLYPH 36685 . 43176)) (43178 43919 (SPLIT-FONT-NAME 43178 . 43919)) (43921 47827 (
|
||||||
WRITE-BDF-TO-DISPLAYFONT-FILES 42293 . 46075)))))
|
WRITE-BDF-TO-DISPLAYFONT-FILES 43921 . 47827)))))
|
||||||
IL:STOP
|
IL:STOP
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user