From 7a7fca0bcf11873cb6d5f6841506d7718efcbe69 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Mon, 9 Mar 2026 12:15:14 -0700 Subject: [PATCH] Add lispusers/CONVERT-TO-UTF8 (#2518) * Add lispusers/CONVERT-TO-UTF8 * FILETYPE with no DFASL defaults to :FAKE-COMPILE-FILE --- lispusers/CONVERT-TO-UTF8 | 52 ++++++++++++++++++++++++++++++++ lispusers/CONVERT-TO-UTF8.LCOM | Bin 0 -> 2056 bytes lispusers/CONVERT-TO-UTF8.TEDIT | Bin 0 -> 3387 bytes 3 files changed, 52 insertions(+) create mode 100644 lispusers/CONVERT-TO-UTF8 create mode 100644 lispusers/CONVERT-TO-UTF8.LCOM create mode 100644 lispusers/CONVERT-TO-UTF8.TEDIT diff --git a/lispusers/CONVERT-TO-UTF8 b/lispusers/CONVERT-TO-UTF8 new file mode 100644 index 00000000..52342ee1 --- /dev/null +++ b/lispusers/CONVERT-TO-UTF8 @@ -0,0 +1,52 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED "25-Feb-2026 09:09:57" {WMEDLEY}CONVERT-TO-UTF8.;16 2573 + + :EDIT-BY rmk + + :CHANGES-TO (FNS CONVERT-TO-UTF8) + + :PREVIOUS-DATE "24-Feb-2026 22:45:57" {WMEDLEY}CONVERT-TO-UTF8.;14) + + +(PRETTYCOMPRINT CONVERT-TO-UTF8COMS) + +(RPAQQ CONVERT-TO-UTF8COMS ((FNS CONVERT-TO-UTF8))) +(DEFINEQ + +(CONVERT-TO-UTF8 + [LAMBDA (FILENAME FILETYPE) (* ; "Edited 25-Feb-2026 09:09 by rmk") + + (* ;; "This produces a new version of the source FILENAME with :UTF-8 external format.") + + (* ;; "If we had a list of problematic functions (multiple definitions on multiple files, MOVD's), we could check that against the functions in FILENAME, and at least produce a warning.") + + (* ;; "Compiling may be tricky: some files have CL:COMPILE-FILE FILETYPE properties that don't correspond to the fact that they actually have only an LCOM. This tries to revert the filetype back to FAKE-COMPILE-FILE so that we don't get confused when a DFASL mysteriously appears.") + + (SETQ FILENAME (PSEUDOFILENAME FILENAME)) + (SETQ FILENAME (OR (FINDFILE FILENAME T) + (ERROR "FILE NOT FOUND" FILENAME))) + (if [EQ :UTF-8 (CL:WITH-OPEN-FILE (STREAM FILENAME :DIRECTION :INPUT) + (fetch (READER-ENVIRONMENT REFORMAT) of (GET-ENVIRONMENT-AND-FILEMAP STREAM + T] + then (PRINTOUT T FILENAME " is already " .P2 :UTF-8 T) + NIL + else (LOAD? (MEDLEYDIR "loadups" 'EXPORTS.ALL)) (* ; "Maybe this should load SYSEDIT ?") + (LOAD FILENAME 'PROP) + (LOADCOMP FILENAME) + (SETQ FILENAME (PACKFILENAME 'VERSION NIL 'BODY FILENAME)) + (CL:WHEN [AND (EQ 'CL:COMPILE-FILE (GETPROP (ROOTFILENAME FILENAME) + 'FILETYPE)) + (FINDFILE (PACKFILENAME 'EXTENSION 'LCOM 'BODY FILENAME)) + (NOT (FINDFILE (PACKFILENAME 'EXTENSION 'DFASL 'BODY FILENAME] + (CL:UNLESS FILETYPE (SETQ FILETYPE :FAKE-COMPILE-FILE)) + (PRINTOUT T "Changing FILETYPE back to " .P2 FILETYPE T) + (PUTPROP (ROOTFILENAME FILENAME) + 'FILETYPE FILETYPE)) + [SETQ FILENAME (MAKEFILE FILENAME '(NEW :UTF-8] + (MAKEFILE1 FILENAME NIL '(F)) + FILENAME]) +) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (406 2550 (CONVERT-TO-UTF8 416 . 2548))))) +STOP diff --git a/lispusers/CONVERT-TO-UTF8.LCOM b/lispusers/CONVERT-TO-UTF8.LCOM new file mode 100644 index 0000000000000000000000000000000000000000..413a0c22265eb71073e047977b3bd1504e96e7cb GIT binary patch literal 2056 zcma)7TWjM+6n65kwC;s%pUZL(Em#2=&FE&U%hqFSloczF6lt8Sp?$DplbFrMsl5v= zrN5`|DSgg!|IPk{o*DTT<3d6hotw}3&SlOtA|5A#TXB+dD-m%9FLKsyDK9ZoXvCu22W~=`7yLZQ2Bj5YRk5f$HJ~(fJzdoL(=fPZeXlaiwrv7o z)T%cG>vJfRFgzKEi$p|LUSyK@Qg+N;M>XXjrpvj*m2_ zf2EJtnoqP^)$m)*f4V>ER30C+!xgP{D|%K{{<+p`g$}Bvoh@Gh)cmzRJ6|e)3l*bd7VZo0tgM(unEPu8aBb?6h)xD#vk~b(FWh$TsW`2zhtT%fJMx5E&#prqR23gyG_u8 zyySx@Tc?i~#38CYtD&a>UcDH5V5uBXs&6n>jY2nzhPZYEh++r;W~XywPQo;r1u!Jj55p zY5}%+MFsZi)`RCBDh&k}EfRrq1laTtdw^RJ(PI(7L0uy@!NE7KA^640sflxBgVDPl z-CoUZueNx{qsw>jVUF(}aa=HN=A+5SyCrfqMcHf#qnpKaH2EDFO7P86vnMhMaW)W< ldXMlqkaDQ1jNO*|cu`)WQIWH=vqL&)9DHR=vo4af{vVI;$8-Py literal 0 HcmV?d00001 diff --git a/lispusers/CONVERT-TO-UTF8.TEDIT b/lispusers/CONVERT-TO-UTF8.TEDIT new file mode 100644 index 0000000000000000000000000000000000000000..06488f9ce20725823be3da6fd2bbefdcb353a0a4 GIT binary patch literal 3387 zcmeHK+iu%N5T#-#L6o*=p9>U&G(af8Qf)+Gpu@gt`XqlTWR`?6P10-z$3;qqNVR#;A_~~? zG|a*gFgY{kP->N`XgR%%;+Ur4g;a}qIFl64=MuXT#7-AQ9*uEdlhS4Dyv4rGqhh)^ zYY^%Jw@XxtttIsxk{6Q0rHk{aa=hlzl*uR^qb78=EF|Uf=LIZCP!TzkG>#?{nQ_UH z(kA~6E=E3zqKNb`87ovQCq*;Nvh*dfX)!M+jaFU1q%`#`Tada2&j+G$>&IRt%ug%% zG8Q?>7n#xqH5JbWt{3<%!?p=65vSo;j(0e%L`~Kb7GRxotyB<5G0)Pu%!(z&QH~Yn z7RGtHu}eHL?C(ssKVVvDtQq#BvoM2z7WCvG@WJxtr1y3ycE4>>~0`5oY zY_9qxgsd$0s_&FvHXtpu4-0@MMH_H4tDX%fO!PE9D|FrPNRhqK^hAAGoRy@ z6!DT~NG^N__d|` z;_*;8rXa_%)kohY^=^=^4~*k-0i%KNeCr26wk+_VksladU^&MO`BH7P4X5jyz86?V<4UdY9rHU$fJGgJlLoG-Q5zx@eDfUokuPjv1_P8WQ1gN31~747Tm9t#=36(_U$>Y6r^2HV4^ocI9xj;l}$$_@3Q>l6qZA<2JW>^(<+(Hx9@W zeZ_SfmHbM(QJxlBdF+3#^MQoZWq_l~bZyt879H7!d8*34tKBqh!}l%o{qP^+9(sHT z{Msh`BbDCU$OC>~s|QwJ_@3K0oJyT{Y+<+8P$o@%)P>tYD|@G0xrW*86K{y0EXN|~ zIqUTmXd9M)26P>sK4t$rV5fZlTh}YlTjQ@lTk!M=J6*9x!OG`s)1b!ekHZ2{`;CX2 zh;@0CGxqxNWk}h@uqsCk`FaIeTfTV1lCLaPXzllvVZF&x7G2j(TNob1z*i2pGk(Rm i>UTto_@4%xB&xv=0dIBj<$w5MTK7Tc8?E{4AAbV+(e&;B literal 0 HcmV?d00001