1
0
mirror of synced 2026-01-12 00:42:56 +00:00

Cleanup DEFPACKAGE 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 get put into NOMAPPINGCHARSET.
Add (FILES (SYSLOAD) SYSEDIT) under existing (DECLARE: EVAL@COMPILE DONTCOPY ...)
This commit is contained in:
Matt Heffron 2025-11-07 21:47:39 -08:00
parent 17292d3ea1
commit 3410e3db62
3 changed files with 103 additions and 80 deletions

View File

@ -1,18 +1,19 @@
(DEFINE-FILE-INFO PACKAGE (DEFPACKAGE "BDF" (USE "XCL" "LISP") (EXPORT "READ-BDF"
"WRITE-BDF-TO-DISPLAYFONT-FILES") (IMPORT \AVGCHARWIDTH \FGETWIDTH \FONTFACE \FONTFILENAME
\FSETOFFSET \FSETWIDTH \FONTSYMBOL \GETSTREAM \INSTALLCHARSETINFO \PUTBASE BITBLT BITMAPCREATE
BITMAPHEIGHT BITMAPWIDTH BLACKSHADE BLTSHADE BOLD CONDENSED CHARSETINFO DISPLAY FONTDESCRIPTOR FONTP
FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITESTRIKEFONTFILE))
READTABLE "XCL" BASE 10)
"WRITE-BDF-TO-DISPLAYFONT-FILES") (IMPORT-FROM "IL" "BITBLT" "BITMAPCREATE" "BITMAPHEIGHT"
"BITMAPWIDTH" "BLACKSHADE" "BLTSHADE" "BOLD" "COMPRESSED" "CHARSETINFO" "DISPLAY" "FONTDESCRIPTOR"
"FONTP" "FONTPROP" "INPUT" "ITALIC" "LIGHT" "LRSH" "MEDIUM" "REGULAR" "TCONC" "UTOMCODE" "UTOMCODE?"
"WRITESTRIKEFONTFILE")) READTABLE "XCL" BASE 10)
(IL:FILECREATED " 7-Aug-2025 18:06:58" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;2| 47764
(IL:FILECREATED " 6-Nov-2025 23:10:51" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;13| 49101
:EDIT-BY "mth"
:CHANGES-TO (IL:FUNCTIONS READ-BDF WRITE-BDF-TO-DISPLAYFONT-FILES BDF-TO-CHARSETINFO READ-GLYPH
GET-FAMILY-FACE-SIZE-FROM-NAME SPLIT-FONT-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 "30-Apr-2025 13:20:10" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;1|
:PREVIOUS-DATE " 6-Nov-2025 22:43:21" IL:|{DSK}<home>matt>Interlisp>medley>lispusers>READ-BDF.;9|
)
@ -24,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
GLYPHS-BY-CHARSET PACKFILENAME.STRING READ-BDF READ-DELIMITED-LIST-FROM-STRING
READ-GLYPH SPLIT-FONT-NAME WRITE-BDF-TO-DISPLAYFONT-FILES)
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY (IL:FILES (IL:LOADCOMP)
IL:FONT))
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY (IL:FILES (IL:SYSLOAD)
IL:SYSEDIT)
(IL:FILES (IL:LOADCOMP)
IL:FONT))
(FILE-ENVIRONMENTS "READ-BDF")
(IL:PROP (IL:DATABASE)
IL:READ-BDF)))
@ -41,10 +44,10 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(SLUG NIL :TYPE 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)
ENCODING SWIDTH DWIDTH SWIDTH1 DWIDTH1 VVECTOR BBW BBH BBXOFF0 BBYOFF0 BITMAP
(XCODE 0 :TYPE INTEGER)
(MCODE 0 :TYPE INTEGER)
(WIDTH 0 :TYPE INTEGER)
(ASCENT 0 :TYPE INTEGER)
(DESCENT 0 :TYPE INTEGER))
@ -56,6 +59,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(DEFCONSTANT NOMAPPINGCHARSET (1+ MAXCHARSET))
(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 21-Apr-2025 16:23 by mth")
(IL:* IL:\; "Edited 30-Jan-2025 16:40 by mth")
@ -99,7 +103,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
((INTEGERP SLUG-OR-WIDTH)
(SETQ SLUGWIDTH 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))
(GWIDTH (GLYPH-WIDTH
GL))
@ -113,13 +117,13 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
 
 "Is the above statement actually true?")
