From 20f6407905aea47ff4b74eea2efa71b52d0dadb6 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Thu, 26 Feb 2026 17:03:07 -0800 Subject: [PATCH] Set up to help BDF font creation --- sources/FONT | 133 +++++++++++++++++++++++++--------------------- sources/FONT.LCOM | Bin 68191 -> 68484 bytes sources/MCCS | 98 ++++++++++++++++++---------------- sources/MCCS.LCOM | Bin 25408 -> 25512 bytes 4 files changed, 126 insertions(+), 105 deletions(-) diff --git a/sources/FONT b/sources/FONT index 316e0bca..1a92ec84 100644 --- a/sources/FONT +++ b/sources/FONT @@ -1,10 +1,12 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT UTF-8) +(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8) -(FILECREATED "20-Feb-2026 12:54:44" {WMEDLEY}FONT.;675 277180 +(FILECREATED "26-Feb-2026 17:01:47" {WMEDLEY}FONT.;677 278005 :EDIT-BY rmk - :PREVIOUS-DATE "19-Feb-2026 00:10:22" {WMEDLEY}FONT.;674) + :CHANGES-TO (FNS MOVEFONTCHARS) + + :PREVIOUS-DATE "20-Feb-2026 12:54:44" {WMEDLEY}FONT.;675) (PRETTYCOMPRINT FONTCOMS) @@ -1548,7 +1550,8 @@ NEWDESCENT]) (MOVEFONTCHARS - [LAMBDA (PAIRS DESTFONT DEFAULTSOURCEFONT) (* ; "Edited 4-Sep-2025 11:07 by rmk") + [LAMBDA (PAIRS DESTFONT DEFAULTSOURCEFONT) (* ; "Edited 26-Feb-2026 16:59 by rmk") + (* ; "Edited 4-Sep-2025 11:07 by rmk") (* ; "Edited 30-Aug-2025 23:20 by rmk") (* ; "Edited 26-Aug-2025 23:10 by rmk") (* ; "Edited 25-Aug-2025 09:12 by rmk") @@ -1575,27 +1578,37 @@ (FONTCREATE DEFAULTSOURCEFONT NIL NIL NIL (FONTPROP DESTFONT 'DEVICE)) DESTFONT)) - (LET (PAIRINFO) + [if (HARRAYP PAIRS) + then + (* ;; "E.g. *UNICODETOMCCS*") - (* ;; "Fix/check arguments, and expand out the information for all the source characters, so there is no toe-stepping if there are overlaps.") + [MAPHASH PAIRS (FUNCTION (LAMBDA (VAL KEY) + (CL:UNLESS (EQ VAL KEY) + (\MOVEFONTCHAR (\MOVEFONTCHARS.SOURCEDATA KEY + DEFAULTSOURCEFONT) + VAL DESTFONT))] + else (LET (PAIRINFO) - (SETQ PAIRINFO (for P S DCODE in PAIRS collect (CL:WHEN (SMALLP P) - (SETQ P (LIST P P))) - (SETQ DCODE (CADR P)) - (CL:UNLESS (CHARCODEP DCODE) - (SETQ DCODE (CHARCODE.DECODE DCODE))) - (\INSURECHARSETINFO DESTFONT (\CHARSET - DCODE)) - (LIST (\MOVEFONTCHARS.SOURCEDATA - (CAR P) - DEFAULTSOURCEFONT) - DCODE))) + (* ;; "Fix/check arguments, and expand out the information for all the source characters, so there is no toe-stepping if there are overlaps.") - (* ;; "Install source character information into the destination font. ") + (SETQ PAIRINFO (for P S DCODE in PAIRS collect (CL:WHEN (SMALLP P) + (SETQ P (LIST P P))) + (SETQ DCODE (CADR P)) + (CL:UNLESS (CHARCODEP DCODE) + (SETQ DCODE (CHARCODE.DECODE + DCODE))) + (\INSURECHARSETINFO DESTFONT + (\CHARSET DCODE)) + (LIST (\MOVEFONTCHARS.SOURCEDATA + (CAR P) + DEFAULTSOURCEFONT) + DCODE))) - (for P in PAIRINFO do (\MOVEFONTCHAR (CAR P) - (CADR P) - DESTFONT)))) + (* ;; "Install source character information into the destination font. ") + + (for P in PAIRINFO do (\MOVEFONTCHAR (CAR P) + (CADR P) + DESTFONT]) DESTFONT]) (\MOVEFONTCHAR @@ -4480,43 +4493,43 @@ (ADDTOVAR LAMA FONTCOPY) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (11390 21057 (CHARWIDTH 11400 . 12189) (CHARWIDTHY 12191 . 13708) (STRINGWIDTH 13710 . -14747) (\CHARWIDTH.DISPLAY 14749 . 15164) (\STRINGWIDTH.DISPLAY 15166 . 15594) (\STRINGWIDTH.GENERIC -15596 . 21055)) (21058 27690 (DEFAULTFONT 21068 . 22353) (FONTCLASS 22355 . 24627) (FONTCLASSUNPARSE -24629 . 25530) (FONTCLASSCOMPONENT 25532 . 26120) (SETFONTCLASSCOMPONENT 26122 . 26564) ( -GETFONTCLASSCOMPONENT 26566 . 27688)) (29403 47443 (FONTCREATE 29413 . 32658) (FONTCREATE1 32660 . -35275) (FONTCREATE.SLUGFD 35277 . 36781) (\FONT.CHECKARGS1 36783 . 41488) (\FONTCREATE1.NOFN 41490 . -41704) (FONTFILEP 41706 . 42594) (\READCHARSET 42596 . 47441)) (47444 54520 (\FONT.CHECKARGS 47454 . -54203) (\CHARSET.CHECK 54205 . 54518)) (54521 61132 (COERCEFONTSPEC 54531 . 60443) ( -COERCEFONTSPEC.TARGETFACE 60445 . 61130)) (63327 64676 (MAKEFONTSPEC 63337 . 64674)) (64677 72854 ( -COMPLETE.FONT 64687 . 67210) (COMPLETEFONTP 67212 . 67835) (COMPLETE.CHARSET 67837 . 70522) ( -PRUNESLUGCSINFOS 70524 . 71449) (MONOSPACEFONTP 71451 . 72852)) (72893 81351 (FONTASCENT 72903 . 73287 -) (FONTDESCENT 73289 . 73774) (FONTHEIGHT 73776 . 74178) (FONTPROP 74180 . 80628) (\AVGCHARWIDTH 80630 - . 81349)) (82008 82916 (FONTDEVICEPROP 82018 . 82914)) (82962 83816 (EDITCHAR 82972 . 83814)) (83862 -96052 (GETCHARBITMAP 83872 . 84996) (PUTCHARBITMAP 84998 . 87156) (\GETCHARBITMAP.CSINFO 87158 . 89174 -) (\PUTCHARBITMAP.CSINFO 89176 . 96050)) (96053 116547 (MOVECHARBITMAP 96063 . 97957) (MOVEFONTCHARS -97959 . 101919) (\MOVEFONTCHAR 101921 . 106768) (\MOVEFONTCHARS.SOURCEDATA 106770 . 112885) ( -\MAKESLUGCHAR 112887 . 115422) (SLUGCHARP.DISPLAY 115424 . 116545)) (117205 129054 (FONTFILES 117215 - . 119048) (\FINDFONTFILE 119050 . 121027) (\FONTFILENAMES 121029 . 121589) (\FONTFILENAME 121591 . -124502) (FONTSPECFROMFILENAME 124504 . 129052)) (129055 165304 (FONTCOPY 129065 . 134148) (FONTP -134150 . 134449) (FONTUNPARSE 134451 . 136174) (SETFONTDESCRIPTOR 136176 . 137640) (\STREAMCHARWIDTH -137642 . 141653) (\COERCECHARSET 141655 . 145022) (\BUILDSLUGCSINFO 145024 . 148655) (\FONTSYMBOL -148657 . 149311) (\DEVICESYMBOL 149313 . 150097) (\FONTFACE 150099 . 157303) (\FONTFACE.COLOR 157305 - . 164087) (SETFONTCHARENCODING 164089 . 165302)) (165305 184982 (FONTSAVAILABLE 165315 . 170679) ( -FONTEXISTS? 170681 . 174222) (\SEARCHFONTFILES 174224 . 177311) (FLUSHFONTCACHE 177313 . 179536) ( -FINDFONTFILES 179538 . 182754) (SORTFONTSPECS 182756 . 184980)) (184983 189098 (MATCHFONTFACE 184993 - . 185808) (MAKEFONTFACE 185810 . 186844) (FONTFACETOATOM 186846 . 189096)) (189729 190221 ( -\UNITWIDTHSVECTOR 189739 . 190219)) (204864 206931 (FONTDESCRIPTOR.DEFPRINT 204874 . 206453) ( -FONTCLASS.DEFPRINT 206455 . 206929)) (210760 213550 (\CREATEKERNELEMENT 210770 . 211128) ( -\FSETLEFTKERN 211130 . 211621) (\FGETLEFTKERN 211623 . 213548)) (213551 225217 (\CREATEFONT 213561 . -216457) (\CREATECHARSET 216459 . 220968) (\INSTALLCHARSETINFO 220970 . 224304) ( -\INSTALLCHARSETINFO.CHARENCODING 224306 . 225215)) (225539 226907 (\FONTRESETCHARWIDTHS 225549 . -226905)) (227537 237614 (\CREATEDISPLAYFONT 227547 . 229414) (\CREATECHARSET.DISPLAY 229416 . 235131) -(\FONTEXISTS?.DISPLAY 235133 . 237612)) (237615 252620 (STRIKEFONT.FILEP 237625 . 238513) ( -STRIKEFONT.GETCHARSET 238515 . 244109) (WRITESTRIKEFONTFILE 244111 . 249024) (STRIKECSINFO 249026 . -252618)) (252651 268984 (MAKEBOLD.CHARSET 252661 . 256316) (MAKEBOLD.CHAR 256318 . 258070) ( -MAKEITALIC.CHARSET 258072 . 261751) (MAKEITALIC.CHAR 261753 . 264099) (\SFMAKEBOLD 264101 . 266327) ( -\SFMAKEITALIC 266329 . 268982)) (268985 273009 (\SFMAKEROTATEDFONT 268995 . 270229) (\SFROTATECSINFO -270231 . 270906) (\SFROTATEFONTCHARACTERS 270908 . 271292) (\SFROTATECSINFOOFFSETS 271294 . 273007)) ( -273010 274184 (\SFMAKECOLOR 273020 . 274182))))) + (FILEMAP (NIL (11429 21096 (CHARWIDTH 11439 . 12228) (CHARWIDTHY 12230 . 13747) (STRINGWIDTH 13749 . +14786) (\CHARWIDTH.DISPLAY 14788 . 15203) (\STRINGWIDTH.DISPLAY 15205 . 15633) (\STRINGWIDTH.GENERIC +15635 . 21094)) (21097 27729 (DEFAULTFONT 21107 . 22392) (FONTCLASS 22394 . 24666) (FONTCLASSUNPARSE +24668 . 25569) (FONTCLASSCOMPONENT 25571 . 26159) (SETFONTCLASSCOMPONENT 26161 . 26603) ( +GETFONTCLASSCOMPONENT 26605 . 27727)) (29442 47482 (FONTCREATE 29452 . 32697) (FONTCREATE1 32699 . +35314) (FONTCREATE.SLUGFD 35316 . 36820) (\FONT.CHECKARGS1 36822 . 41527) (\FONTCREATE1.NOFN 41529 . +41743) (FONTFILEP 41745 . 42633) (\READCHARSET 42635 . 47480)) (47483 54559 (\FONT.CHECKARGS 47493 . +54242) (\CHARSET.CHECK 54244 . 54557)) (54560 61171 (COERCEFONTSPEC 54570 . 60482) ( +COERCEFONTSPEC.TARGETFACE 60484 . 61169)) (63366 64715 (MAKEFONTSPEC 63376 . 64713)) (64716 72893 ( +COMPLETE.FONT 64726 . 67249) (COMPLETEFONTP 67251 . 67874) (COMPLETE.CHARSET 67876 . 70561) ( +PRUNESLUGCSINFOS 70563 . 71488) (MONOSPACEFONTP 71490 . 72891)) (72932 81390 (FONTASCENT 72942 . 73326 +) (FONTDESCENT 73328 . 73813) (FONTHEIGHT 73815 . 74217) (FONTPROP 74219 . 80667) (\AVGCHARWIDTH 80669 + . 81388)) (82047 82955 (FONTDEVICEPROP 82057 . 82953)) (83001 83855 (EDITCHAR 83011 . 83853)) (83901 +96091 (GETCHARBITMAP 83911 . 85035) (PUTCHARBITMAP 85037 . 87195) (\GETCHARBITMAP.CSINFO 87197 . 89213 +) (\PUTCHARBITMAP.CSINFO 89215 . 96089)) (96092 117372 (MOVECHARBITMAP 96102 . 97996) (MOVEFONTCHARS +97998 . 102744) (\MOVEFONTCHAR 102746 . 107593) (\MOVEFONTCHARS.SOURCEDATA 107595 . 113710) ( +\MAKESLUGCHAR 113712 . 116247) (SLUGCHARP.DISPLAY 116249 . 117370)) (118030 129879 (FONTFILES 118040 + . 119873) (\FINDFONTFILE 119875 . 121852) (\FONTFILENAMES 121854 . 122414) (\FONTFILENAME 122416 . +125327) (FONTSPECFROMFILENAME 125329 . 129877)) (129880 166129 (FONTCOPY 129890 . 134973) (FONTP +134975 . 135274) (FONTUNPARSE 135276 . 136999) (SETFONTDESCRIPTOR 137001 . 138465) (\STREAMCHARWIDTH +138467 . 142478) (\COERCECHARSET 142480 . 145847) (\BUILDSLUGCSINFO 145849 . 149480) (\FONTSYMBOL +149482 . 150136) (\DEVICESYMBOL 150138 . 150922) (\FONTFACE 150924 . 158128) (\FONTFACE.COLOR 158130 + . 164912) (SETFONTCHARENCODING 164914 . 166127)) (166130 185807 (FONTSAVAILABLE 166140 . 171504) ( +FONTEXISTS? 171506 . 175047) (\SEARCHFONTFILES 175049 . 178136) (FLUSHFONTCACHE 178138 . 180361) ( +FINDFONTFILES 180363 . 183579) (SORTFONTSPECS 183581 . 185805)) (185808 189923 (MATCHFONTFACE 185818 + . 186633) (MAKEFONTFACE 186635 . 187669) (FONTFACETOATOM 187671 . 189921)) (190554 191046 ( +\UNITWIDTHSVECTOR 190564 . 191044)) (205689 207756 (FONTDESCRIPTOR.DEFPRINT 205699 . 207278) ( +FONTCLASS.DEFPRINT 207280 . 207754)) (211585 214375 (\CREATEKERNELEMENT 211595 . 211953) ( +\FSETLEFTKERN 211955 . 212446) (\FGETLEFTKERN 212448 . 214373)) (214376 226042 (\CREATEFONT 214386 . +217282) (\CREATECHARSET 217284 . 221793) (\INSTALLCHARSETINFO 221795 . 225129) ( +\INSTALLCHARSETINFO.CHARENCODING 225131 . 226040)) (226364 227732 (\FONTRESETCHARWIDTHS 226374 . +227730)) (228362 238439 (\CREATEDISPLAYFONT 228372 . 230239) (\CREATECHARSET.DISPLAY 230241 . 235956) +(\FONTEXISTS?.DISPLAY 235958 . 238437)) (238440 253445 (STRIKEFONT.FILEP 238450 . 239338) ( +STRIKEFONT.GETCHARSET 239340 . 244934) (WRITESTRIKEFONTFILE 244936 . 249849) (STRIKECSINFO 249851 . +253443)) (253476 269809 (MAKEBOLD.CHARSET 253486 . 257141) (MAKEBOLD.CHAR 257143 . 258895) ( +MAKEITALIC.CHARSET 258897 . 262576) (MAKEITALIC.CHAR 262578 . 264924) (\SFMAKEBOLD 264926 . 267152) ( +\SFMAKEITALIC 267154 . 269807)) (269810 273834 (\SFMAKEROTATEDFONT 269820 . 271054) (\SFROTATECSINFO +271056 . 271731) (\SFROTATEFONTCHARACTERS 271733 . 272117) (\SFROTATECSINFOOFFSETS 272119 . 273832)) ( +273835 275009 (\SFMAKECOLOR 273845 . 275007))))) STOP diff --git a/sources/FONT.LCOM b/sources/FONT.LCOM index 10c2ab6a6667724c66c63137f8bf9b4a96eab295..a5dd658464ec2ffc17342d9b58401e599f283012 100644 GIT binary patch delta 1491 zcmZux&u<$=6y8nJUxtdLNmI2=@sm}7tzv6ue|fz~;PLJ_UUj{@*;!jyTT z1RUVt3lh*1VUai>fdt2hs>Mo=SXF!Bf;jb5iT(pfoIpq%c(ZmLr?8iK``(**?|t7l z^V^pTAAhwF6=sBE2y(U)h5Iy#{TH?#;m_msT839 z)_XVl@IU#gUMS^?qF)D_N|^gh(xhT~O# zX=!a|&d}1qi|1E?Xf@azx0M~m5~x+vpVnGeEtn!00WnSR+K6!&aUezwc!JS(y5C;8 zLP&KswWb0xL_2;W`WyOJ9`FHG6or88TDhVRMFQ7Z4;1K9zXVM*Ciy(<#7;I9dI@@Y zb_C9_D$PlAb^6C`8s)?Y^^NDmvbeJ-6|wr}EE0ozL{w96An_oesjx~zFYUvAmYXcnv$2lR24uT&ibXmn^ zVnLp!t_Vy6GC5=d10+cNMR6E`PM}Sr7UeCJ7T_5%?IEGcOg^fUs8;4c(4CiJFG|7~ z3>`V>dJY54gjtAr#^><+y?ZODF!`@VY54vp+w$p;hBvpw#OdQtzbI(1DSF_&b|dsb z*EOLTFIcazjSlret7*f}KP$@GxGsAmVFC9-)V7AROn*VcSu*8~6_@lP#)pq?ErY21 z=Q$}oagfiwK3Y&2S?;TX0|0g5D&D_J^56;R1lx-Min&J_2IOsJUIsq01 z-NI`?qlg8r3c98Pr<{k5=yGZr#?(~FQ&Yu_lUxobO)=Bg?q8bM6eU|# zOBd?}RmTg$8EU5`_z=$!cBrNDqvcgq9SeoiF7^EEu_RViY}+EHmI>l0G`_^duqMQM lffL5~mKp@Y!0(}?5Fo@=2vbxNQkp0UN&XLqPi_z1{1*nPfA0VQ delta 1235 zcmZuxL2nyH6!s>uN+K0VQx!FF-G>#aw!mg)cGg}mAa%Suj#sRAmYucJ2y-BEMNoxM z144*PE=Yv}hcK16BCe#k#R?J!f?`|5 zU6w%cFnVSURomBhs|1lcVB%QRq4wd2&tJ4Euu{U!6DJ`Kr4FWtlZ_Wo+iSI235IXH zcYO$t*-uERvQkd*x*Al%J@uJkIzSo?Y$I^E=O@+H4(z{u1Dq)4eP8rs)zcdv$&QeN zkwb`j&L|jkJTWe=Uw}4Ppc!GkAZd#*sX%VBw4i?5=;u9lyx3DO7xoru6V!v^`3rze z3kFjVZimH^C(tz2&xKB#!kn)NaGikP)r^Wr0=6uWiS~9iH+4vpcwD-%A0;9NjLlP# z<99CoBoDyx?3Ho=Wimr1MK5-F8VXq3WCj%wM9hz6MPvT%iCk{+>eu&kciD1IKf4Q) z*6|wKU7B27y?Lgycznq}cR%;}-f+m?O#LhA>uf%K-}}`V4D-gF;okcCV8M8OS>4$0 z8n@IB`V(s}q5jKW&iz_@{^LYA!2A!KCu*|IXX%Nsx z_7}xMABNQX*PdObX}Nvh<>R~Wet*88mBIBXjZ^xPoruc{7=Jx&jNkfr*T{b`-rENC z%O_uy5DZdsr6s+lH-1N44d@Gfutj&GEydv&Ml5QpA}=GUBcT zYTM8Ybw0f^VZfq@haLe+Y>-S!;eu&5=1bjdGb`4eGu=RR;A}~42wA)(f#}|u8PWUz z(m{A;#?AQ&*q)z@>lU~o(BqVJb=&(|fKzJdkqVehv|j4RZ?8N_AQT}7S~t^$dTInl zQ=w5|p!u0$fL#04ENHkVc!1$W%Z- fbVaQ17hR(WgB^{GKuRJsX%=}hIph4jgV+8ASX@Mn diff --git a/sources/MCCS b/sources/MCCS index 685f3338..f4524019 100644 --- a/sources/MCCS +++ b/sources/MCCS @@ -1,10 +1,12 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT UTF-8) +(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8) -(FILECREATED "20-Feb-2026 09:21:16" {WMEDLEY}MCCS.;167 61063 +(FILECREATED "26-Feb-2026 12:57:11" {WMEDLEY}MCCS.;168 61634 :EDIT-BY rmk - :PREVIOUS-DATE "19-Feb-2026 13:32:23" {WMEDLEY}MCCS.;165) + :CHANGES-TO (FNS MCCSMAPPAIRS) + + :PREVIOUS-DATE "20-Feb-2026 09:21:16" {WMEDLEY}MCCS.;167) (PRETTYCOMPRINT MCCSCOMS) @@ -1366,7 +1368,8 @@ NIL]) (MCCSMAPPAIRS - [LAMBDA (FROMENCODING NONIDENTITY) (* ; "Edited 7-Oct-2025 14:47 by rmk") + [LAMBDA (FROMENCODING NONIDENTITY) (* ; "Edited 26-Feb-2026 12:56 by rmk") + (* ; "Edited 7-Oct-2025 14:47 by rmk") (* ; "Edited 6-Oct-2025 09:47 by rmk") (* ; "Edited 20-Sep-2025 09:45 by rmk") (* ; "Edited 6-Sep-2025 16:43 by rmk") @@ -1374,27 +1377,30 @@ (* ;; "Returns the pairs for MOVEFONTCHARS to use to move charset-0 glyphs into their MCCS positions. For example, the Leftarrow and Lowline glyphs switch positions in an XCCS$ font. Returns NIL (= nothing to do) if there is no function.") - (LET ((FN (MCCSMAPFN FROMENCODING)) - PAIRS KEEPCS0) - (CL:WHEN FN - [SETQ PAIRS (SELECTQ FROMENCODING - (GACHA (* ; "ctrl and upper are slugged") - [APPEND (XCCSUNDEFINEDPAIRS) - '(((Uparrow TERMINAL) - Circumflex) - (↑X Lowline]) - (ALTOTEXT (APPEND (XCCSUNDEFINEDPAIRS) - ALTOTEXT2MCCS)) - (XCCS$ '((Uparrow Circumflex) - (Leftarrow Lowline) - (Lowline Leftarrow) - (Circumflex Uparrow))) - (PALATINO (APPEND (XCCS.CS0.UNDEFINED) - PALATINOTOMCCS)) - (PROGN (SETQ KEEPCS0 T) - (for C M from 0 to \MAXTHINCHAR - when (SETQ M (APPLY* FN C NONIDENTITY)) - collect (LIST C M] + (LET (PAIRS KEEPCS0) + [SETQ PAIRS (SELECTQ FROMENCODING + (GACHA (* ; "ctrl and upper are slugged") + [APPEND (XCCSUNDEFINEDPAIRS) + '(((Uparrow TERMINAL) + Circumflex) + (↑X Lowline]) + (ALTOTEXT (APPEND (XCCSUNDEFINEDPAIRS) + ALTOTEXT2MCCS)) + (XCCS$ '((Uparrow Circumflex) + (Leftarrow Lowline) + (Lowline Leftarrow) + (Circumflex Uparrow))) + (UNICODE *UNICODETOMCCS*) + (PALATINO (APPEND (XCCS.CS0.UNDEFINED) + PALATINOTOMCCS)) + (PROGN (SETQ KEEPCS0 T) + (for C M FN from 0 to \MAXTHINCHAR first (CL:UNLESS (SETQ FN + (MCCSMAPFN + FROMENCODING)) + (RETURN)) + when (SETQ M (APPLY* FN C NONIDENTITY)) + collect (LIST C M] + (CL:WHEN (LISTP PAIRS) (* ;; "Weed out interspersed comments, convert to charcodes") @@ -1417,14 +1423,16 @@ (* ;; "Any character that is moved gets replaced by a slug. It may then be coerced from another font. But families like SYMBOL, HIPPO etc. want to preserve CS0 even if they copy their glyphs also to somewhere else.") - [APPEND PAIRS (for P in PAIRS when (CAR P) - unless [OR (AND KEEPCS0 (ILEQ (CAR P) - \MAXTHINCHAR)) - (AND (LISTP (CAR P)) - (LITATOM (CADAR P))) - (thereis X in PAIRS suchthat (EQ (CADR X) - (CAR P] - collect (LIST NIL (CAR P])]) + [SETQ PAIRS (APPEND PAIRS (for P in PAIRS when (CAR P) + unless [OR (AND KEEPCS0 (ILEQ (CAR P) + \MAXTHINCHAR)) + (AND (LISTP (CAR P)) + (LITATOM (CADAR P))) + (thereis X in PAIRS + suchthat (EQ (CADR X) + (CAR P] + collect (LIST NIL (CAR P]) + PAIRS]) (XCCS.CS0.UNDEFINED [LAMBDA NIL (* ; "Edited 5-Oct-2025 22:44 by rmk") @@ -1571,16 +1579,16 @@ (RPAQ? *SYSTEM-EXTERNALFORMAT* :UTF-8) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3065 14636 (\MCCSINCCODE 3075 . 6163) (\MCCSPEEKCCODE 6165 . 9052) (\MCCSOUTCHAR 9054 - . 11153) (\MCCSBACKCCODE 11155 . 12699) (\MCCSFORMATBYTESTREAM 12701 . 13431) (\MCCSCHARSETFN 13433 - . 14634)) (14637 17088 (\CREATE.MCCS.EXTERNALFORMAT 14647 . 15517) (\CREATE.XCCS.EXTERNALFORMAT 15519 - . 17086)) (17089 18066 (\MCCS.24BITENCODING.ERROR 17099 . 18064)) (19442 22084 (MTOXCODE 19452 . -20249) (XTOMCODE 20251 . 20908) (XTOMSTRING 20910 . 21497) (MTOXSTRING 21499 . 22082)) (22085 23745 ( -MTOX$CODE 22095 . 22827) (X$TOMCODE 22829 . 23743)) (23746 24386 (KANJICHARSETP 23756 . 24012) ( -CHINESECHARSETP 24014 . 24384)) (44966 47455 (MCCSCODEMAPARRAY 44976 . 47453)) (48071 54554 (MCCSMAPFN - 48081 . 49448) (MCCSMAPPAIRS 49450 . 53560) (XCCS.CS0.UNDEFINED 53562 . 54191) (XCCSUNDEFINEDPAIRS -54193 . 54552)) (54659 59413 (GACHATOMCODE 54669 . 55183) (SYMBOLTOMCODE 55185 . 55833) (SIGMATOMCODE -55835 . 56481) (ATOMCODE 56483 . 57015) (MATHTOMCODE 57017 . 57673) (HIPPOTOMCODE 57675 . 58212) ( -CYRILLICTOMCODE 58214 . 58648) (PALATINOTOMCODE 58650 . 59411)) (59414 60852 (SYSTEM-EXTERNALFORMAT -59424 . 60368) (MTOSYSSTRING 60370 . 60563) (SYSTOMSTRING 60565 . 60850))))) + (FILEMAP (NIL (3103 14674 (\MCCSINCCODE 3113 . 6201) (\MCCSPEEKCCODE 6203 . 9090) (\MCCSOUTCHAR 9092 + . 11191) (\MCCSBACKCCODE 11193 . 12737) (\MCCSFORMATBYTESTREAM 12739 . 13469) (\MCCSCHARSETFN 13471 + . 14672)) (14675 17126 (\CREATE.MCCS.EXTERNALFORMAT 14685 . 15555) (\CREATE.XCCS.EXTERNALFORMAT 15557 + . 17124)) (17127 18104 (\MCCS.24BITENCODING.ERROR 17137 . 18102)) (19480 22122 (MTOXCODE 19490 . +20287) (XTOMCODE 20289 . 20946) (XTOMSTRING 20948 . 21535) (MTOXSTRING 21537 . 22120)) (22123 23783 ( +MTOX$CODE 22133 . 22865) (X$TOMCODE 22867 . 23781)) (23784 24424 (KANJICHARSETP 23794 . 24050) ( +CHINESECHARSETP 24052 . 24422)) (45004 47493 (MCCSCODEMAPARRAY 45014 . 47491)) (48109 55125 (MCCSMAPFN + 48119 . 49486) (MCCSMAPPAIRS 49488 . 54131) (XCCS.CS0.UNDEFINED 54133 . 54762) (XCCSUNDEFINEDPAIRS +54764 . 55123)) (55230 59984 (GACHATOMCODE 55240 . 55754) (SYMBOLTOMCODE 55756 . 56404) (SIGMATOMCODE +56406 . 57052) (ATOMCODE 57054 . 57586) (MATHTOMCODE 57588 . 58244) (HIPPOTOMCODE 58246 . 58783) ( +CYRILLICTOMCODE 58785 . 59219) (PALATINOTOMCODE 59221 . 59982)) (59985 61423 (SYSTEM-EXTERNALFORMAT +59995 . 60939) (MTOSYSSTRING 60941 . 61134) (SYSTOMSTRING 61136 . 61421))))) STOP diff --git a/sources/MCCS.LCOM b/sources/MCCS.LCOM index 66eb5da431db55b8b51f186d47cf95be9841c3c3..4b2d7afd773814edaeb3e6933d3886a6bf802e00 100644 GIT binary patch delta 1059 zcmZuwOK%cU7-e8#C6Q9>J5Bp#(i%V^%nS@LCWh(E9XbMYN0{3B3R-CjmOfHls4*dN zY2u=x+QdW`u3S#RE{us77n-;>(SKoE-Pb#S^pQ?7-@W%c=R5ax?&q)6yKj{4m64)q zD4?im6i_tJm=coi)N&ckc+k(0`zt16z(1!U1cRTst8Hz~e%T+u*> zIAlnSfJ7n#DTH(>7b1P~TRW=m_6ZgLw5Cc}Mh3Qo{h$C7BXC+YR1LS1KA^t19X5MU z!jUK}*vPk2>uYpbofRuMt*~X=Xk%|$&r-a&$1U?0cAv|;8s=ZkGg~M)Y7>n@kJyd-9or*#kfhoJ$I~s_bKEuPX-?{{o*8%~ zm+{EC{II!4KT9UMmS0vb}0+-mSN2iJ(uRFF+72gk-=cyZZiav!JnWJ zKBB=y;U=*v(qtAY3>meJLY%;am;)>xhFNmcL1KmAwAOlhGDO$|MmW-BbikJV+1LSt zSj5se${(c2o3yqr( z)*5h1zsR#m&y?d|rY0?{*v}ZT020qhA{4QrS*g-8+}~V>qFKdPHL_SsDO5+z@P(mM zUMz|NHDk{*<4m^ufssO!6)-^pnMMK17@Km9qd5;I(yBF@aiAJ@GF&W~NJo}t5Q|h~ zxt0W`>vy}{bLU<31kjm<{gFp6U61D)w;kfB6Y8CFk}W5AoX{rrUO2pyAJm`r3+?H- z0es#UUtFT8(eM#kdK5%4$34-!5`#2^EGAqeSWmzUhsMA zp-$8wp=K;r5B7-vAV7l6SlwUu_Kfw97jCroNH9_N_u4<~R^*{?mW(IrvGy@jk29Ss zm+fznv2m^W=K9FN+2($vJ;SWH84_oXp6K0)R{Lw&PDCemetzk9_1ed-DWQ-Dc>z^r zqTsZGoePA#c*4;So6DS_6NSW|a8!{wWrq0o3_dHt3NlS>C<6F+jvJzaXn&4|yi#UJ zWpnmnV$=s2e#nWu!zqvjXMYuBss{b11U?VbkeBGb2kV6#4@*=q37G;Q-69rVvOo}E X9?`d?9gxf0+hdDvQR*I!ebRmd{)XTk