From e89b9ba217c8200915c7e081cea57e6eb44b8e10 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Tue, 24 Feb 2026 22:47:57 -0800 Subject: [PATCH] Add lispusers/CONVERT-TO-UTF8 --- lispusers/CONVERT-TO-UTF8 | 52 ++++++++++++++++++++++++++++++++ lispusers/CONVERT-TO-UTF8.LCOM | Bin 0 -> 2004 bytes lispusers/CONVERT-TO-UTF8.TEDIT | Bin 0 -> 3305 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..d21fdc77 --- /dev/null +++ b/lispusers/CONVERT-TO-UTF8 @@ -0,0 +1,52 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED "24-Feb-2026 22:45:57" {WMEDLEY}CONVERT-TO-UTF8.;14 2512 + + :EDIT-BY rmk + + :CHANGES-TO (FNS CONVERT-TO-UTF8) + + :PREVIOUS-DATE "23-Feb-2026 23:58:54" {WMEDLEY}CONVERT-TO-UTF8.;11) + + +(PRETTYCOMPRINT CONVERT-TO-UTF8COMS) + +(RPAQQ CONVERT-TO-UTF8COMS ((FNS CONVERT-TO-UTF8))) +(DEFINEQ + +(CONVERT-TO-UTF8 + [LAMBDA (FILENAME) (* ; "Edited 24-Feb-2026 22:45 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 BCOMPL 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? '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] + (PRINTOUT T "Changing FILETYPE back to " .P2 :BCOMPL T) + (PUTPROP (ROOTFILENAME FILENAME) + 'FILETYPE + ':BCOMPL)) + [SETQ FILENAME (MAKEFILE FILENAME '(NEW :UTF-8] + (MAKEFILE1 FILENAME NIL '(F)) + FILENAME]) +) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (406 2489 (CONVERT-TO-UTF8 416 . 2487))))) +STOP diff --git a/lispusers/CONVERT-TO-UTF8.LCOM b/lispusers/CONVERT-TO-UTF8.LCOM new file mode 100644 index 0000000000000000000000000000000000000000..f15064363413ba956e971061a0b894080dbb87e4 GIT binary patch literal 2004 zcma)7&2Hm15VmtzwC)eKJr|3C&;nKf86x#-wP-C%R90A-R3tj7fnJ=%NQ}+KfxQJ< z6n&`_J?GrF*+=M*vSY8|7SVwsIm4N6KF$ogDa&%stSm2>mGex%t1?dB#3u}loJ&>} zd0iUts$y{}<6*J4J&bDx#5OyfuCkDznq(;$)U~qNg+*=Z1ErDcMP6V)*SK7~yPx0A zu3&Ko2K;e8Vrju9fBtYgU)}$@nk`p9CW4=_N?KA_W0{4$?}=+d=Ocr}j$AjQeFH9* zvnPwQ-|m;I?;_YU0CV(|jf(IjPGFeNis+dU0QCrkh^4u-h7(x6 zdkdW?c^&f;R%4{l&3L^J+=QsC*jX;dwUr{PNUF0#suOu($ojqn^+qMZr zY1rxVc*LO2qv&|d&vTwyWhEp_RvehLa{4zSjtdiiv36mD%XL%*~h;eDf=vw8` zC@ztILO`V*t9Es8|6n9YuZrY9aD9omTIIEZa{8GX6%qnT5haDF85;ED}722uk||D zVny56di~+yc+gmU)CSjcEnCm$4cRZZ_6B;YT{p1w`bLj~&lN62q)%-X_3XpLLjSiz zqpo!y>g~3k?a2NL{vX}r4i0^`33H%NZ8*BoD=it|RXL6WqxcQBs)7-4NdIXCjvYWb zmYA?5&_0Dq2)VfsprHrY!^$cL8ias&=aSR?MvS#B{Yy!s2cWf-9p#q8RvLEQomXi|6 z33dc7g`r3%K%D^6EUr=4p}>BYjMuq9Z|J2_urWTg2Gn+U=BE^pFg?2VV@+?C`wk F{0jrLxzzvw literal 0 HcmV?d00001 diff --git a/lispusers/CONVERT-TO-UTF8.TEDIT b/lispusers/CONVERT-TO-UTF8.TEDIT new file mode 100644 index 0000000000000000000000000000000000000000..ef43d85995c9b6290076e48795682a465c966123 GIT binary patch literal 3305 zcmeHJTW;G%6s2M(L6kOVz6%r=X@F8dtlEm=I7We%rbaevid0A{j~4wHOCyU2MXDr~ zR9!-TyPK{c8|glJ?od)y*UbZHfqqoB$eBB5&V8KA5qoNssKpK2_nwF#+KK#~LDW5{ zx9atFy}nnkUtE9*3r7nIvXoBcERktFn#2W-vf+HH(vn`uf)ZJjq(*V6Mii&iRcHBJ z<_n_MZfn0;uXc>%MA0xyOBtsHNh;#>9G3As9hNcJ%ZV&$EQfItm$Fm^3>yDZZelWsZ3~`!s866_kor5M(#KaSs z%ONlYN6fDDDlNSg^eRpgn#h+*FBWpDNX}*oyHfbh=4BC&a9;;ys^)oH^vYD#g|+^n0XUDt4F6&nKFA9mkGJhuH`v>ny&^WvXVs+9teY2a~K%%(HlB@$w? z$m?#?4W|fMp=Y@2=uBwO9jqHw4u@H;jK!>tm{WON1uPIPA+dW+7xub(Wo9paoIM21l%gC!>fR`z`*r2ll7d*n4X4L6g zq07ZtK0xeKi}5FKIoeL=#*e`fJ9e85svG>-GDGorAUs=;=eYW7?vnm%kZJa<<7xq; zz6e6+J3+20@#Ih#SwZA@#|-&gZ*(oM6WYLit*2ezb$rL``ea&xb>!G|=MMfMj`py> z*P@4yTI}USSRF7`-j@?y?O@<}SYQ)y2W@)TZqtL-0o~tkFdD{4Jd5;34xb^9_No0~ zpZ0fmD+v3u+(-nT6@74$f63vJ=ryK_y^lm)-#-n>d_1r^WD5_D1%kIvtYEnk4!Dwb z;PfLD+VP$^p>u?e_q$yRg)8i+kFrI2-Vgi;2GOZjx%_*()U|q!`oq*PmKQp{M}asVxK==+>!YVvv!}v2K8dI&I?kZSf#FAD>3I-} zKugJ04x{G?SC_x*2R#d2@Q27;puLA}C`7G;O`-mEk>Ap*|I1i4(0^aX20r>=x@ufA z_Vj3Z*{T_LH|Lj)+ia}8F|PA%YumV6tG%gR2Hdb|C)jfvw(YI0cRSfLUK_7#2byA= zootX@I$UkI_P!pzWg3K}KNr%t$!)%TmW-Pl2V{l5c$v530fdVK}jhUK3DT?Nx8%+CWR<@?`K zuRw40zXEN6=@yf&qDH~0=WNrU$IQoWfvEk$!%f7xJQ~HUA76x2T@33Q^3@8mwtRNc zQoFA$rfJ%)umV&XzbD+Qct!E`OG1