(SETF (GLYPH-XCODE GL)
XCODE)
(SETF (GLYPH-MCODE GL)
MCODE)
(SETQ FIRSTCHAR
(MIN FIRSTCHAR XCODE
(MIN FIRSTCHAR MCODE
))
(SETQ LASTCHAR
(MAX LASTCHAR XCODE)
(MAX LASTCHAR MCODE)
)
(INCF TOTAL-WIDTH GWIDTH)
(SETQ ASCENT
@ -134,13 +138,13 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(IL:* IL:|;;|
 "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))
(SETQ WIDTHS (IL:|fetch| (CHARSETINFO IL:WIDTHS) IL:|of| CSINFO))
(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))
(IL:|replace| (CHARSETINFO IL:IMAGEWIDTHS) IL:|of| CSINFO IL:|with| WIDTHS)
@ -152,19 +156,19 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(SETQ BMAP (BITMAPCREATE (+ TOTAL-WIDTH SLUGWIDTH)
HEIGHT 1))
(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
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)))
(+ DESCENT (GLYPH-BBYOFF0 GL))
(BITMAPWIDTH GLBM)
(BITMAPHEIGHT GLBM)
'INPUT
'IL:REPLACE)
(\\FSETOFFSET OFFSETS XCODE DLEFT)
(\\FSETOFFSET WIDTHS XCODE GLW)
(IL:\\FSETOFFSET OFFSETS MCODE DLEFT)
(IL:\\FSETOFFSET WIDTHS MCODE GLW)
(INCF DLEFT GLW))
(IL:* IL:|;;| "Now insert the SLUG glyph into the BMAP, or make a slug (block)")
@ -186,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
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 30-Jan-2025 21:27 by mth")
(WHEN (AND (BDF-FONT-P BDFONT)
@ -201,18 +206,22 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(OR DEVICE (FONTPROP FAMILY 'IL:DEVICE))
MAP-UNKNOWN-TO-PRIVATE)))
(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)
(OR (THIRD FAMILY)
(OR (IL:|fetch| (IL:FONTSPEC IL:FSFACE) IL:|of| FAMILY)
FACE "MRR")
(OR (FOURTH FAMILY)
(OR (IL:|fetch| (IL:FONTSPEC IL:FSROTATION) IL:|of| FAMILY)
ROTATION 0)
(OR (FIFTH FAMILY)
(OR (IL:|fetch| (IL:FONTSPEC IL:FSDEVICE) IL:|of| FAMILY)
DEVICE
'DISPLAY)
MAP-UNKNOWN-TO-PRIVATE)))
(SETQ FAMILY (\\FONTSYMBOL FAMILY))
(SETQ FAMILY (IL:\\FONTSYMBOL FAMILY))
(UNLESS (AND (INTEGERP SIZE)
(PLUSP SIZE))
(ERROR "Invalid SIZE: ~S~%" SIZE))
@ -237,7 +246,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(INTERN (STRING-UPCASE DEVICE)
"IL"))
(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))
(UNLESS SLUGWIDTH
@ -269,15 +278,16 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
GBCS CSET (OR SLUG (1+
SLUGWIDTH
))))
(\\INSTALLCHARSETINFO FONTDESC CSINFO CSET)
(IL:\\INSTALLCHARSETINFO FONTDESC CSINFO CSET
)
(LIST CSET)))))
(LIST FONTDESC CHARSETS))))
(RETURN (VALUES-LIST (NCONC (GBCS-TO-FONTDESC (FIRST GBCSL)
FAMILY)
(GBCS-TO-FONTDESC (SECOND GBCSL)
(\\FONTSYMBOL (CONCATENATE 'STRING
(SYMBOL-NAME FAMILY)
"-UNMAPPED")))
(IL:\\FONTSYMBOL (CONCATENATE 'STRING
(SYMBOL-NAME FAMILY)
"-UNMAPPED")))
(LIST (ASSOC NOMAPPINGCHARSET (FIRST GBCSL)
:TEST
#'EQL)))))))))
@ -312,8 +322,8 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
'((#\R . REGULAR)
(#\N . REGULAR)
(#\B . BOLD)
(#\S . CONDENSED)
(#\C . CONDENSED)))))
(#\S . COMPRESSED)
(#\C . COMPRESSED)))))
'REGULAR)) (IL:* IL:\;
 "S is for \"SemiCondensed\", Assuming \"Condensed\"")
@ -337,17 +347,19 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(FIRST (BF-SIZE BDFONT))))))
(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 9-Jan-2025 11:23 by mth")
(LET* ((NCSETS (+ MAXCHARSET 2))
(CSETS (MAKE-ARRAY NCSETS :INITIAL-CONTENTS (LOOP :REPEAT NCSETS :COLLECT (CONS NIL))))
(UTOXFN (COND
(UTOMFN (COND
(RAW-UNICODE-MAPPING #'IDENTITY)
(MAP-UNKNOWN-TO-PRIVATE #'UTOXCODE)
(T #'UTOXCODE?)))
(MAP-UNKNOWN-TO-PRIVATE #'UTOMCODE)
(T #'UTOMCODE?)))
(SLUG (BF-SLUG FONT))
(SLUGWIDTH (AND SLUG (GLYPH-WIDTH SLUG)))
NOMAPPINGCSETS ENC XCODE XCS)
NOMAPPINGCSETS ENC MCODE MCS)
(UNLESS (OR MAP-UNKNOWN-TO-PRIVATE RAW-UNICODE-MAPPING)
(SETQ NOMAPPINGCSETS (MAKE-ARRAY NCSETS :INITIAL-CONTENTS (LOOP :REPEAT NCSETS :COLLECT
(CONS NIL)))))
@ -359,7 +371,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
:UNLESS
(EQ GL SLUG)
:DO
(SETQ XCS NIL)
(SETQ MCS NIL)
(SETQ ENC (GLYPH-ENCODING GL))
(WHEN (LISTP ENC)
@ -373,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")
)
(SETQ XCODE (AND (INTEGERP ENC)
(SETQ MCODE (AND (INTEGERP ENC)
(PLUSP ENC)
(FUNCALL UTOXFN ENC)))
(FUNCALL UTOMFN ENC)))
(IF RAW-UNICODE-MAPPING
(COND
((> ENC 65535)
@ -395,7 +407,15 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(CONS ENC GL)))
(T (PUT-GLYPH-IN-CHARSET-ARRAY ENC GL CSETS)))
(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")
@ -409,37 +429,37 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(TCONC (AREF CSETS NOMAPPINGCHARSET)
(CONS ENC GL)))
(T (PUT-GLYPH-IN-CHARSET-ARRAY ENC GL NOMAPPINGCSETS))))
((AND (INTEGERP XCODE)
(<= 0 XCODE 65535))
((AND (INTEGERP MCODE)
(<= 0 MCODE 65535))
(IL:* IL:|;;|
 "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.")
(WHEN (AND (NOT SLUGWIDTH)
(= 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:|;;|
 "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))))
((LISTP XCODE)
((LISTP MCODE)
(IL:* IL:|;;|
 "These assoc with the 8 bit character code within the charset (like above)")
(LOOP :FOR XC :IN XCODE :WITH CS :UNLESS (MEMBER (SETQ CS
(LRSH XC 8))
XCS)
(LOOP :FOR MC :IN MCODE :WITH CS :UNLESS (MEMBER (SETQ CS
(LRSH MC 8))
MCS)
:DO
(PUSH CS XCS)
(PUT-GLYPH-IN-CHARSET-ARRAY XC GL CSETS)))
(T (ERROR "Invalid XCODE: ~A~%"))))))
(PUSH CS MCS)
(PUT-GLYPH-IN-CHARSET-ARRAY MC GL CSETS)))
(T (ERROR "Invalid MCODE: ~A~%"))))))
(IL:* IL:|;;| "Extract the lists from the TCONC pointers")
@ -701,7 +721,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(SETQ WORDINDEX (* BITROW BM.RASTERWIDTH))
(SETQ BYTEPOS (* 16 (1- NWORDS)))
(LOOP :REPEAT NWORDS :DO
(\\PUTBASE BM.BASE WORDINDEX
(IL:\\PUTBASE BM.BASE WORDINDEX
(LDB (BYTE 16 BYTEPOS)
BITS))
(INCF WORDINDEX)
@ -746,12 +766,13 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(CHAR-SETS T)
MAP-UNKNOWN-TO-PRIVATE WRITE-UNMAPPED
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 24-Apr-2025 00:09 by mth")
(IL:* IL:\; "Edited 21-Apr-2025 16:03 by mth")
(IL:* IL:\; "Edited 3-Feb-2025 23:18 by mth")
(UNLESS (TYPEP BDFONT 'BDF-FONT)
(ERROR "Not a BDF-FONT: ~S~%" BDFONT))
(ERROR "Not a BDF-FONT: ~S ~%" BDFONT))
(COND
((EQ CHAR-SETS T) (IL:* IL:\; "This means ALL charsets")
)
@ -771,7 +792,7 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(GET-FAMILY-FACE-SIZE-FROM-NAME BDFONT)
(SETQ FAMILY (OR FAMILY FN-FAMILY))
(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 SIZE (OR SIZE FN-SIZE))
(MULTIPLE-VALUE-BIND (FONTDESC CSETS UNMAPPED-FONTDESC UNICODE-CSETS UNMAPPEDGLYPHS)
@ -782,16 +803,16 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(SETQ UNICODE-CSETS (INTERSECTION CHAR-SETS UNICODE-CSETS)))
(LOOP :FOR CS :IN CSETS :DO (WRITESTRIKEFONTFILE FONTDESC CS
(PACKFILENAME.STRING :BODY DEST-DIR :NAME
(\\FONTFILENAME FAMILY SIZE FACE
(IL:\\FONTFILENAME FAMILY SIZE FACE
"DISPLAYFONT" CS))))
(IF WRITE-UNMAPPED
(LOOP :FOR CS :IN UNICODE-CSETS :DO (WRITESTRIKEFONTFILE
UNMAPPED-FONTDESC CS
(PACKFILENAME.STRING
:BODY DEST-DIR :NAME
(\\FONTFILENAME (FONTPROP
UNMAPPED-FONTDESC
'IL:FAMILY)
(IL:\\FONTFILENAME (FONTPROP
UNMAPPED-FONTDESC
'IL:FAMILY)
SIZE FACE "DISPLAYFONT" CS))))
(SETQ UNICODE-CSETS NIL))
@ -803,6 +824,10 @@ FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM REGULAR TCONC UTOXCODE UTOXCODE? WRITEST
(VALUES FONTDESC CSETS UNMAPPED-FONTDESC UNICODE-CSETS UNMAPPEDGLYPHS))))
(IL:DECLARE\: IL:EVAL@COMPILE IL:DONTCOPY
(IL:FILESLOAD (IL:SYSLOAD)
IL:SYSEDIT)
(IL:FILESLOAD (IL:LOADCOMP)
IL:FONT)
)
@ -810,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")
(:EXPORT "READ-BDF"
"WRITE-BDF-TO-DISPLAYFONT-FILES")
(:IMPORT \\AVGCHARWIDTH \\FGETWIDTH \\FONTFACE
\\FONTFILENAME \\FSETOFFSET \\FSETWIDTH
\\FONTSYMBOL \\GETSTREAM
\\INSTALLCHARSETINFO \\PUTBASE BITBLT
BITMAPCREATE BITMAPHEIGHT BITMAPWIDTH
BLACKSHADE BLTSHADE BOLD CONDENSED
CHARSETINFO DISPLAY FONTDESCRIPTOR FONTP
FONTPROP INPUT ITALIC LIGHT LRSH MEDIUM
REGULAR TCONC UTOXCODE UTOXCODE?
WRITESTRIKEFONTFILE))
(:IMPORT-FROM "IL" "BITBLT" "BITMAPCREATE"
"BITMAPHEIGHT" "BITMAPWIDTH" "BLACKSHADE"
"BLTSHADE" "BOLD" "COMPRESSED"
"CHARSETINFO" "DISPLAY" "FONTDESCRIPTOR"
"FONTP" "FONTPROP" "INPUT" "ITALIC"
"LIGHT" "LRSH" "MEDIUM" "REGULAR" "TCONC"
"UTOMCODE" "UTOMCODE?"
"WRITESTRIKEFONTFILE"))
:READTABLE "XCL"
:COMPILER :COMPILE-FILE)
(IL:PUTPROPS IL:READ-BDF IL:DATABASE IL:NO)
(IL:DECLARE\: IL:DONTCOPY
(IL:FILEMAP (NIL (2425 10384 (BDF-TO-CHARSETINFO 2425 . 10384)) (10386 16256 (BDF-TO-FONTDESCRIPTOR
10386 . 16256)) (16258 19796 (GET-FAMILY-FACE-SIZE-FROM-NAME 16258 . 19796)) (19798 26609 (
GLYPHS-BY-CHARSET 19798 . 26609)) (26611 28036 (PACKFILENAME.STRING 26611 . 28036)) (28038 34997 (
READ-BDF 28038 . 34997)) (34999 35322 (READ-DELIMITED-LIST-FROM-STRING 34999 . 35322)) (35324 41812 (
READ-GLYPH 35324 . 41812)) (41814 42555 (SPLIT-FONT-NAME 41814 . 42555)) (42557 46339 (
WRITE-BDF-TO-DISPLAYFONT-FILES 42557 . 46339)))))
(IL:FILEMAP (NIL (2497 10576 (BDF-TO-CHARSETINFO 2497 . 10576)) (10578 16996 (BDF-TO-FONTDESCRIPTOR
10578 . 16996)) (16998 20538 (GET-FAMILY-FACE-SIZE-FROM-NAME 16998 . 20538)) (20540 27970 (
GLYPHS-BY-CHARSET 20540 . 27970)) (27972 29397 (PACKFILENAME.STRING 27972 . 29397)) (29399 36358 (
READ-BDF 29399 . 36358)) (36360 36683 (READ-DELIMITED-LIST-FROM-STRING 36360 . 36683)) (36685 43176 (
READ-GLYPH 36685 . 43176)) (43178 43919 (SPLIT-FONT-NAME 43178 . 43919)) (43921 47827 (
WRITE-BDF-TO-DISPLAYFONT-FILES 43921 . 47827)))))
IL:STOP

Binary file not shown.

Binary file not shown.