From 9dc408c81af55d80e66ef750af65fb39504fdc54 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 22 May 2025 17:49:05 -0700 Subject: [PATCH] Expand the (PSEUDOHOSTS) function so that it can be used cleanly with RESETSAVE (#2154) Expanded the (PSEUDOHOSTS) function to have an argument, which is a list of replacement pseudohost pair to replace the current list of pseudohosts. Still returns the current list of pseudohosts as before. Designed to be used cleanly with RESETSAVE. --- library/PSEUDOHOSTS | 56 ++++++++++++++++++++++++++------------ library/PSEUDOHOSTS.LCOM | Bin 8999 -> 9317 bytes library/PSEUDOHOSTS.TEDIT | Bin 7949 -> 8390 bytes 3 files changed, 38 insertions(+), 18 deletions(-) diff --git a/library/PSEUDOHOSTS b/library/PSEUDOHOSTS index fb771830..a563e43b 100644 --- a/library/PSEUDOHOSTS +++ b/library/PSEUDOHOSTS @@ -1,12 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "31-Dec-2024 11:45:23" {WMEDLEY}PSEUDOHOSTS.;177 29713 +(FILECREATED "16-May-2025 12:07:44" {DSK}frank>il>qmedley>library>PSEUDOHOSTS.;2 31408 - :EDIT-BY rmk + :CHANGES-TO (FNS PSEUDOHOSTS) - :CHANGES-TO (FNS TRUEDEVICE) - - :PREVIOUS-DATE "25-Dec-2024 07:38:10" {WMEDLEY}PSEUDOHOSTS.;176) + :PREVIOUS-DATE "31-Dec-2024 11:45:23" {DSK}frank>il>qmedley>library>PSEUDOHOSTS.;1) (PRETTYCOMPRINT PSEUDOHOSTSCOMS) @@ -151,10 +149,32 @@ DEV)))]) (PSEUDOHOSTS - [LAMBDA NIL (* ; "Edited 17-Jan-2022 18:15 by rmk") - (FOR DEV IN \FILEDEVICES WHEN (TYPE? FDEV (FETCH (PHDEVICE TARGETDEV) OF DEV)) - COLLECT (LIST (FETCH (FDEV DEVICENAME) OF DEV) - (FETCH (PHDEVICE PREFIX) OF DEV]) + [LAMBDA (NEW.HOSTS) (* ; "Edited 17-Jan-2022 18:15 by rmk") + (* ; "Edited 16-May-2025 9:16 by fgh") + + (* ;; "") + + (* ;; " Returns existing list of PSEUDOHOST pairs. If NEW.HOSTS is T, all current pseudohosts are removed by calling (PSEUDOHOST HOST NIL) on each current pseudohost in turn. Otherwise, NEW.HOSTS should be a list of (HOST PREFIX) pairs and all current pseudohosts are r(PSEUDOHOSTSemoved (as above) and the NEW.HOSTS pairs are used to create new pseudohosts by calling (PSEUDOHOST HOST PREFIX) sequentially in reverse order of the NEW.HOSTS list. Reverse order to ensure that (PSEUDOHOSTS (PSEUDOHOSTS)) doesn't impact the ordering in the PSEUDOHOST list. This function is designed to be used cleanly with RESETSAVE.") + + (* ;; "") + + (LET [(CURRENT.HOSTS (for DEV in \FILEDEVICES when (type? FDEV (fetch (PHDEVICE TARGETDEV) + of DEV)) + collect (LIST (fetch (FDEV DEVICENAME) of DEV) + (fetch (PHDEVICE PREFIX) of DEV] + [COND + ((EQ NEW.HOSTS T) + (for HOST in CURRENT.HOSTS do (PSEUDOHOST (CAR HOST) + NIL))) + [[AND (LISTP NEW.HOSTS) + (for HOST in NEW.HOSTS always (AND (LISTP HOST) + (NOT (CDDR HOST] + (for HOST in CURRENT.HOSTS do (PSEUDOHOST (CAR HOST) + NIL)) + (for HOST in (REVERSE NEW.HOSTS) do (PSEUDOHOST (CAR HOST) + (CADR HOST] + (NEW.HOSTS (ERROR (CONCAT "PSEUDOHOSTS: Argument not valid:" NEW.HOSTS] + CURRENT.HOSTS]) (TARGETHOST [LAMBDA (HOST) (* ; "Edited 14-Dec-2024 15:26 by rmk") @@ -562,13 +582,13 @@ EXPORTS.ALL) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1318 12059 (PSEUDOHOST 1328 . 7036) (PSEUDOHOSTP 7038 . 7867) (PSEUDOHOSTS 7869 . 8230) - (TARGETHOST 8232 . 9101) (TRUEDEVICE 9103 . 10059) (TRUEFILENAME 10061 . 11186) (PSEUDOFILENAME 11188 - . 12057)) (12087 18102 (EXPAND.PH 12097 . 13350) (CONTRACT.PH 13352 . 16063) (UNSLASHIT 16065 . 17811 -) (GETHOSTINFO.PH 17813 . 18100)) (18103 19004 (CDPSEUDO 18113 . 19002)) (19005 27025 (OPENFILE.PH -19015 . 20088) (GETFILENAME.PH 20090 . 20379) (DIRECTORYNAMEP.PH 20381 . 21005) (CLOSEFILE.PH 21007 . -21474) (REOPENFILE.PH 21476 . 22041) (DELETEFILE.PH 22043 . 22327) (OPENP.PH 22329 . 22624) ( -UNREGISTERFILE.PH 22626 . 23168) (REGISTERFILE.PH 23170 . 23704) (GENERATEFILES.PH 23706 . 24750) ( -GETFILEINFO.PH 24752 . 25054) (SETFILEINFO.PH 25056 . 25255) (NEXTFILEFN.PH 25257 . 25803) ( -FILEINFOFN.PH 25805 . 26080) (RENAMEFILE.PH 26082 . 27023))))) + (FILEMAP (NIL (1331 13754 (PSEUDOHOST 1341 . 7049) (PSEUDOHOSTP 7051 . 7880) (PSEUDOHOSTS 7882 . 9925) + (TARGETHOST 9927 . 10796) (TRUEDEVICE 10798 . 11754) (TRUEFILENAME 11756 . 12881) (PSEUDOFILENAME +12883 . 13752)) (13782 19797 (EXPAND.PH 13792 . 15045) (CONTRACT.PH 15047 . 17758) (UNSLASHIT 17760 . +19506) (GETHOSTINFO.PH 19508 . 19795)) (19798 20699 (CDPSEUDO 19808 . 20697)) (20700 28720 ( +OPENFILE.PH 20710 . 21783) (GETFILENAME.PH 21785 . 22074) (DIRECTORYNAMEP.PH 22076 . 22700) ( +CLOSEFILE.PH 22702 . 23169) (REOPENFILE.PH 23171 . 23736) (DELETEFILE.PH 23738 . 24022) (OPENP.PH +24024 . 24319) (UNREGISTERFILE.PH 24321 . 24863) (REGISTERFILE.PH 24865 . 25399) (GENERATEFILES.PH +25401 . 26445) (GETFILEINFO.PH 26447 . 26749) (SETFILEINFO.PH 26751 . 26950) (NEXTFILEFN.PH 26952 . +27498) (FILEINFOFN.PH 27500 . 27775) (RENAMEFILE.PH 27777 . 28718))))) STOP diff --git a/library/PSEUDOHOSTS.LCOM b/library/PSEUDOHOSTS.LCOM index 77789e6cb76c93e1ac5aed19f2707df2f0ffeecd..3f8e0a289c6de754740fe7d2271331f17ab09119 100644 GIT binary patch delta 764 zcmah{zi-n(6wWzS(|D+w&{kb4o(zIyNaUZ5ZK24v6+S1cA82wFqp^uKzA$prd!(mxH0BC~m6hY}A0C$cios$uH(E$kJ12Xa;0gSv+s6~}Zu-^+tqck!;}G`vEE z_>C{4jZON3+pkYPqHn2@0uLm)z%{b{et*ubh^G@`|rlL== z#FDczFQLsy(OL|poh)*)6goHf9vvrg+(?$^rU~4Z0%V%l^)PVK-;lrqc3sCMpP>YX zV;i~;3O83x-dz%)8jneoen+8n8rfMS3{uSjbN+xEzNdnIaPLvC-5)}KFoeggZWyS{ SM5ABQ3j(W1lh3O=%fA2$BFJz6 delta 502 zcma)&ze>YU7{ybp2oXdV!R_OMk_-vCH%-%AMX1e<3C5;0NlU?{e}WeKN1}^}_7wyN zAHh{9Ej{Y4T&% zK4}h)lk-gqQ8i{ZtBt%8gD#J7V&8{Z165TKbeb0&VXku?$)e%HcOL2bO_Ws;uS(aj4il8xS#OnwwNF zP^|r9wY)rj&Acy3Ip9-(0|p#T8u5dtgfa-l#f%`tYsIX)@Rapd?+T)(z8q{lKYj>h j&le@#0%!87;B3oiLHf{ diff --git a/library/PSEUDOHOSTS.TEDIT b/library/PSEUDOHOSTS.TEDIT index eef3a5f3fea6be7c957ccf82091d6ef4d0acc7ea..ea9810284108ed81a34b57c639bb0624b8ef3946 100644 GIT binary patch delta 1540 zcmaJ>OHUI~7@aBL15`jjJ1xbJf(alJ5;Z=e#tBT21d7sD7OsYNN+*<=W@ZZFrdv&9 zVXg~TCd8E+W73Urr5h7nxiZFuf51mvxHB={bK5&WYD{x)&Ue1^J@2GjSKsO{o_4fR z%2=9UPdb*WM6(59U0+CN(q#LTnw=Xb$0au?S{|9Xz;+$*fw^iq6U};)O12-6TcDAm z%R$+*3ih2*Dx0?Fj}y=0kXb50z%k`2o@Y5+=3AA#TSbUZre~37t-0$~o=hiCj%BLyxk zTU7Bm%#|$D;gvS*ph$~G+Q_8!TSo0yN47PVHg0B()Rch-5@%$R#Ba1V-}PCI>vI`n zF{NkzAz<@eleKv7W3~3J=bc)s^=(Dim*}zf9;IzYpSrFq?d(l7!QMyP*&lwcMWgJ1 z)~U9!sCG|nW!u^?zgNZmRhv7nDvF}tFqS+C z?;uEc4+4Oh1psp#KxLnV{&!5{QGIdBM1*QcIQbO-Kz;!L3HkxRv;u&61^@qatJ%OpezBPzq(=ooX$wUUdN80D zK|PJ2;7Ppbp&;zdyMiEsSN{b;@DC82@7uhw?FRPc&F6jJcizs>TS6G$EXrt)-h9I3%Y{iEVLk9^O>*S=JlYMF{A+++DV6Q2p( z$npadhY9APp)#VUYrzom=gdg}BAHmXSti*FnH81LVY}!!v9etecUg_?8Xe4D?d&F) zWTicl`%D5P(3F@QXJU7pV=}{<1tR)#J-CBjGQkuz;wEe$0kN~4W`b{zk4t9gru#xV zQ^9|0zZ8l(fUE!3y&G8KAt5CQCz!w-zzzZc&vUG>108bFJB!{;VxtawAOsOkv4gRWpr#BIPofn|H-$ YraL><3{`aL_JhYmA&y-W?;n2p2fK4!SO5S3