From 1df0e1b17e76866f2c26aab98018670319967fa8 Mon Sep 17 00:00:00 2001 From: Larry Masinter Date: Sun, 24 Aug 2025 04:02:12 -0700 Subject: [PATCH] Fix MEDLEYDIR to handle filename if given (#2268) --- sources/MEDLEYDIR | 61 +++++++++++++++++++++++------------------ sources/MEDLEYDIR.LCOM | Bin 5871 -> 5856 bytes 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/sources/MEDLEYDIR b/sources/MEDLEYDIR index a0c63a2c..124a06c6 100644 --- a/sources/MEDLEYDIR +++ b/sources/MEDLEYDIR @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "18-Aug-2025 11:19:10" {DSK}frank>il>xmedley>sources>MEDLEYDIR.;2 11928 +(FILECREATED "23-Aug-2025 17:25:03" {DSK}larry>il>medley>sources>MEDLEYDIR.;36 12210 - :EDIT-BY "FGH" + :EDIT-BY "lmm" :CHANGES-TO (FNS MEDLEYDIR) - :PREVIOUS-DATE "11-Jul-2025 00:17:20" {DSK}frank>il>xmedley>sources>MEDLEYDIR.;1) + :PREVIOUS-DATE "18-Aug-2025 11:19:10" {DSK}larry>il>medley>sources>MEDLEYDIR.;34) (PRETTYCOMPRINT MEDLEYDIRCOMS) @@ -99,7 +99,8 @@ NIL]) (MEDLEYDIR - [LAMBDA (DIRNAME FILENAME OUTPUT NOERROR) (* ; "Edited 18-Aug-2025 11:15 by FGH") + [LAMBDA (DIRNAME FILENAME OUTPUT NOERROR) (* ; "Edited 23-Aug-2025 17:21 by lmm") + (* ; "Edited 18-Aug-2025 11:15 by FGH") (* ; "Edited 29-Jun-2023 22:48 by rmk") (* ; "Edited 18-Oct-2022 17:49 by lmm") (* ; "Edited 5-Mar-2022 12:43 by larry") @@ -108,20 +109,40 @@ (* ;; "RMK: MEDLEYDIR defaults to DSK") (COND - ((NULL DIRNAME) + ((NULL DIRNAME) (* ; + "Call to (MEDLEYDIR) or (MEDLEYDIR NIL ...) just set it ") (if (OR (NOT (BOUNDP 'MEDLEYDIR)) (NOT MEDLEYDIR)) - then [SETQ MEDLEYDIR (DIRECTORYNAME (if (SETQ MEDLEYDIR (UNIX-GETENV "MEDLEYDIR")) - then (DIRECTORYNAME (PACKFILENAME 'BODY MEDLEYDIR - 'HOST - 'DSK)) - else (DIRECTORYNAME T] + then (SETQ MEDLEYDIR (DIRECTORYNAME (if (SETQ MEDLEYDIR (UNIX-GETENV "MEDLEYDIR")) + then (PACKFILENAME 'BODY MEDLEYDIR 'HOST + 'DSK) + else T))) elseif (STRPOS "/" MEDLEYDIR) then (SETQ MEDLEYDIR (DIRECTORYNAME MEDLEYDIR)) else MEDLEYDIR)) - [(EQUAL DIRNAME "login") (* ; "special case for login dir") + ((LISTP DIRNAME) + + (* ;; "(MEDLEYDIR a list -- recurse") + + (for X Y in DIRNAME when (SETQ Y (MEDLEYDIR X FILENAME OUTPUT NOERROR)) collect Y)) + [FILENAME + + (* ;; " if FILENAME, find it as a file. ") + + (if (NULL (SETQ DIRNAME (MEDLEYDIR DIRNAME NIL OUTPUT NOERROR))) + then (OR NOERROR (SHOULDNT)) + NIL + else (SETQ FILENAME (CONCAT DIRNAME FILENAME)) + (if OUTPUT + then FILENAME + else (OR (INFILEP FILENAME) + (if NOERROR + then NIL + else (ERROR "No such medley file" FILENAME] + ((EQUAL DIRNAME "login") (* ; "special case for login dir") (DIRECTORYNAME (OR (UNIX-GETENV "LOGINDIR") - (UNIX-GETENV "HOME"] + (UNIX-GETENV "HOME") + DIRNAME))) [(EQUAL DIRNAME "loadups") (* ; "special case for loadups dir") (OR (DIRECTORYNAME (UNIX-GETENV "MEDLEY_LOADUPS_DIR")) (DIRECTORYNAME (CONCAT (MEDLEYDIR) @@ -130,18 +151,6 @@ (if NOERROR then NIL else (ERROR "Cannot find medley loadups directory" (MEDLEYDIR] - ((LISTP DIRNAME) - (for X Y in DIRNAME when (SETQ Y (MEDLEYDIR X FILENAME OUTPUT NOERROR)) collect Y)) - [FILENAME (if (NULL (SETQ DIRNAME (MEDLEYDIR DIRNAME NIL OUTPUT NOERROR))) - then (OR NOERROR (SHOULDNT)) - NIL - else (SETQ FILENAME (CONCAT DIRNAME FILENAME)) - (if OUTPUT - then FILENAME - else (OR (INFILEP FILENAME) - (if NOERROR - then NIL - else (ERROR "No such medley file" FILENAME] (T (OR (DIRECTORYNAME (CONCAT (MEDLEYDIR) DIRNAME ">") NIL OUTPUT) @@ -236,6 +245,6 @@ (ADDTOVAR GLOBALVARS MEDLEYDIR MEDLEY-INIT-VARS \SAVE.MEDLEYDIR DIRECTORIES SYSOUTCOMMITS) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1675 9296 (MEDLEY-INIT-VARS 1685 . 5163) (MEDLEYDIR 5165 . 8096) (MEDLEYSUBSTDIR 8098 - . 9076) (SET-SYSOUT-COMMIT 9078 . 9294))))) + (FILEMAP (NIL (1675 9578 (MEDLEY-INIT-VARS 1685 . 5163) (MEDLEYDIR 5165 . 8378) (MEDLEYSUBSTDIR 8380 + . 9358) (SET-SYSOUT-COMMIT 9360 . 9576))))) STOP diff --git a/sources/MEDLEYDIR.LCOM b/sources/MEDLEYDIR.LCOM index 7060096d04ec7857f73e1594e27140225706b99c..c6e924a0a8b5e7b4f1c8339e1bee00188fed820c 100644 GIT binary patch delta 1052 zcmZ{i&u-H|5XRG{YKf^t5C}vi(6AC}3%Gc9o%jzZ*tJa?k=T)w0)<0K>(E3vNt?EZ zQlXr=0hTy%LFx<8(3jvTIDy243wKyMlsYN+u)FikZ)U$;?+^Y9|N7y1LV0~>ohJgx z0G3peQ89k={Bp{#b~?MchMx=ck*O}t&H{&s5MxD^5S3B{t84A%hCl5=qXkGWmC6w3 z=H})Qc-8Hi2mh!SF`DIO?&S-X;aYmdG8uHjkU%dW*fY!bU*4&=o3-44wTm8Kflb3`pssrIdbc|9P^7+tf*K(!2Pe)C>48OM_OZ3FUAvzG3{`3J;AfPPqw_t@i&`AYM(=w& z6#J>P76m^Ku10g8ITKqawMhHRS;x6P{EclDoSnFo{%pMc_-ijpN4p0fCa!efhhi}j zwa804F+-&cSgz~1Kr<4UdDk*3j=OB@MT;o{7>;e|6`)jsqGcAWWrnbb9u*Neu46ph zLJ*Hykggo>L1Z$-5=nw3JO7AZuqu}Q0LTeLL{tU|I#hwBKfZ{7A#aDTs03K)A7g=? z1G8Pri_TKPv{@kGn0d^e&G8X2YcO~ltV_A#mYi~ME_F9c2H1F|5)b4|jFZIRRqFAK z0?2N|*3McTnl;a_?Sj|n)Yi7!om~V}%mB)^CEjmSuB`B*XI172Z&yk2*Z?ss7{kLIH&l-LWaY>Mc J-Y4$%I^ZkHnx5$8p<0YDbPs2@`FdHc{QUv<*-Y z%D+Hm2_Yml`VZ8~&Od;d*qK;a7#TP_h1#j`aOdxPpL_3ne*Vt=zbvjwqEr=rf=SOU2Q&mbFbs=wo3^YlbAXz;sPjo zwPtgb7WK5awCq1i-w1eK11kTW zLK4)BaC{9Qy!e;LvUJV^7DZ?-o2&JzVFMO~cnZsB{V~SzI4_U6!90IfeL#ONF~%af zFvcR8z^YMu%q{7*Zae}cl5s*PBncuVH9!6}iu4Y))i9fomxW|C|4R10EXN%o6jyv) z75P|7F8Z&sPbw0yh6e}z%?|9g9k+c1PIte(dFbsQv2+XquqC?Vi`Z7zZL@%p?ElWr zOf!I}%aBF13+sC8PJi!!DyiU?m`NE)iKsw;T{c&A3J?Tr-CU{}bi7nznsL4DZjXh6 K$OI?M-P|9-KmN)9