From e12891cf282f2a93d7f3fa9b751b58009ebc1aa4 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Fri, 20 Feb 2026 17:17:59 -0800 Subject: [PATCH] 2 files in the MAKEINIT that have been converted to UTF-8 --- sources/EXTERNALFORMAT | 346 ++++++++++++++++++++++++------------ sources/EXTERNALFORMAT.LCOM | Bin 14059 -> 15442 bytes sources/MCCS | 232 ++++++------------------ sources/MCCS.LCOM | Bin 26997 -> 25408 bytes 4 files changed, 285 insertions(+), 293 deletions(-) diff --git a/sources/EXTERNALFORMAT b/sources/EXTERNALFORMAT index 452ec1e9..149e9688 100644 --- a/sources/EXTERNALFORMAT +++ b/sources/EXTERNALFORMAT @@ -1,13 +1,10 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT UTF-8) -(FILECREATED " 9-Feb-2026 15:54:22" {WMEDLEY}EXTERNALFORMAT.;120 47422 +(FILECREATED "20-Feb-2026 09:18:35" {WMEDLEY}EXTERNALFORMAT.;123 51558 :EDIT-BY rmk - :CHANGES-TO (VARS EXTERNALFORMATCOMS) - (FNS \CREATE.THROUGH16.EXTERNALFORMAT \CREATE.THROUGH.EXTERNALFORMAT) - - :PREVIOUS-DATE " 6-Feb-2026 23:21:32" {WMEDLEY}EXTERNALFORMAT.;116) + :PREVIOUS-DATE "19-Feb-2026 13:32:00" {WMEDLEY}EXTERNALFORMAT.;122) (PRETTYCOMPRINT EXTERNALFORMATCOMS) @@ -23,9 +20,6 @@ (EXPORT (GLOBALVARS *EXTERNALFORMATS* *DEFAULT-EXTERNALFORMAT*)) (INITVARS (*EXTERNALFORMATS* NIL) (*DEFAULT-EXTERNALFORMAT* :MCCS)) - (COMS (FNS SYSTEM-EXTERNALFORMAT MTOSYSSTRING SYSTOMSTRING) - (EXPORT (GLOBALVARS *SYSTEM-EXTERNALFORMAT*)) - (INITVARS (*SYSTEM-EXTERNALFORMAT* :UTF-8))) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (DEFPRINT 'EXTERNALFORMAT (FUNCTION \EXTERNALFORMAT.DEFPRINT ] @@ -41,6 +35,13 @@ [COMS (* ; "NULL device, from FILEIO") (FNS \NULLDEVICE \NULL.OPENFILE) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\NULLDEVICE] + [COMS (* ; "ISO8859/1") + (FNS ISO1TOMCODE MTOISO1CODE \CREATE.ISO1.FORMAT \DUMMY-UTF8-FORMAT) + (FNS ISO1TOMSTRING MTOISO1STRING) + (VARS ISO1TOMCCS) + (GLOBALVARS ISO1TOMCCS) + (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\CREATE.ISO1.FORMAT) + (\DUMMY-UTF8-FORMAT] (COMS (* ;; "Also from FILEIO.") @@ -243,18 +244,18 @@ (NIL) (SHOULDNT))) (\INSTALL.EXTERNALFORMAT (CREATE EXTERNALFORMAT - NAME _ NAME - INCCODEFN _ INCCODEFN - PEEKCCODEFN _ PEEKCCODEFN - BACKCCODEFN _ BACKCCODEFN - OUTCHARFN _ OUTCHARFN - FORMATBYTESTREAMFN _ FORMATBYTESTREAMFN - EOLVALID _ EOL - EOL _ (OR EOL LF.EOLC) - UNSTABLE _ UNSTABLE - MCCSTOFORMATBYTESFN _ MCCSTOFORMATBYTESFN - FORMATBYTESTOMCCSFN _ FORMATBYTESTOMCCSFN - FORMATCHARSETFN _ (OR FORMATCHARSETFN (FUNCTION NILL]) + NAME ← NAME + INCCODEFN ← INCCODEFN + PEEKCCODEFN ← PEEKCCODEFN + BACKCCODEFN ← BACKCCODEFN + OUTCHARFN ← OUTCHARFN + FORMATBYTESTREAMFN ← FORMATBYTESTREAMFN + EOLVALID ← EOL + EOL ← (OR EOL LF.EOLC) + UNSTABLE ← UNSTABLE + MCCSTOFORMATBYTESFN ← MCCSTOFORMATBYTESFN + FORMATBYTESTOMCCSFN ← FORMATBYTESTOMCCSFN + FORMATCHARSETFN ← (OR FORMATCHARSETFN (FUNCTION NILL]) (\EXTERNALFORMAT.DEFPRINT [LAMBDA (EXTERNALFORMAT STREAM) (* ; "Edited 2-Jul-2022 11:40 by rmk") @@ -268,7 +269,7 @@ (DEFINEQ (\INSTALL.EXTERNALFORMAT - [LAMBDA (EXTFORMAT/NAME EXTERNALFORMAT) (* ; "Edited 5-Aug-2021 14:22 by rmk:") + [LAMBDA (EXTFORMAT/NAME EXTERNALFORMAT) (* ; "Edited 5-Aug-2021 14:22 by rmk:") (* ;;; "Register an instance of the datatype EXTERNALFORMAT.") @@ -277,25 +278,23 @@ (LET (NAME) (IF EXTERNALFORMAT THEN + (* ;; "Backwards compatibility") - (* ;; "Backwards compatibility") - - (SETQ NAME (MKATOM EXTFORMAT/NAME)) - (IF (EQ NAME (FETCH (EXTERNALFORMAT NAME) OF EXTERNALFORMAT)) - ELSEIF (FETCH (EXTERNALFORMAT NAME) OF EXTERNALFORMAT) - THEN (ERROR "Mismatch of specified name and name of the external format") - ELSE (REPLACE (EXTERNALFORMAT NAME) OF EXTERNALFORMAT WITH - NAME)) + (SETQ NAME (MKATOM EXTFORMAT/NAME)) + (IF (EQ NAME (FETCH (EXTERNALFORMAT NAME) OF EXTERNALFORMAT)) + ELSEIF (FETCH (EXTERNALFORMAT NAME) OF EXTERNALFORMAT) + THEN (ERROR "Mismatch of specified name and name of the external format") + ELSE (REPLACE (EXTERNALFORMAT NAME) OF EXTERNALFORMAT WITH NAME)) ELSE (SETQ EXTERNALFORMAT EXTFORMAT/NAME) - (SETQ NAME (FETCH (EXTERNALFORMAT NAME) OF EXTERNALFORMAT))) + (SETQ NAME (FETCH (EXTERNALFORMAT NAME) OF EXTERNALFORMAT))) (IF (type? EXTERNALFORMAT EXTERNALFORMAT) THEN (\REMOVE.EXTERNALFORMAT NAME) - (push *EXTERNALFORMATS* EXTERNALFORMAT) + (push *EXTERNALFORMATS* EXTERNALFORMAT) ELSE (ERROR "INVALID EXTERNALFORMAT " EXTERNALFORMAT)) EXTERNALFORMAT]) (\REMOVE.EXTERNALFORMAT - [LAMBDA (NAME/EXTFORMAT) (* ; "Edited 5-May-2021 15:42 by rmk:") + [LAMBDA (NAME/EXTFORMAT) (* ; "Edited 5-May-2021 15:42 by rmk:") (* ;;; "Deregisters external format EXTERNALFORMAT .") @@ -303,9 +302,8 @@ THEN (FETCH (EXTERNALFORMAT NAME) OF NAME/EXTFORMAT) ELSE (MKATOM NAME/EXTFORMAT))) (SETQ *EXTERNALFORMATS* (DREMOVE (FIND EF IN *EXTERNALFORMATS* - SUCHTHAT (EQ NAME/EXTFORMAT (FETCH (EXTERNALFORMAT - NAME) - OF EF))) + SUCHTHAT (EQ NAME/EXTFORMAT (FETCH (EXTERNALFORMAT NAME) + OF EF))) *EXTERNALFORMATS*]) (FIND-FORMAT @@ -330,41 +328,6 @@ (RPAQ? *EXTERNALFORMATS* NIL) (RPAQ? *DEFAULT-EXTERNALFORMAT* :MCCS) -(DEFINEQ - -(SYSTEM-EXTERNALFORMAT - [LAMBDA NIL (* ; "Edited 6-Feb-2026 11:29 by rmk") - (* ; "Edited 31-Jan-2026 18:51 by rmk") - (* ; "Edited 10-Oct-2022 11:55 by lmm") - (* ; "Edited 7-Jul-2022 10:41 by rmk") - - (* ;; "Returns the name, sets the global. For now, UTF-8 or through, could be something else.") - - (fetch (EXTERNALFORMAT NAME) of (SETQ *SYSTEM-EXTERNALFORMAT* - (FIND-FORMAT (FOR X IN '("LCCTYPE" "LCALL" "LANG") - WHEN (STRPOS ".UTF-8" (UNIX-GETENV X)) - DO (RETURN :UTF-8) FINALLY (RETURN :THROUGH]) - -(MTOSYSSTRING - [LAMBDA (MSTRING) (* ; "Edited 6-Feb-2026 00:20 by rmk") - (MCCSTOFORMATBYTES *SYSTEM-EXTERNALFORMAT* (MKSTRING MSTRING]) - -(SYSTOMSTRING - [LAMBDA (SYSTRING) (* ; "Edited 5-Feb-2026 23:36 by rmk") - - (* ;; "SYSSTRING is presumably shared with Unix, guarantee a copy on the way out") - - (CONCAT (FORMATBYTESTOMCCS *SYSTEM-EXTERNALFORMAT* SYSTRING]) -) -(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: DOEVAL@COMPILE DONTCOPY - -(GLOBALVARS *SYSTEM-EXTERNALFORMAT*) -) - -(* "END EXPORTED DEFINITIONS") - - -(RPAQ? *SYSTEM-EXTERNALFORMAT* :UTF-8) (DECLARE%: DONTEVAL@LOAD DOCOPY (DEFPRINT 'EXTERNALFORMAT (FUNCTION \EXTERNALFORMAT.DEFPRINT)) @@ -730,41 +693,41 @@ (* ;; "Defines the NULL device, an infinite source or sink") (\DEFINEDEVICE 'NULL (create FDEV - DEVICENAME _ 'NULL - RANDOMACCESSP _ T - NODIRECTORIES _ T - CLOSEFILE _ (FUNCTION NILL) - DELETEFILE _ (FUNCTION NILL) - OPENFILE _ (FUNCTION \NULL.OPENFILE) - REOPENFILE _ (FUNCTION \NULL.OPENFILE) - BIN _ (FUNCTION \EOF.ACTION) - BOUT _ (FUNCTION NILL) - PEEKBIN _ [FUNCTION (LAMBDA (STREAM NOERRORFLG) + DEVICENAME ← 'NULL + RANDOMACCESSP ← T + NODIRECTORIES ← T + CLOSEFILE ← (FUNCTION NILL) + DELETEFILE ← (FUNCTION NILL) + OPENFILE ← (FUNCTION \NULL.OPENFILE) + REOPENFILE ← (FUNCTION \NULL.OPENFILE) + BIN ← (FUNCTION \EOF.ACTION) + BOUT ← (FUNCTION NILL) + PEEKBIN ← [FUNCTION (LAMBDA (STREAM NOERRORFLG) (AND (NULL NOERRORFLG) (BIN STREAM] - READP _ (FUNCTION NILL) - BACKFILEPTR _ (FUNCTION NILL) - EOFP _ (FUNCTION TRUE) - RENAMEFILE _ (FUNCTION NILL) - GETFILENAME _ (FUNCTION NILL) - EVENTFN _ (FUNCTION NILL) - BLOCKIN _ (FUNCTION \EOF.ACTION) - BLOCKOUT _ (FUNCTION NILL) - GENERATEFILES _ (FUNCTION \NULLFILEGENERATOR) - GETFILEPTR _ (FUNCTION ZERO) - GETEOFPTR _ (FUNCTION ZERO) - SETFILEPTR _ (FUNCTION NILL) - GETFILEINFO _ (FUNCTION NILL) - SETFILEINFO _ (FUNCTION NILL) - SETEOFPTR _ (FUNCTION NILL]) + READP ← (FUNCTION NILL) + BACKFILEPTR ← (FUNCTION NILL) + EOFP ← (FUNCTION TRUE) + RENAMEFILE ← (FUNCTION NILL) + GETFILENAME ← (FUNCTION NILL) + EVENTFN ← (FUNCTION NILL) + BLOCKIN ← (FUNCTION \EOF.ACTION) + BLOCKOUT ← (FUNCTION NILL) + GENERATEFILES ← (FUNCTION \NULLFILEGENERATOR) + GETFILEPTR ← (FUNCTION ZERO) + GETEOFPTR ← (FUNCTION ZERO) + SETFILEPTR ← (FUNCTION NILL) + GETFILEINFO ← (FUNCTION NILL) + SETFILEINFO ← (FUNCTION NILL) + SETEOFPTR ← (FUNCTION NILL]) (\NULL.OPENFILE [LAMBDA (NAME ACCESS RECOG PARAMETERS DEVICE OLDSTREAM) (* bvm%: "30-Jan-85 22:05") (OR OLDSTREAM (create STREAM - USERCLOSEABLE _ T - ACCESS _ ACCESS - FULLFILENAME _ NIL - DEVICE _ DEVICE]) + USERCLOSEABLE ← T + ACCESS ← ACCESS + FULLFILENAME ← NIL + DEVICE ← DEVICE]) ) (DECLARE%: DONTEVAL@LOAD DOCOPY @@ -773,6 +736,166 @@ +(* ; "ISO8859/1") + +(DEFINEQ + +(ISO1TOMCODE + [LAMBDA (ICODE) (* ; "Edited 5-Feb-2026 12:09 by rmk") + (* ; "Edited 2-Feb-2026 23:14 by rmk") + (* ; "Edited 7-Sep-2025 22:39 by rmk") + (* ; "Edited 3-Sep-2025 10:21 by rmk") + (* ; "Edited 7-Aug-2025 09:37 by rmk") + + (* ;; "ISO codes are 8bit, MCODES maybe not. Caller shouldn't pass a fat code.") + + (OR [CAR (find PAIR in ISO1TOMCCS suchthat (EQ ICODE (CADR PAIR] + ICODE]) + +(MTOISO1CODE + [LAMBDA (MCODE) (* ; "Edited 5-Feb-2026 12:26 by rmk") + (* ; "Edited 2-Feb-2026 22:58 by rmk") + (OR (CADR (ASSOC MCODE ISO1TOMCCS)) + MCODE]) + +(\CREATE.ISO1.FORMAT + [LAMBDA NIL (* ; "Edited 5-Feb-2026 10:42 by rmk") + (* ; "Edited 2-Feb-2026 23:37 by rmk") + (* ; "Edited 1-Feb-2026 11:18 by rmk") + (* ; "Edited 5-Aug-2021 22:15 by rmk:") + (* ; "Edited 9-Mar-99 17:19 by rmk:") + (* ; "Edited 7-Dec-95 16:24 by ") + (* ; "Edited 7-Dec-95 16:20 by ") + (MAKE-EXTERNALFORMAT :ISO8859/1 [FUNCTION (LAMBDA (STREAM COUNTP) + (ISO1TOMCODE (\THROUGHIN STREAM COUNTP] + [FUNCTION (LAMBDA (STREAM NOERRORFLG) + (ISO1TOMCODE (\PEEKBIN STREAM NOERRORFLG] + (FUNCTION \THROUGHBACKCCODE) + (FUNCTION NILL) + (FUNCTION NILL) + NIL NIL (FUNCTION MTOISO1STRING) + NIL + (FUNCTION NILL) + (FUNCTION ISO1TOMSTRING]) + +(\DUMMY-UTF8-FORMAT + [LAMBDA NIL (* ; "Edited 5-Feb-2026 15:58 by rmk") + (* ; "Edited 1-Feb-2026 13:16 by rmk") + + (* ;; "Works only for 7-bit codes, during the loadup") + + (\INSTALL.EXTERNALFORMAT (create EXTERNALFORMAT using (FIND-FORMAT :ISO8859/1) + NAME ← :UTF-8]) +) +(DEFINEQ + +(ISO1TOMSTRING + [LAMBDA (ISTRING DESTRUCTIVE) (* ; "Edited 5-Feb-2026 11:01 by rmk") + (* ; "Edited 2-Feb-2026 23:46 by rmk") + (* ; "Edited 2-Sep-2025 12:14 by rmk") + (* ; "Edited 29-Apr-2025 13:08 by rmk") + + (* ;; "Converts ISO8859/1 codes to MCCS codes in MSTRING.") + + (for I ICODE (MSTRING ← (CL:IF DESTRUCTIVE + ISTRING + (CONCAT ISTRING))) from 1 while (SETQ ICODE (NTHCHARCODE ISTRING I)) + do (RPLCHARCODE MSTRING I (ISO1TOMCODE ICODE)) finally (RETURN MSTRING]) + +(MTOISO1STRING + [LAMBDA (MSTRING DESTRUCTIVE) (* ; "Edited 2-Feb-2026 23:47 by rmk") + (* ; "Edited 2-Sep-2025 12:22 by rmk") + (* ; "Edited 29-Apr-2025 13:08 by rmk") + + (* ;; "Converts MCCS to ISO8859/1 codes in MSTRING.") + + (for I MCODE (ISTRING ← (CL:IF DESTRUCTIVE + MSTRING + (CONCAT MSTRING))) from 1 while (SETQ MCODE (NTHCHARCODE MSTRING I)) + do (RPLCHARCODE ISTRING I (MTOISO1CODE MCODE)) finally (RETURN ISTRING]) +) + +(RPAQQ ISO1TOMCCS + ((94 8593) + (95 8592) + (169 8216) + (170 8220) + (172 95) + (173 94) + (174 8594) + (175 8595) + (180 215) + (184 247) + (185 8217) + (186 8221) + (193 768) + (194 769) + (195 770) + (196 771) + (197 772) + (198 774) + (199 775) + (200 776) + (202 778) + (203 807) + (204 818) + (205 779) + (206 808) + (207 780) + (208 8213) + (209 185) + (210 174) + (211 169) + (212 8482) + (213 9834) + (220 8539) + (221 8540) + (222 8541) + (223 8542) + (224 8486) + (225 198) + (226 208) + (227 170) + (228 294) + (229 567) + (230 306) + (231 319) + (232 321) + (233 216) + (234 338) + (235 186) + (236 222) + (237 358) + (238 330) + (239 329) + (240 312) + (241 230) + (242 273) + (243 240) + (244 295) + (245 305) + (246 307) + (247 320) + (248 322) + (249 248) + (250 339) + (251 223) + (252 254) + (253 359) + (254 331))) +(DECLARE%: DOEVAL@COMPILE DONTCOPY + +(GLOBALVARS ISO1TOMCCS) +) +(DECLARE%: DONTEVAL@LOAD DOCOPY + +(\CREATE.ISO1.FORMAT) + +(\DUMMY-UTF8-FORMAT) +) + + + (* ;; "Also from FILEIO.") (DEFINEQ @@ -883,15 +1006,16 @@ (\CREATE.THROUGH16.EXTERNALFORMAT) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (7446 15343 (\EXTERNALFORMAT 7456 . 12055) (MAKE-EXTERNALFORMAT 12057 . 14870) ( -\EXTERNALFORMAT.DEFPRINT 14872 . 15341)) (15344 18385 (\INSTALL.EXTERNALFORMAT 15354 . 16803) ( -\REMOVE.EXTERNALFORMAT 16805 . 17636) (FIND-FORMAT 17638 . 18383)) (18628 20078 (SYSTEM-EXTERNALFORMAT - 18638 . 19586) (MTOSYSSTRING 19588 . 19785) (SYSTOMSTRING 19787 . 20076)) (20442 34717 (\OUTCHAR -20452 . 21669) (\INCCODE 21671 . 22824) (\BACKCCODE 22826 . 24505) (\BACKCCODE.EOLC 24507 . 26697) ( -\PEEKCCODE 26699 . 27024) (\PEEKCCODE.EOLC 27026 . 27405) (\INCCODE.EOLC 27407 . 29206) ( -\FORMATBYTESTREAM 29208 . 31652) (\CHECKEOLC.CRLF 31654 . 34715)) (34718 38634 (MCCSTOFORMATBYTES -34728 . 37127) (FORMATBYTESTOMCCS 37129 . 38632)) (40045 42281 (\NULLDEVICE 40055 . 41957) ( -\NULL.OPENFILE 41959 . 42279)) (42371 47286 (\CREATE.THROUGH.EXTERNALFORMAT 42381 . 44050) ( -\CREATE.THROUGH16.EXTERNALFORMAT 44052 . 46243) (\THROUGHIN 46245 . 46669) (\THROUGHBACKCCODE 46671 . -46942) (\THROUGHOUTCHARFN 46944 . 47284))))) + (FILEMAP (NIL (7548 15469 (\EXTERNALFORMAT 7558 . 12157) (MAKE-EXTERNALFORMAT 12159 . 14996) ( +\EXTERNALFORMAT.DEFPRINT 14998 . 15467)) (15470 18335 (\INSTALL.EXTERNALFORMAT 15480 . 16837) ( +\REMOVE.EXTERNALFORMAT 16839 . 17586) (FIND-FORMAT 17588 . 18333)) (18753 33028 (\OUTCHAR 18763 . +19980) (\INCCODE 19982 . 21135) (\BACKCCODE 21137 . 22816) (\BACKCCODE.EOLC 22818 . 25008) (\PEEKCCODE + 25010 . 25335) (\PEEKCCODE.EOLC 25337 . 25716) (\INCCODE.EOLC 25718 . 27517) (\FORMATBYTESTREAM 27519 + . 29963) (\CHECKEOLC.CRLF 29965 . 33026)) (33029 36945 (MCCSTOFORMATBYTES 33039 . 35438) ( +FORMATBYTESTOMCCS 35440 . 36943)) (38356 40650 (\NULLDEVICE 38366 . 40318) (\NULL.OPENFILE 40320 . +40648)) (40731 43542 (ISO1TOMCODE 40741 . 41490) (MTOISO1CODE 41492 . 41782) (\CREATE.ISO1.FORMAT +41784 . 43057) (\DUMMY-UTF8-FORMAT 43059 . 43540)) (43543 45078 (ISO1TOMSTRING 43553 . 44371) ( +MTOISO1STRING 44373 . 45076)) (46507 51422 (\CREATE.THROUGH.EXTERNALFORMAT 46517 . 48186) ( +\CREATE.THROUGH16.EXTERNALFORMAT 48188 . 50379) (\THROUGHIN 50381 . 50805) (\THROUGHBACKCCODE 50807 . +51078) (\THROUGHOUTCHARFN 51080 . 51420))))) STOP diff --git a/sources/EXTERNALFORMAT.LCOM b/sources/EXTERNALFORMAT.LCOM index 8a026d9762a51d0379f2773ff7032ccab1d1817f..46992929fb708d7d8d524fc2fdb207fd2f78f198 100644 GIT binary patch delta 2587 zcma)8OK%%h6t>-lHiMhSRw>PIc~=5Y>~THBkJKJVEy|*gRI~~KgjgVf zG%HrHAR3h&|DnRF1QJpu{s0n!J(XZp34z$bhI7x@PC`;>B2CWRbMN;!_uM;qvi-w{ zpSMgn+v*RxK@4X{ajWVYnx?m+PS_ZPK^!)rB3QL`=T=oPVFUAg?)lQ$*|HO9fOa71 z_(E3T*6nw<-+TMwCfs`mDy>nc1A9SgwOR!>Z+>uR^B}n6OI|VlM}g~0tFrU)%f1AQ zTb2uc*o@-p%5`{udkZvwZ4jIeJOm#c0O9pi}CA)Z|7g!=#Sz? zI~ai9bTxeq7zB)4URqpOE!rH`fU5zUrMDLzfo=fZWAGE|f){XmWWS1bqVh|s~FIb42uM@%P0wHHG*1uskvev07 ztXkT?usl@Dadn{{X!s{LuO5pzo%7jJ<;jMPxIO5PuC$|`p^-#G+Xt34YQPv1>7{d( z_}M_$!fp<*Knj?Ycajihmf+sZ_DaxLZBX^O3CYu(11{KG;oYKe>`Wi4 z?z)zDiPM&DG)LX;^(vlhw>mlIs?Eu&kw-V=i#DW`&)rb=+O$WTrzmsk_@nZ4yUIhmB=j-?0=2ZFUULGCjKTw-t`Xo)`tx&3$pJ-^o|{x*a^^(V#@O#1x|5VTi4p#C zXofg6YQ)ici0?R>&A_g@bOgI_E`5OxEvM7`1P z4ncnfE?)*MJ;uE>;IHPjbepsEer*Y(m-yN7PrQ6IU9i7M25Z69t25gTT&a5|;90^i zo$gsG5*TsY16Occg$~0|FbeT7SQJR`ObTdm7Sd{!*0{?+aGL3wAWTP1bupg^p2fDp zCIw5e!AJY$9U2icc_C`Budc%mdVnktVRYI57&m&apNs%>}ros|4YE@LZ`B zVV$sqk|qd_p-HF$=UOJ(Kz_VgFs5~QJt72&78alz5`+JOpbP?YkTwHwK~TX3UOtvh zo+JawXfYmc$%zwhU`b^aQsNF|SreorJZUA!k`dzlAOxw94oEA@yEv2hq=z_!Xd(-z zc_s&uWlaIXp&H?*Kx7t8+-K?yVWJhuXj4oZC6ZVZNw9|!ERl&U88d!i@J%_jkR_{{ ug)D-wEo8B%sFp;9q{dQSIQG4!A9hM`^uV`Z&(ye`es9mI+adkVHvRzzrZ>L; delta 1225 zcma)6O>fgc5RF3%#HnanR4OV2gHa>9;NXvqn;0bOI(A~!v4g#-5{UyJjZg)prA2_a z1a5Ewv=V;+aX~#)ia2oLOfMXe_yKU`${lu{0u7>wgV*EPnR)Nc&idp1uPe{oX^H1W z*Yh1aaxCmrK!CFBcCN~rq8XqT%_1^2?fC=atRev~Kxx-z*(@3+LIPY}?_675SzEr@ zS%S{}we^i@6UgoS@k_9L3k0|6`>?xep->QjU%GOKh7ZE&rlOg;AxQthi4?f}oC0VT zX&RVL#l!M^8`f8D0B_ngE2uiLj6)C?ttbYkg`Fs{d^e2h7PiBBEP?0-F?o9CBnM2Rp$cP}!~*ROG%U+OlF9%;o{?$|cY>a^=|J?o6MTJScw# zR0B+0i^68LM)Lq^AQYM`Q2+#@;MMCCS.;163 65441 +(FILECREATED "20-Feb-2026 09:21:16" {WMEDLEY}MCCS.;167 61063 :EDIT-BY rmk - :CHANGES-TO (FNS \DUMMY-UTF8-FORMAT \CREATE.XCCS.EXTERNALFORMAT) - - :PREVIOUS-DATE " 5-Feb-2026 12:26:39" {WMEDLEY}MCCS.;161) + :PREVIOUS-DATE "19-Feb-2026 13:32:23" {WMEDLEY}MCCS.;165) (PRETTYCOMPRINT MCCSCOMS) @@ -57,14 +55,10 @@  "Mappings into MCCS: needed for hardcopy and Tedit coercion, e.g. \TEDIT.MCCS.TRANSLATE") (FNS GACHATOMCODE SYMBOLTOMCODE SIGMATOMCODE ATOMCODE MATHTOMCODE HIPPOTOMCODE - CYRILLICTOMCODE PALATINOTOMCODE))) - (COMS (* ; "ISO8859/1") - (FNS ISO1TOMCODE MTOISO1CODE \CREATE.ISO1.FORMAT \DUMMY-UTF8-FORMAT) - (FNS ISO1TOMSTRING MTOISO1STRING) - (VARS ISO1TOMCCS) - (GLOBALVARS ISO1TOMCCS) - (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\CREATE.ISO1.FORMAT) - (\DUMMY-UTF8-FORMAT]) + CYRILLICTOMCODE PALATINOTOMCODE)) + (COMS (FNS SYSTEM-EXTERNALFORMAT MTOSYSSTRING SYSTOMSTRING) + (EXPORT (GLOBALVARS *SYSTEM-EXTERNALFORMAT*)) + (INITVARS (*SYSTEM-EXTERNALFORMAT* :UTF-8]) @@ -427,7 +421,7 @@ (* ;; "Converts Unicodes to MCCS codes in XSTRING.") - (for I XCODE (MSTRING _ (CL:IF DESTRUCTIVE + (for I XCODE (MSTRING ← (CL:IF DESTRUCTIVE XSTRING (CONCAT XSTRING))) from 1 while (SETQ XCODE (NTHCHARCODE XSTRING I)) do (RPLCHARCODE MSTRING I (XTOMCODE XCODE)) finally (RETURN MSTRING]) @@ -438,7 +432,7 @@ (* ;; "Converts XCCS to MCCS codes in XSTRING.") - (for I MCODE (XSTRING _ (CL:IF DESTRUCTIVE + (for I MCODE (XSTRING ← (CL:IF DESTRUCTIVE MSTRING (CONCAT MSTRING))) from 1 while (SETQ MCODE (NTHCHARCODE MSTRING I)) do (RPLCHARCODE XSTRING I (MTOXCODE MCODE)) finally (RETURN XSTRING]) @@ -500,12 +494,12 @@ ( (* ;; "From bravo doc") - (^N "356,055" MINUS) - (^V "357,44" ENDASH) - (^S EMDASH) - (^O EMQUAD) - (^X "356,055" MINUS) - (^Y FIGURESPACE ENQUAD) + (↑N "356,055" MINUS) + (↑V "357,44" ENDASH) + (↑S EMDASH) + (↑O EMQUAD) + (↑X "356,055" MINUS) + (↑Y FIGURESPACE ENQUAD) (* ;; "Fom current Helvetica/Timesroman fonts") @@ -1388,7 +1382,7 @@ [APPEND (XCCSUNDEFINEDPAIRS) '(((Uparrow TERMINAL) Circumflex) - (^X Lowline]) + (↑X Lowline]) (ALTOTEXT (APPEND (XCCSUNDEFINEDPAIRS) ALTOTEXT2MCCS)) (XCCS$ '((Uparrow Circumflex) @@ -1463,7 +1457,7 @@ (* ;; "Gacha did not have a code for circumflex, so there is nothing to map") - (CL:IF (EQ GCODE (CHARCODE ^X)) + (CL:IF (EQ GCODE (CHARCODE ↑X)) (CHARCODE Lowline) GCODE)]) @@ -1541,178 +1535,52 @@ MCODE))) PCODE]) ) - - - -(* ; "ISO8859/1") - (DEFINEQ -(ISO1TOMCODE - [LAMBDA (ICODE) (* ; "Edited 5-Feb-2026 12:09 by rmk") - (* ; "Edited 2-Feb-2026 23:14 by rmk") - (* ; "Edited 7-Sep-2025 22:39 by rmk") - (* ; "Edited 3-Sep-2025 10:21 by rmk") - (* ; "Edited 7-Aug-2025 09:37 by rmk") +(SYSTEM-EXTERNALFORMAT + [LAMBDA NIL (* ; "Edited 6-Feb-2026 11:29 by rmk") + (* ; "Edited 31-Jan-2026 18:51 by rmk") + (* ; "Edited 10-Oct-2022 11:55 by lmm") + (* ; "Edited 7-Jul-2022 10:41 by rmk") - (* ;; "ISO codes are 8bit, MCODES maybe not. Caller shouldn't pass a fat code.") + (* ;; "Returns the name, sets the global. For now, UTF-8 or through, could be something else.") - (OR [CAR (find PAIR in ISO1TOMCCS suchthat (EQ ICODE (CADR PAIR] - ICODE]) + (fetch (EXTERNALFORMAT NAME) of (SETQ *SYSTEM-EXTERNALFORMAT* + (FIND-FORMAT (FOR X IN '("LC_CTYPE" "LC_ALL" "LANG") + WHEN (STRPOS ".UTF-8" (UNIX-GETENV X)) + DO (RETURN :UTF-8) FINALLY (RETURN :THROUGH]) -(MTOISO1CODE - [LAMBDA (MCODE) (* ; "Edited 5-Feb-2026 12:26 by rmk") - (* ; "Edited 2-Feb-2026 22:58 by rmk") - (OR (CADR (ASSOC MCODE ISO1TOMCCS)) - MCODE]) +(MTOSYSSTRING + [LAMBDA (MSTRING) (* ; "Edited 6-Feb-2026 00:20 by rmk") + (MCCSTOFORMATBYTES *SYSTEM-EXTERNALFORMAT* (MKSTRING MSTRING]) -(\CREATE.ISO1.FORMAT - [LAMBDA NIL (* ; "Edited 5-Feb-2026 10:42 by rmk") - (* ; "Edited 2-Feb-2026 23:37 by rmk") - (* ; "Edited 1-Feb-2026 11:18 by rmk") - (* ; "Edited 5-Aug-2021 22:15 by rmk:") - (* ; "Edited 9-Mar-99 17:19 by rmk:") - (* ; "Edited 7-Dec-95 16:24 by ") - (* ; "Edited 7-Dec-95 16:20 by ") - (MAKE-EXTERNALFORMAT :ISO8859/1 [FUNCTION (LAMBDA (STREAM COUNTP) - (ISO1TOMCODE (\THROUGHIN STREAM COUNTP] - [FUNCTION (LAMBDA (STREAM NOERRORFLG) - (ISO1TOMCODE (\PEEKBIN STREAM NOERRORFLG] - (FUNCTION \THROUGHBACKCCODE) - (FUNCTION NILL) - (FUNCTION NILL) - NIL NIL (FUNCTION MTOISO1STRING) - NIL - (FUNCTION NILL) - (FUNCTION ISO1TOMSTRING]) +(SYSTOMSTRING + [LAMBDA (SYSTRING) (* ; "Edited 5-Feb-2026 23:36 by rmk") -(\DUMMY-UTF8-FORMAT - [LAMBDA NIL (* ; "Edited 5-Feb-2026 15:58 by rmk") - (* ; "Edited 1-Feb-2026 13:16 by rmk") + (* ;; "SYSSTRING is presumably shared with Unix, guarantee a copy on the way out") - (* ;; "Works only for 7-bit codes, during the loadup") - - (\INSTALL.EXTERNALFORMAT (create EXTERNALFORMAT using (FIND-FORMAT :ISO8859/1) - NAME _ :UTF-8]) + (CONCAT (FORMATBYTESTOMCCS *SYSTEM-EXTERNALFORMAT* SYSTRING]) ) -(DEFINEQ +(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: DOEVAL@COMPILE DONTCOPY -(ISO1TOMSTRING - [LAMBDA (ISTRING DESTRUCTIVE) (* ; "Edited 5-Feb-2026 11:01 by rmk") - (* ; "Edited 2-Feb-2026 23:46 by rmk") - (* ; "Edited 2-Sep-2025 12:14 by rmk") - (* ; "Edited 29-Apr-2025 13:08 by rmk") - - (* ;; "Converts ISO8859/1 codes to MCCS codes in MSTRING.") - - (for I ICODE (MSTRING _ (CL:IF DESTRUCTIVE - ISTRING - (CONCAT ISTRING))) from 1 while (SETQ ICODE (NTHCHARCODE ISTRING I)) - do (RPLCHARCODE MSTRING I (ISO1TOMCODE ICODE)) finally (RETURN MSTRING]) - -(MTOISO1STRING - [LAMBDA (MSTRING DESTRUCTIVE) (* ; "Edited 2-Feb-2026 23:47 by rmk") - (* ; "Edited 2-Sep-2025 12:22 by rmk") - (* ; "Edited 29-Apr-2025 13:08 by rmk") - - (* ;; "Converts MCCS to ISO8859/1 codes in MSTRING.") - - (for I MCODE (ISTRING _ (CL:IF DESTRUCTIVE - MSTRING - (CONCAT MSTRING))) from 1 while (SETQ MCODE (NTHCHARCODE MSTRING I)) - do (RPLCHARCODE ISTRING I (MTOISO1CODE MCODE)) finally (RETURN ISTRING]) +(GLOBALVARS *SYSTEM-EXTERNALFORMAT*) ) -(RPAQQ ISO1TOMCCS - ((94 8593) - (95 8592) - (169 8216) - (170 8220) - (172 95) - (173 94) - (174 8594) - (175 8595) - (180 215) - (184 247) - (185 8217) - (186 8221) - (193 768) - (194 769) - (195 770) - (196 771) - (197 772) - (198 774) - (199 775) - (200 776) - (202 778) - (203 807) - (204 818) - (205 779) - (206 808) - (207 780) - (208 8213) - (209 185) - (210 174) - (211 169) - (212 8482) - (213 9834) - (220 8539) - (221 8540) - (222 8541) - (223 8542) - (224 8486) - (225 198) - (226 208) - (227 170) - (228 294) - (229 567) - (230 306) - (231 319) - (232 321) - (233 216) - (234 338) - (235 186) - (236 222) - (237 358) - (238 330) - (239 329) - (240 312) - (241 230) - (242 273) - (243 240) - (244 295) - (245 305) - (246 307) - (247 320) - (248 322) - (249 248) - (250 339) - (251 223) - (252 254) - (253 359) - (254 331))) -(DECLARE%: DOEVAL@COMPILE DONTCOPY +(* "END EXPORTED DEFINITIONS") -(GLOBALVARS ISO1TOMCCS) -) -(DECLARE%: DONTEVAL@LOAD DOCOPY -(\CREATE.ISO1.FORMAT) - -(\DUMMY-UTF8-FORMAT) -) +(RPAQ? *SYSTEM-EXTERNALFORMAT* :UTF-8) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3345 14916 (\MCCSINCCODE 3355 . 6443) (\MCCSPEEKCCODE 6445 . 9332) (\MCCSOUTCHAR 9334 - . 11433) (\MCCSBACKCCODE 11435 . 12979) (\MCCSFORMATBYTESTREAM 12981 . 13711) (\MCCSCHARSETFN 13713 - . 14914)) (14917 17368 (\CREATE.MCCS.EXTERNALFORMAT 14927 . 15797) (\CREATE.XCCS.EXTERNALFORMAT 15799 - . 17366)) (17369 18346 (\MCCS.24BITENCODING.ERROR 17379 . 18344)) (19722 22360 (MTOXCODE 19732 . -20529) (XTOMCODE 20531 . 21188) (XTOMSTRING 21190 . 21775) (MTOXSTRING 21777 . 22358)) (22361 24021 ( -MTOX$CODE 22371 . 23103) (X$TOMCODE 23105 . 24019)) (24022 24662 (KANJICHARSETP 24032 . 24288) ( -CHINESECHARSETP 24290 . 24660)) (45230 47719 (MCCSCODEMAPARRAY 45240 . 47717)) (48335 54816 (MCCSMAPFN - 48345 . 49712) (MCCSMAPPAIRS 49714 . 53822) (XCCS.CS0.UNDEFINED 53824 . 54453) (XCCSUNDEFINEDPAIRS -54455 . 54814)) (54921 59673 (GACHATOMCODE 54931 . 55443) (SYMBOLTOMCODE 55445 . 56093) (SIGMATOMCODE -56095 . 56741) (ATOMCODE 56743 . 57275) (MATHTOMCODE 57277 . 57933) (HIPPOTOMCODE 57935 . 58472) ( -CYRILLICTOMCODE 58474 . 58908) (PALATINOTOMCODE 58910 . 59671)) (59700 62493 (ISO1TOMCODE 59710 . -60459) (MTOISO1CODE 60461 . 60751) (\CREATE.ISO1.FORMAT 60753 . 62018) (\DUMMY-UTF8-FORMAT 62020 . -62491)) (62494 64025 (ISO1TOMSTRING 62504 . 63320) (MTOISO1STRING 63322 . 64023))))) + (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))))) STOP diff --git a/sources/MCCS.LCOM b/sources/MCCS.LCOM index 71998d1318d39ffcec2dbcdd8cec52342d00b740..66eb5da431db55b8b51f186d47cf95be9841c3c3 100644 GIT binary patch delta 1062 zcmah{OKa3n6i(V=HE!BcEOt>2SJ0$3LmrcvP7pLrZe}j#F(x-RMbkJA8%W$5AdmTnnV1B{kynXcK|-&q?rHBio8noZZT32Z&y+kNru z#sHo^2ND)h1SdgiwHkrJqgUI5f55TcHi`Cs1q~v@!8dvNRudYg(Xhd#0pt2cA71Y6 zfZNUJCQFN453mQ6X||4gFm2biN|^#cc1FMDqowIzZ}vw&uO80K=KY-0SU)f>FAlq4 zLQexJn35!E4?k&sUhYi4Uw$I?3zx*YB$f+e`Fe3q{!nJI@18=66P(d7oh6KyN$TIED`)+yJRc2iw&i7flnD^qX{;HJLm*~Jks}I* v4?e9eHu0YWjRP<5U{t|lipP6}7gR~T^J_;l`s>#9+mj4|N`a;%EK>de=wt$o delta 2122 zcmah~OK%%h6t?DZI`15&v-#Pd7+waw9e^kHkEZc@* zb>bvy4WecqwZQ~c?;PB%bBDXYRH*z=@TZ@xjfD-ytW$)XheDcg_tC+7A3u0_|HFfQ zIQaD8qfeGY*lCY?z3uua@A&mjHt02Txc?EDol%m&G)1G)Fk%1BV@y4-yyT`$0+;?r z;WyWW09Q%LAdK2^UfGAsExjilysstc3kRv=wKgVZDtb zI5hztayJx#3C7cJU#+skAF9u;R(B7-d*$c(<#?E}JnOZxb_8MDH>?CK2V(u-wxP0e zp;D>t6@R_3dSFR73T_RtA=~KXnYNtd#^3;z!pvF)GuQXq12qwZ+$#_V4Y#uSMUZFMTdOuML+gmJEt)@#&+Upve4lK8A9~h=wtX(hutmS3G7qvGJ16X=)Y=hOxdPA^Q;cYOF$7Z5kAEb!@ zT8`=6e9rJ^4_!Hv*(wut(>vg17elt1gA*n^I$(8^Y@?Z+wHw8}dBZw~9COYt^5Ner z-D-O`1yd+@%~8sPUYw3J!S0qedTSDIwkT~khnw0sgs3;c#%_jxZjYL6?I^youi%C7 zqy2R-zI{BD7LLsdB;ZEFi_;2}MjR1y1MoR>HS`>W+#!hDLJ<%UNCK2xLdw=|gZU0{ zMv=Y*EYfO1~cVGz;%@trbBnDqJltHl` z(v}5$;52ZK$56S{lW;&dlq?tsMx1y(2^uTMccxrFE+hy+^@Jwz$7K$(a8e;W5UTY1 z7)g90z&cb>A`7E9e6x7zl^nQ7Gs1h4mn}+MXWAQFB8zZnQKX9!NvuQ?+CyAEMwXIU r2AECE3R%jjDP-YPTOo_0p(=q2NsZFIFx$ra=)5z8)-w-!`K0^{fjHI9