From 95e08680b875224392595d412ea691672a8a4e5a Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Mon, 9 Mar 2026 12:15:33 -0700 Subject: [PATCH] \CORE.DIRECTORYNAMEP returns T for the {CORE} (no directory) case (#2522) --- sources/COREIO | 55 ++++++++++++++++++++++++-------------------- sources/COREIO.LCOM | Bin 16778 -> 16778 bytes 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/sources/COREIO b/sources/COREIO index 72ff5f56..be878489 100644 --- a/sources/COREIO +++ b/sources/COREIO @@ -1,12 +1,12 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) +(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10) -(FILECREATED "11-Sep-2025 16:49:07" {WMEDLEY}COREIO.;18 56903 +(FILECREATED "28-Feb-2026 12:09:38" {WMEDLEY}COREIO.;20 57201 :EDIT-BY rmk :CHANGES-TO (FNS \CORE.DIRECTORYNAMEP) - :PREVIOUS-DATE " 5-Jun-2022 00:14:07" {WMEDLEY}COREIO.;17) + :PREVIOUS-DATE "11-Sep-2025 16:49:07" {WMEDLEY}COREIO.;18) (PRETTYCOMPRINT COREIOCOMS) @@ -89,6 +89,8 @@ (\CORE.DIRECTORYNAMEP [LAMBDA (DIRNAME DEV) + (* ;; "Edited 28-Feb-2026 12:08 by rmk") + (* ;; "Edited 11-Sep-2025 16:48 by rmk") (* ;; "Edited 18-Jan-2022 11:17 by rmk") @@ -106,18 +108,21 @@ (* ;; "Returns NIL for a DIRNAME of just {CORE}, or {CORE}xxx. If the latter, then we want it to be a directory and not a file (assuming that xxx and xxx> can't both exist.") - [LET [(DIR (FILENAMEFIELD DIRNAME 'DIRECTORY] - (CL:WHEN DIR - (SETQ DIR (CONCAT DIR ">")) + (LET [(DIR (FILENAMEFIELD DIRNAME 'DIRECTORY] + (if DIR + then (SETQ DIR (CONCAT DIR ">")) - (* ;; "DIRPOS because caller may not have stripped off the device. This will match the first < or / (or >)") + (* ;; "DIRPOS because caller may not have stripped off the device. This will match the first < or / (or >)") - (FOR ENTRY (DIRPOS _ (STRPOS "<" DIRNAME 1 NIL NIL NIL FILEDIRCASEARRAY)) - FIRST (CL:UNLESS (EQ DIRPOS 1) - (SETQ DIRNAME (SUBSTRING DIRNAME DIRPOS))) - IN (CDR (FETCH COREDIRECTORY OF DEV)) - WHEN (STRPOS DIRNAME (CAR ENTRY) - 1 NIL T NIL FILEDIRCASEARRAY) DO (RETURN T)))])]) + (FOR ENTRY (DIRPOS _ (STRPOS "<" DIRNAME 1 NIL NIL NIL FILEDIRCASEARRAY)) + FIRST (CL:UNLESS (EQ DIRPOS 1) + (SETQ DIRNAME (SUBSTRING DIRNAME DIRPOS))) + IN (CDR (FETCH COREDIRECTORY OF DEV)) + WHEN (STRPOS DIRNAME (CAR ENTRY) + 1 NIL T NIL FILEDIRCASEARRAY) DO (RETURN T)) + else (* ; + "Top level: does the device exist at al. The cd {CORE}case") + T)))]) (\CORE.FINDPAGE [LAMBDA (STREAM PN) (* bvm%: "20-Apr-85 13:32") @@ -997,16 +1002,16 @@ ) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1572 46115 (\CORE.CLOSEFILE 1582 . 2355) (\CORE.DELETEFILE 2357 . 4343) ( -\CORE.DIRECTORYNAMEP 4345 . 5838) (\CORE.FINDPAGE 5840 . 9069) (\CORE.GENERATEFILES 9071 . 11658) ( -\CORE.NEXTFILEFN 11660 . 12159) (\CORE.FILEINFOFN 12161 . 12390) (\CORE.GETFILEHANDLE 12392 . 14546) ( -\CORE.GETFILEINFO 14548 . 15511) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15513 . 17050) (\CORE.GETFILENAME -17052 . 19341) (\CORE.GETINFOBLOCK 19343 . 21966) (\CORE.NAMESCAN 21968 . 23515) (\CORE.NAMESEGMENT -23517 . 23954) (\CORE.OPENFILE 23956 . 27348) (\COREFILE.SETPARAMETERS 27350 . 29531) ( -\CORE.PACKFILENAME 29533 . 29928) (\CORE.RELEASEPAGES 29930 . 30531) (\CORE.SETFILEPTR 30533 . 31632) -(\CORE.UPDATEOF 31634 . 33263) (\CORE.BACKFILEPTR 33265 . 35473) (\CORE.SETEOFPTR 35475 . 37344) ( -\CORE.SETACCESSTIME 37346 . 37971) (\CORE.SETFILEINFO 37973 . 40275) (\CORE.GETNEXTBUFFER 40277 . -44233) (\CORE.UNPACKFILENAME 44235 . 46113)) (46116 49749 (COREDEVICE 46126 . 46297) ( -\CREATECOREDEVICE 46299 . 49747)) (49750 52164 (\NODIRCOREFDEV 49760 . 50357) (\NODIRCORE.OPENFILE -50359 . 52162))))) + (FILEMAP (NIL (1572 46413 (\CORE.CLOSEFILE 1582 . 2355) (\CORE.DELETEFILE 2357 . 4343) ( +\CORE.DIRECTORYNAMEP 4345 . 6136) (\CORE.FINDPAGE 6138 . 9367) (\CORE.GENERATEFILES 9369 . 11956) ( +\CORE.NEXTFILEFN 11958 . 12457) (\CORE.FILEINFOFN 12459 . 12688) (\CORE.GETFILEHANDLE 12690 . 14844) ( +\CORE.GETFILEINFO 14846 . 15809) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15811 . 17348) (\CORE.GETFILENAME +17350 . 19639) (\CORE.GETINFOBLOCK 19641 . 22264) (\CORE.NAMESCAN 22266 . 23813) (\CORE.NAMESEGMENT +23815 . 24252) (\CORE.OPENFILE 24254 . 27646) (\COREFILE.SETPARAMETERS 27648 . 29829) ( +\CORE.PACKFILENAME 29831 . 30226) (\CORE.RELEASEPAGES 30228 . 30829) (\CORE.SETFILEPTR 30831 . 31930) +(\CORE.UPDATEOF 31932 . 33561) (\CORE.BACKFILEPTR 33563 . 35771) (\CORE.SETEOFPTR 35773 . 37642) ( +\CORE.SETACCESSTIME 37644 . 38269) (\CORE.SETFILEINFO 38271 . 40573) (\CORE.GETNEXTBUFFER 40575 . +44531) (\CORE.UNPACKFILENAME 44533 . 46411)) (46414 50047 (COREDEVICE 46424 . 46595) ( +\CREATECOREDEVICE 46597 . 50045)) (50048 52462 (\NODIRCOREFDEV 50058 . 50655) (\NODIRCORE.OPENFILE +50657 . 52460))))) STOP diff --git a/sources/COREIO.LCOM b/sources/COREIO.LCOM index f011a7be1aeccc6df7b433fe92ed83bc00e0c860..5c3f58cc18c605c3c6030f509b4e09cfd461e907 100644 GIT binary patch delta 347 zcmeBbX6$NawAXNPb@TLd)phgqan<$obMsfQ3UGAxc64`DQ1bK(aSihE3=U9IunKZ@ zbO~{E@<9`xXfGjRWTESpnxt!FU}UCXXk=wzX=Q9NFM zD>E8xzRVcO%3rz(sB|`(<;M4+LBLgE-1tViCQ)4Rw!-*SBY>>tE z^z@VzQW8s2Q?P0A~#*?EN-9!{jb-haSKz0}@ z7#LU?nphc_Ppp<&+c TI1Ch&Y?Ks?3^%`JoofvMS@}|E