Skip to content

Commit e7bf6e0

Browse files
authored
FONT: eliminate hyphen INFILEPs for font lookup (#2405)
* FONT: eliminate hyphen INFILEPs for font lookup * SPREADFONTSPEC using FONTSPEC declaration
1 parent e43fb61 commit e7bf6e0

File tree

2 files changed

+76
-61
lines changed

2 files changed

+76
-61
lines changed

sources/FONT

Lines changed: 76 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
22

3-
(FILECREATED "29-Nov-2025 16:32:59" {WMEDLEY}<sources>FONT.;638 280293
3+
(FILECREATED " 4-Dec-2025 09:46:06" {WMEDLEY}<sources>FONT.;644 281393
44

55
:EDIT-BY rmk
66

7-
:CHANGES-TO (VARS FONTCOMS)
7+
:CHANGES-TO (MACROS SPREADFONTSPEC)
8+
(FNS \FINDFONTFILE)
89

9-
:PREVIOUS-DATE "28-Nov-2025 14:28:16" {WMEDLEY}<sources>FONT.;637)
10+
:PREVIOUS-DATE " 2-Dec-2025 16:01:58" {WMEDLEY}<sources>FONT.;639)
1011

1112

1213
(PRETTYCOMPRINT FONTCOMS)
@@ -973,18 +974,18 @@
973974
)
974975
(DECLARE%: EVAL@COMPILE
975976

976-
(PUTPROPS SPREADFONTSPEC MACRO [(FONTSPEC)
977-
(LET ((FS FONTSPEC))
977+
(PUTPROPS SPREADFONTSPEC MACRO [(FSPEC)
978+
(LET ((FS FSPEC))
978979

979-
(* ;; "Unwrap a FONTSPEC sequentially")
980+
(* ;; "Unwrap a FONTSPEC ")
980981

981982
(CL:WHEN (type? FONTDESCRIPTOR FS)
982983
(SETQ FS (FONTPROP FS 'SPEC)))
983-
(SETQ FAMILY (pop FS))
984-
(SETQ SIZE (pop FS))
985-
(SETQ FACE (pop FS))
986-
(SETQ ROTATION (pop FS))
987-
(SETQ DEVICE (pop FS])
984+
(SETQ FAMILY (fetch (FONTSPEC FSFAMILY) of FS))
985+
(SETQ SIZE (fetch (FONTSPEC FSSIZE) of FS))
986+
(SETQ FACE (fetch (FONTSPEC FSFACE) of FS))
987+
(SETQ ROTATION (fetch (FONTSPEC FSROTATION) of FS))
988+
(SETQ DEVICE (fetch (FONTSPEC FSDEVICE) of FS FS])
988989
)
989990
(DEFINEQ
990991

@@ -1143,7 +1144,8 @@
11431144
(fetch (FONTDESCRIPTOR \SFHeight) of (FONTCREATE FONTSPEC])
11441145

11451146
(FONTPROP
1146-
[LAMBDA (FONT PROP) (* ; "Edited 2-Sep-2025 22:21 by rmk")
1147+
[LAMBDA (FONT PROP) (* ; "Edited 2-Dec-2025 16:01 by rmk")
1148+
(* ; "Edited 2-Sep-2025 22:21 by rmk")
11471149
(* ; "Edited 12-Aug-2025 21:10 by rmk")
11481150
(* ; "Edited 10-Aug-2025 13:28 by rmk")
11491151
(* ; "Edited 23-Jul-2025 17:01 by rmk")
@@ -1178,6 +1180,9 @@
11781180
elseif (MEMB (fetch (FONTDESCRIPTOR FONTFAMILY) of FONT)
11791181
ALTOFONTFAMILIES)
11801182
then 'ALTOTEXT
1183+
elseif (MEMB (fetch (FONTDESCRIPTOR FONTFAMILY) of FONT)
1184+
MCCSFONTFAMILIES)
1185+
then 'MCCS
11811186
else (fetch (FONTDESCRIPTOR FONTFAMILY) of FONT])
11821187
(SPEC (create FONTSPEC
11831188
FSFAMILY _ (ffetch FONTFAMILY of FONT)
@@ -1813,24 +1818,34 @@
18131818

18141819
(\FINDFONTFILE
18151820
[LAMBDA (FAMILY SIZE FACE ROTATION DEVICE CHARSET DIRLST EXTLST)
1821+
(* ; "Edited 3-Dec-2025 23:38 by rmk")
18161822
(* ; "Edited 9-Jun-2025 09:40 by rmk")
18171823
(* ; "Edited 15-May-2025 22:41 by rmk")
18181824
(* ; "Edited 14-Sep-96 10:53 by rmk:")
18191825
(* ; "Edited 6-Oct-89 11:18 by bvm")
18201826

1827+
(* ;; "This doesn't call FINDFILE because the hyphens separating the family from the face would get confused with the hyphen in TEDIT-STREAM file names.")
1828+
1829+
(CL:UNLESS DIRLST
1830+
(SETQ DIRLST (CONS NIL)))
1831+
18211832
(* ;; "Find any font file on any directory with any naming convention with any extension. Note that ROTATION and DEVICE are just place holders. DEVICE is irrelevant because DIRLST already incorporates the device information. The variable *OLD-FONT-EXTENSIONS* can be set to suppress using the old-style lookup. If set to a list of extensions, just those will be looked up with old-style conventions.")
18221833

1823-
(for EXT FONTFILE inside EXTLST
1824-
when (SETQ FONTFILE (FINDFILE (if (FMEMB EXT *OLD-FONT-EXTENSIONS*)
1825-
then (\FONTFILENAME.OLD FAMILY SIZE FACE EXT CHARSET)
1826-
else (\FONTFILENAME FAMILY SIZE FACE EXT CHARSET))
1827-
T DIRLST)) collect FONTFILE finally
1834+
(for EXT FONTFILE inside EXTLST join (SETQ FONTFILE (if (FMEMB EXT *OLD-FONT-EXTENSIONS*)
1835+
then (\FONTFILENAME.OLD FAMILY SIZE FACE
1836+
EXT CHARSET)
1837+
else (\FONTFILENAME FAMILY SIZE FACE EXT
1838+
CHARSET)))
1839+
(for DIR FOUND inside DIRLST
1840+
when (SETQ FOUND (INFILEP (PACKFILENAME.STRING
1841+
'DIRECTORY DIR 'BODY FONTFILE)
1842+
)) collect FOUND)
1843+
finally
18281844

1829-
(* ;;
1830-
 "Backward compatibility for devices that expect a single file")
1845+
(* ;; "Backward compatibility for devices that expect a single file")
18311846

1832-
(CL:UNLESS (CDR $$VAL)
1833-
(RETURN (CAR $$VAL)))])
1847+
(CL:UNLESS (CDR $$VAL)
1848+
(RETURN (CAR $$VAL)))])
18341849

18351850
(\FONTFILENAMES
18361851
[LAMBDA (FAMILY SIZE FACE DEVICE EXTENSIONS) (* ; "Edited 7-Oct-2025 12:21 by rmk")
@@ -4583,44 +4598,44 @@
45834598
(ADDTOVAR LAMA FONTCOPY)
45844599
)
45854600
(DECLARE%: DONTCOPY
4586-
(FILEMAP (NIL (12144 21857 (CHARWIDTH 12154 . 12939) (CHARWIDTHY 12941 . 14458) (STRINGWIDTH 14460 .
4587-
15553) (\CHARWIDTH.DISPLAY 15555 . 15968) (\STRINGWIDTH.DISPLAY 15970 . 16394) (\STRINGWIDTH.GENERIC
4588-
16396 . 21855)) (21858 28378 (DEFAULTFONT 21868 . 23153) (FONTCLASS 23155 . 25317) (FONTCLASSUNPARSE
4589-
25319 . 26218) (FONTCLASSCOMPONENT 26220 . 26808) (SETFONTCLASSCOMPONENT 26810 . 27252) (
4590-
GETFONTCLASSCOMPONENT 27254 . 28376)) (30091 47595 (FONTCREATE 30101 . 33346) (FONTCREATE1 33348 .
4591-
35963) (FONTCREATE.SLUGFD 35965 . 37447) (\FONT.CHECKARGS1 37449 . 41972) (\FONTCREATE1.NOFN 41974 .
4592-
42188) (FONTFILEP 42190 . 43078) (\READCHARSET 43080 . 47593)) (47596 54672 (\FONT.CHECKARGS 47606 .
4593-
54355) (\CHARSET.CHECK 54357 . 54670)) (54673 57933 (COERCEFONTSPEC 54683 . 57931)) (60003 61342 (
4594-
MAKEFONTSPEC 60013 . 61340)) (61343 69520 (COMPLETE.FONT 61353 . 63876) (COMPLETEFONTP 63878 . 64501)
4595-
(COMPLETE.CHARSET 64503 . 67188) (PRUNESLUGCSINFOS 67190 . 68115) (MONOSPACEFONTP 68117 . 69518)) (
4596-
69559 77480 (FONTASCENT 69569 . 69953) (FONTDESCENT 69955 . 70440) (FONTHEIGHT 70442 . 70844) (
4597-
FONTPROP 70846 . 76757) (\AVGCHARWIDTH 76759 . 77478)) (78137 79045 (FONTDEVICEPROP 78147 . 79043)) (
4598-
79091 79945 (EDITCHAR 79101 . 79943)) (79991 92181 (GETCHARBITMAP 80001 . 81125) (PUTCHARBITMAP 81127
4599-
. 83285) (\GETCHARBITMAP.CSINFO 83287 . 85303) (\PUTCHARBITMAP.CSINFO 85305 . 92179)) (92182 112662 (
4600-
MOVECHARBITMAP 92192 . 94086) (MOVEFONTCHARS 94088 . 98048) (\MOVEFONTCHAR 98050 . 102893) (
4601-
\MOVEFONTCHARS.SOURCEDATA 102895 . 109000) (\MAKESLUGCHAR 109002 . 111537) (SLUGCHARP.DISPLAY 111539
4602-
. 112660)) (113595 134168 (FONTFILES 113605 . 115438) (\FINDFONTFILE 115440 . 117157) (\FONTFILENAMES
4603-
117159 . 118154) (\FONTFILENAME 118156 . 122139) (\FONTFILENAME.OLD 122141 . 125090) (
4604-
\FONTFILENAME.NEW 125092 . 127349) (FONTSPECFROMFILENAME 127351 . 131887) (\FONTINFOFROMFILENAME.OLD
4605-
131889 . 134166)) (134435 170238 (FONTCOPY 134445 . 139508) (FONTP 139510 . 139809) (FONTUNPARSE
4606-
139811 . 141530) (SETFONTDESCRIPTOR 141532 . 142996) (\STREAMCHARWIDTH 142998 . 147162) (
4607-
\COERCECHARSET 147164 . 149759) (\BUILDSLUGCSINFO 149761 . 153384) (\FONTSYMBOL 153386 . 154036) (
4608-
\DEVICESYMBOL 154038 . 154907) (\FONTFACE 154909 . 162099) (\FONTFACE.COLOR 162101 . 169021) (
4609-
SETFONTCHARENCODING 169023 . 170236)) (170239 190538 (FONTSAVAILABLE 170249 . 175603) (FONTEXISTS?
4610-
175605 . 179583) (\SEARCHFONTFILES 179585 . 182670) (FLUSHFONTCACHE 182672 . 184895) (FLUSHFONTSINCORE
4611-
184897 . 185094) (FINDFONTFILES 185096 . 188310) (SORTFONTSPECS 188312 . 190536)) (190539 194148 (
4612-
MATCHFONTFACE 190549 . 191364) (MAKEFONTFACE 191366 . 192392) (FONTFACETOATOM 192394 . 194146)) (
4613-
194779 195271 (\UNITWIDTHSVECTOR 194789 . 195269)) (209865 211932 (FONTDESCRIPTOR.DEFPRINT 209875 .
4614-
211454) (FONTCLASS.DEFPRINT 211456 . 211930)) (215761 218551 (\CREATEKERNELEMENT 215771 . 216129) (
4615-
\FSETLEFTKERN 216131 . 216622) (\FGETLEFTKERN 216624 . 218549)) (218552 228188 (\CREATEFONT 218562 .
4616-
220001) (\CREATECHARSET 220003 . 223939) (\INSTALLCHARSETINFO 223941 . 227275) (
4617-
\INSTALLCHARSETINFO.CHARENCODING 227277 . 228186)) (228510 229874 (\FONTRESETCHARWIDTHS 228520 .
4618-
229872)) (230504 240551 (\CREATEDISPLAYFONT 230514 . 232363) (\CREATECHARSET.DISPLAY 232365 . 238074)
4619-
(\FONTEXISTS?.DISPLAY 238076 . 240549)) (240552 255417 (STRIKEFONT.FILEP 240562 . 241450) (
4620-
STRIKEFONT.GETCHARSET 241452 . 247044) (WRITESTRIKEFONTFILE 247046 . 251957) (STRIKECSINFO 251959 .
4621-
255415)) (255448 271765 (MAKEBOLD.CHARSET 255458 . 259107) (MAKEBOLD.CHAR 259109 . 260861) (
4622-
MAKEITALIC.CHARSET 260863 . 264536) (MAKEITALIC.CHAR 264538 . 266884) (\SFMAKEBOLD 266886 . 269110) (
4623-
\SFMAKEITALIC 269112 . 271763)) (271766 275915 (\SFMAKEROTATEDFONT 271776 . 273177) (\SFROTATECSINFO
4624-
273179 . 273816) (\SFROTATEFONTCHARACTERS 273818 . 274198) (\SFROTATECSINFOOFFSETS 274200 . 275913)) (
4625-
275916 277297 (\SFMAKECOLOR 275926 . 277295)))))
4601+
(FILEMAP (NIL (12190 21903 (CHARWIDTH 12200 . 12985) (CHARWIDTHY 12987 . 14504) (STRINGWIDTH 14506 .
4602+
15599) (\CHARWIDTH.DISPLAY 15601 . 16014) (\STRINGWIDTH.DISPLAY 16016 . 16440) (\STRINGWIDTH.GENERIC
4603+
16442 . 21901)) (21904 28424 (DEFAULTFONT 21914 . 23199) (FONTCLASS 23201 . 25363) (FONTCLASSUNPARSE
4604+
25365 . 26264) (FONTCLASSCOMPONENT 26266 . 26854) (SETFONTCLASSCOMPONENT 26856 . 27298) (
4605+
GETFONTCLASSCOMPONENT 27300 . 28422)) (30137 47641 (FONTCREATE 30147 . 33392) (FONTCREATE1 33394 .
4606+
36009) (FONTCREATE.SLUGFD 36011 . 37493) (\FONT.CHECKARGS1 37495 . 42018) (\FONTCREATE1.NOFN 42020 .
4607+
42234) (FONTFILEP 42236 . 43124) (\READCHARSET 43126 . 47639)) (47642 54718 (\FONT.CHECKARGS 47652 .
4608+
54401) (\CHARSET.CHECK 54403 . 54716)) (54719 57979 (COERCEFONTSPEC 54729 . 57977)) (60177 61516 (
4609+
MAKEFONTSPEC 60187 . 61514)) (61517 69694 (COMPLETE.FONT 61527 . 64050) (COMPLETEFONTP 64052 . 64675)
4610+
(COMPLETE.CHARSET 64677 . 67362) (PRUNESLUGCSINFOS 67364 . 68289) (MONOSPACEFONTP 68291 . 69692)) (
4611+
69733 77988 (FONTASCENT 69743 . 70127) (FONTDESCENT 70129 . 70614) (FONTHEIGHT 70616 . 71018) (
4612+
FONTPROP 71020 . 77265) (\AVGCHARWIDTH 77267 . 77986)) (78645 79553 (FONTDEVICEPROP 78655 . 79551)) (
4613+
79599 80453 (EDITCHAR 79609 . 80451)) (80499 92689 (GETCHARBITMAP 80509 . 81633) (PUTCHARBITMAP 81635
4614+
. 83793) (\GETCHARBITMAP.CSINFO 83795 . 85811) (\PUTCHARBITMAP.CSINFO 85813 . 92687)) (92690 113170 (
4615+
MOVECHARBITMAP 92700 . 94594) (MOVEFONTCHARS 94596 . 98556) (\MOVEFONTCHAR 98558 . 103401) (
4616+
\MOVEFONTCHARS.SOURCEDATA 103403 . 109508) (\MAKESLUGCHAR 109510 . 112045) (SLUGCHARP.DISPLAY 112047
4617+
. 113168)) (114103 135268 (FONTFILES 114113 . 115946) (\FINDFONTFILE 115948 . 118257) (\FONTFILENAMES
4618+
118259 . 119254) (\FONTFILENAME 119256 . 123239) (\FONTFILENAME.OLD 123241 . 126190) (
4619+
\FONTFILENAME.NEW 126192 . 128449) (FONTSPECFROMFILENAME 128451 . 132987) (\FONTINFOFROMFILENAME.OLD
4620+
132989 . 135266)) (135535 171338 (FONTCOPY 135545 . 140608) (FONTP 140610 . 140909) (FONTUNPARSE
4621+
140911 . 142630) (SETFONTDESCRIPTOR 142632 . 144096) (\STREAMCHARWIDTH 144098 . 148262) (
4622+
\COERCECHARSET 148264 . 150859) (\BUILDSLUGCSINFO 150861 . 154484) (\FONTSYMBOL 154486 . 155136) (
4623+
\DEVICESYMBOL 155138 . 156007) (\FONTFACE 156009 . 163199) (\FONTFACE.COLOR 163201 . 170121) (
4624+
SETFONTCHARENCODING 170123 . 171336)) (171339 191638 (FONTSAVAILABLE 171349 . 176703) (FONTEXISTS?
4625+
176705 . 180683) (\SEARCHFONTFILES 180685 . 183770) (FLUSHFONTCACHE 183772 . 185995) (FLUSHFONTSINCORE
4626+
185997 . 186194) (FINDFONTFILES 186196 . 189410) (SORTFONTSPECS 189412 . 191636)) (191639 195248 (
4627+
MATCHFONTFACE 191649 . 192464) (MAKEFONTFACE 192466 . 193492) (FONTFACETOATOM 193494 . 195246)) (
4628+
195879 196371 (\UNITWIDTHSVECTOR 195889 . 196369)) (210965 213032 (FONTDESCRIPTOR.DEFPRINT 210975 .
4629+
212554) (FONTCLASS.DEFPRINT 212556 . 213030)) (216861 219651 (\CREATEKERNELEMENT 216871 . 217229) (
4630+
\FSETLEFTKERN 217231 . 217722) (\FGETLEFTKERN 217724 . 219649)) (219652 229288 (\CREATEFONT 219662 .
4631+
221101) (\CREATECHARSET 221103 . 225039) (\INSTALLCHARSETINFO 225041 . 228375) (
4632+
\INSTALLCHARSETINFO.CHARENCODING 228377 . 229286)) (229610 230974 (\FONTRESETCHARWIDTHS 229620 .
4633+
230972)) (231604 241651 (\CREATEDISPLAYFONT 231614 . 233463) (\CREATECHARSET.DISPLAY 233465 . 239174)
4634+
(\FONTEXISTS?.DISPLAY 239176 . 241649)) (241652 256517 (STRIKEFONT.FILEP 241662 . 242550) (
4635+
STRIKEFONT.GETCHARSET 242552 . 248144) (WRITESTRIKEFONTFILE 248146 . 253057) (STRIKECSINFO 253059 .
4636+
256515)) (256548 272865 (MAKEBOLD.CHARSET 256558 . 260207) (MAKEBOLD.CHAR 260209 . 261961) (
4637+
MAKEITALIC.CHARSET 261963 . 265636) (MAKEITALIC.CHAR 265638 . 267984) (\SFMAKEBOLD 267986 . 270210) (
4638+
\SFMAKEITALIC 270212 . 272863)) (272866 277015 (\SFMAKEROTATEDFONT 272876 . 274277) (\SFROTATECSINFO
4639+
274279 . 274916) (\SFROTATEFONTCHARACTERS 274918 . 275298) (\SFROTATECSINFOOFFSETS 275300 . 277013)) (
4640+
277016 278397 (\SFMAKECOLOR 277026 . 278395)))))
46264641
STOP

sources/FONT.LCOM

342 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)