Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
210 changes: 109 additions & 101 deletions library/UNIXUTILS

Large diffs are not rendered by default.

Binary file modified library/UNIXUTILS.DFASL
Binary file not shown.
144 changes: 82 additions & 62 deletions lispusers/COMPAREDIRECTORIES
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED "24-Aug-2025 13:38:35" {WMEDLEY}<lispusers>COMPAREDIRECTORIES.;268 133743
(FILECREATED "25-Oct-2025 23:59:24" {MEDLEY}<lispusers>COMPAREDIRECTORIES.;2 135376

:EDIT-BY rmk

:CHANGES-TO (FNS CDENTRIES.SELECT CDPRINT.LINE)
:CHANGES-TO (FNS CDBROWSER-COPY)

:PREVIOUS-DATE "26-Mar-2025 09:41:31" {WMEDLEY}<lispusers>COMPAREDIRECTORIES.;267)
:PREVIOUS-DATE "22-Oct-2025 08:32:01" {WMEDLEY}<lispusers>COMPAREDIRECTORIES.;272)


(PRETTYCOMPRINT COMPAREDIRECTORIESCOMS)
Expand Down Expand Up @@ -160,6 +160,8 @@
(COMPAREDIRECTORIES.INFOS
[LAMBDA (DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH USEDIRECTORYDATE INCLUDEAUTHOR)

(* ;; "Edited 21-Oct-2025 14:26 by rmk")

(* ;; "Edited 29-Sep-2023 17:25 by rmk")

(* ;; "Edited 22-May-2022 14:17 by rmk")
Expand All @@ -168,43 +170,45 @@

(* ;; "Each entry is a list of the form (matchname . CDINFOS). CDINFOS is guaranteed to be a singleton, unless ALLVERSIONS. ")

(FOR FULLNAME TYPE LDATE STREAM (STARTPOS _ (ADD1 (NCHARS DIR)))
IN (CDFILES DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH)
COLLECT
(CL:WHEN (DIRECTORYNAMEP DIR)
[FOR FULLNAME TYPE LDATE STREAM (STARTPOS _ (ADD1 (NCHARS DIR)))
IN (CDFILES DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH)
COLLECT

(* ;; "GDATE/IDATE in case Y2K")
(* ;; "GDATE/IDATE in case Y2K")

(SETQ STREAM (OPENSTREAM FULLNAME 'INPUT)) (* ;
(SETQ STREAM (OPENSTREAM FULLNAME 'INPUT)) (* ;
 "So all the GETFILEINFO's, FILEDATES, etc. don't have to do the directory searching.")
(* ;
 "Is it a Lisp file? Get it's internal filecreated date. ")
(CL:MULTIPLE-VALUE-SETQ (TYPE LDATE)
(COMPAREDIRECTORIES.INFOS.TYPE STREAM))
(PROG1 (LIST (MATCHNAME FULLNAME STARTPOS)
(CREATE CDINFO
FULLNAME _ (FULLNAME STREAM)
DATE _ (GDATE (IDATE (IF (OR USEDIRECTORYDATE (NULL LDATE))
THEN (GETFILEINFO STREAM 'CREATIONDATE)
ELSE (SETFILEINFO STREAM 'CREATIONDATE LDATE)
LDATE)))
LENGTH _ (GETFILEINFO STREAM 'LENGTH)
AUTHOR _ (AND INCLUDEAUTHOR (GETFILEINFO STREAM 'AUTHOR))
TYPE _ TYPE
EOL _ (EOLTYPE STREAM)))
(CLOSEF? STREAM))
FINALLY

(* ;; "Sort to get all entries with the same matchname adjacent. Presumably we would only need to collect multiples if ALLVERSIONS, but in a case-sensitive file system we might see files with names that differ in case. We have deliberately given them a case-insensitive matchname, so we can expose this issue in the display.")

(* ;; "If we see (MN X)(MN Y), smash the Y in after the X")

(RETURN (FOR ITAIL I VAL MN ON (SORT $$VAL T)
DO (SETQ I (CAR ITAIL))
(SETQ MN (CAR I))
[WHILE (EQ MN (CAADR ITAIL)) DO (POP ITAIL)
(PUSH (CDR I)
(CADR (CAR ITAIL]
(PUSH VAL I) FINALLY (RETURN (DREVERSE VAL])
(CL:MULTIPLE-VALUE-SETQ (TYPE LDATE)
(COMPAREDIRECTORIES.INFOS.TYPE STREAM))
(PROG1 (LIST (MATCHNAME FULLNAME STARTPOS)
(CREATE CDINFO
FULLNAME _ (FULLNAME STREAM)
DATE _ (GDATE (IDATE (IF (OR USEDIRECTORYDATE (NULL LDATE))
THEN (GETFILEINFO STREAM 'CREATIONDATE)
ELSE (SETFILEINFO STREAM 'CREATIONDATE
LDATE)
LDATE)))
LENGTH _ (GETFILEINFO STREAM 'LENGTH)
AUTHOR _ (AND INCLUDEAUTHOR (GETFILEINFO STREAM 'AUTHOR))
TYPE _ TYPE
EOL _ (EOLTYPE STREAM)))
(CLOSEF? STREAM))
FINALLY

(* ;; "Sort to get all entries with the same matchname adjacent. Presumably we would only need to collect multiples if ALLVERSIONS, but in a case-sensitive file system we might see files with names that differ in case. We have deliberately given them a case-insensitive matchname, so we can expose this issue in the display.")

(* ;; "If we see (MN X)(MN Y), smash the Y in after the X")

(RETURN (FOR ITAIL I VAL MN ON (SORT $$VAL T)
DO (SETQ I (CAR ITAIL))
(SETQ MN (CAR I))
[WHILE (EQ MN (CAADR ITAIL)) DO (POP ITAIL)
(PUSH (CDR I)
(CADR (CAR ITAIL]
(PUSH VAL I) FINALLY (RETURN (DREVERSE VAL])])

(COMPAREDIRECTORIES.CANDIDATES
[LAMBDA (INFOS1 INFOS2)
Expand Down Expand Up @@ -335,7 +339,9 @@
CDE])

(COMPAREDIRECTORIES.INFOS.TYPE
[LAMBDA (FILE) (* ; "Edited 28-Sep-2023 23:09 by rmk")
[LAMBDA (FILE) (* ; "Edited 22-Oct-2025 08:29 by rmk")
(* ; "Edited 20-Sep-2025 12:59 by rmk")
(* ; "Edited 28-Sep-2023 23:09 by rmk")
(* ; "Edited 22-May-2022 14:27 by rmk")
(* ; "Edited 25-Apr-2022 09:02 by rmk")
(* ; "Edited 4-Jan-2022 13:10 by rmk")
Expand Down Expand Up @@ -404,7 +410,8 @@
(DEFINEQ

(CDFILES
[LAMBDA (DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH)(* ; "Edited 17-Jun-2023 23:04 by rmk")
[LAMBDA (DIR INCLUDEDFILES EXCLUDEDFILES ALLVERSIONS DEPTH)(* ; "Edited 20-Oct-2025 23:25 by rmk")
(* ; "Edited 17-Jun-2023 23:04 by rmk")
(* ; "Edited 3-Oct-2022 12:03 by rmk")
(* ; "Edited 25-Apr-2022 08:42 by rmk")
(* ; "Edited 5-Mar-2022 15:05 by rmk")
Expand All @@ -426,8 +433,7 @@

(* ;; "EXCLUDEDFILES is a filepattern with * meaning everything, COM means *.LCOM and *.DFASL")

[SETQ EXCLUDEDFILES `(*>.DS_Store
,@(MKLIST EXCLUDEDFILES]
[SETQ EXCLUDEDFILES `(*>.DS�Store ,@(MKLIST EXCLUDEDFILES]
(CL:UNLESS (EQMEMB '.* INCLUDEDFILES) (* ;
 "Excluded dot files unless specifically asked for")
[SETQ EXCLUDEDFILES `(.* ,@(MKLIST EXCLUDEDFILES])
Expand Down Expand Up @@ -2117,13 +2123,17 @@
NIL])

(CDBROWSER-COPY
[LAMBDA (CDBROWSER TBITEM SOURCE) (* ; "Edited 24-May-2022 15:49 by rmk")
[LAMBDA (CDBROWSER TBITEM SOURCE UNIXDEST) (* ; "Edited 25-Oct-2025 23:58 by rmk")
(* ; "Edited 24-May-2022 15:49 by rmk")
(* ; "Edited 25-Apr-2022 09:24 by rmk")
(* ; "Edited 5-Feb-2022 17:27 by rmk")
(* ; "Edited 2-Feb-2022 22:18 by rmk")

(* ;; "Copies the file identified as SOURCE (LEFT or RIGHT) in CDENTRY to the other file of the end. If the destination file is missing, it is assumed to be a new/unversioned file of the same name as the source but with the directory prefix switched. CDVALUE needed to know what directory prefixes are involved.")

(* ;;
 "if UNIXDEST, coerces the true destination file to host UNIX--suppresses Medley version numbers")

(* ;; "Returns NIL if the copy fails.")

(CL:UNLESS (TB.ITEM.DELETED? CDBROWSER TBITEM)
Expand Down Expand Up @@ -2167,7 +2177,17 @@
(CLEARW T)
(CL:UNLESS DESTFILE
(SETQ DESTFILE (CD-SWAPDIRS SOURCEFILE SOURCEDIR DESTDIR)))
(SETQ RESULT (COPYFILE SOURCEFILE (PACKFILENAME.STRING 'VERSION NIL 'BODY DESTFILE)))
[SETQ RESULT (if UNIXDEST
then [PSEUDOFILENAME (PACKFILENAME 'HOST 'DSK 'BODY
(COPYFILE SOURCEFILE (PACKFILENAME
'HOST
'UNIX
'VERSION NIL
'BODY
(TRUEFILENAME
DESTFILE]
else (COPYFILE SOURCEFILE (PACKFILENAME.STRING 'VERSION NIL
'BODY DESTFILE]
(PRIN3 (IF RESULT
THEN (TB.DELETE.ITEM CDBROWSER TBITEM)
(CONCAT "Copied to " RESULT)
Expand Down Expand Up @@ -2251,25 +2271,25 @@

(MOVD? 'NILL 'TEDIT.FILEDATE)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (2673 23163 (COMPAREDIRECTORIES 2683 . 8018) (COMPAREDIRECTORIES.INFOS 8020 . 10978) (
COMPAREDIRECTORIES.CANDIDATES 10980 . 14365) (CDENTRIES.SELECT 14367 . 19269) (
COMPAREDIRECTORIES.INFOS.TYPE 19271 . 20397) (MATCHNAME 20399 . 21079) (CD.INSURECDVALUE 21081 . 22695
) (CD.UPDATEWIDTHS 22697 . 23161)) (23164 33786 (CDFILES 23174 . 29188) (CDFILES.MATCH 29190 . 30815)
(CDFILES.PATS 30817 . 33784)) (33787 51805 (CDPRINT 33797 . 36314) (CDPRINT.HEADER 36316 . 37213) (
CDPRINT.LINE 37215 . 40644) (CDPRINT.MAXWIDTHS 40646 . 44761) (CDPRINT.COLHEADERS 44763 . 46048) (
CDPRINT.COLUMNS 46050 . 51170) (CDTEDIT 51172 . 51803)) (51806 60927 (CDMAP 51816 . 53248) (CDENTRY
53250 . 53559) (CDSUBSET 53561 . 55000) (CDMERGE 55002 . 58986) (CDMERGE.COMMON 58988 . 60303) (
CD.SORT 60305 . 60925)) (60928 68466 (BINCOMP 60938 . 65227) (EOLTYPE 65229 . 67791) (EOLTYPE.SHOW
67793 . 68464)) (68994 81521 (FIND-UNCOMPILED-FILES 69004 . 72647) (FIND-UNSOURCED-FILES 72649 . 75033
) (FIND-SOURCE-FILES 75035 . 76773) (FIND-COMPILED-FILES 76775 . 78652) (FIND-UNLOADED-FILES 78654 .
79507) (FIND-LOADED-FILES 79509 . 79937) (FIND-MULTICOMPILED-FILES 79939 . 81519)) (81522 89953 (
CREATED-AS 81532 . 86329) (SOURCE-FOR-COMPILED-P 86331 . 89258) (COMPILE-SOURCE-DATE-DIFF 89260 .
89951)) (89954 100717 (FIX-DIRECTORY-DATES 89964 . 93414) (FIX-EQUIV-DATES 93416 . 94941) (
COPY-COMPARED-FILES 94943 . 96764) (COPY-MISSING-FILES 96766 . 98923) (COMPILED-ON-SAME-SOURCE 98925
. 100715)) (100911 108749 (CDBROWSER 100921 . 104848) (CDBROWSER.STRINGS 104850 . 108747)) (108911
110647 (CD.TABLEITEM 108921 . 109141) (CD.TABLEITEM.PRINTFN 109143 . 109342) (CD.TABLEITEM.COPYFN
109344 . 110402) (CDTABLEBROWSER.HEADING.REPAINTFN 110404 . 110645)) (110648 133218 (
CDTABLEBROWSER.WHENSELECTEDFN 110658 . 111126) (CD.COMMANDSELECTEDFN 111128 . 116229) (CD-MENUFN
116231 . 122457) (CD-COMPARE-FILES 122459 . 125811) (CDBROWSER-COPY 125813 . 129482) (
CDBROWSER-DELETE-FILE 129484 . 132697) (CD-SWAPDIRS 132699 . 133216)))))
(FILEMAP (NIL (2655 23634 (COMPAREDIRECTORIES 2665 . 8000) (COMPAREDIRECTORIES.INFOS 8002 . 11231) (
COMPAREDIRECTORIES.CANDIDATES 11233 . 14618) (CDENTRIES.SELECT 14620 . 19522) (
COMPAREDIRECTORIES.INFOS.TYPE 19524 . 20868) (MATCHNAME 20870 . 21550) (CD.INSURECDVALUE 21552 . 23166
) (CD.UPDATEWIDTHS 23168 . 23632)) (23635 34340 (CDFILES 23645 . 29742) (CDFILES.MATCH 29744 . 31369)
(CDFILES.PATS 31371 . 34338)) (34341 52359 (CDPRINT 34351 . 36868) (CDPRINT.HEADER 36870 . 37767) (
CDPRINT.LINE 37769 . 41198) (CDPRINT.MAXWIDTHS 41200 . 45315) (CDPRINT.COLHEADERS 45317 . 46602) (
CDPRINT.COLUMNS 46604 . 51724) (CDTEDIT 51726 . 52357)) (52360 61481 (CDMAP 52370 . 53802) (CDENTRY
53804 . 54113) (CDSUBSET 54115 . 55554) (CDMERGE 55556 . 59540) (CDMERGE.COMMON 59542 . 60857) (
CD.SORT 60859 . 61479)) (61482 69020 (BINCOMP 61492 . 65781) (EOLTYPE 65783 . 68345) (EOLTYPE.SHOW
68347 . 69018)) (69548 82075 (FIND-UNCOMPILED-FILES 69558 . 73201) (FIND-UNSOURCED-FILES 73203 . 75587
) (FIND-SOURCE-FILES 75589 . 77327) (FIND-COMPILED-FILES 77329 . 79206) (FIND-UNLOADED-FILES 79208 .
80061) (FIND-LOADED-FILES 80063 . 80491) (FIND-MULTICOMPILED-FILES 80493 . 82073)) (82076 90507 (
CREATED-AS 82086 . 86883) (SOURCE-FOR-COMPILED-P 86885 . 89812) (COMPILE-SOURCE-DATE-DIFF 89814 .
90505)) (90508 101271 (FIX-DIRECTORY-DATES 90518 . 93968) (FIX-EQUIV-DATES 93970 . 95495) (
COPY-COMPARED-FILES 95497 . 97318) (COPY-MISSING-FILES 97320 . 99477) (COMPILED-ON-SAME-SOURCE 99479
. 101269)) (101465 109303 (CDBROWSER 101475 . 105402) (CDBROWSER.STRINGS 105404 . 109301)) (109465
111201 (CD.TABLEITEM 109475 . 109695) (CD.TABLEITEM.PRINTFN 109697 . 109896) (CD.TABLEITEM.COPYFN
109898 . 110956) (CDTABLEBROWSER.HEADING.REPAINTFN 110958 . 111199)) (111202 134851 (
CDTABLEBROWSER.WHENSELECTEDFN 111212 . 111680) (CD.COMMANDSELECTEDFN 111682 . 116783) (CD-MENUFN
116785 . 123011) (CD-COMPARE-FILES 123013 . 126365) (CDBROWSER-COPY 126367 . 131115) (
CDBROWSER-DELETE-FILE 131117 . 134330) (CD-SWAPDIRS 134332 . 134849)))))
STOP
Binary file modified lispusers/COMPAREDIRECTORIES.LCOM
Binary file not shown.
15 changes: 9 additions & 6 deletions lispusers/EXAMINEDEFS
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED " 6-Apr-2025 23:54:50" {WMEDLEY}<lispusers>EXAMINEDEFS.;57 16827
(FILECREATED "25-Oct-2025 10:24:30" {WMEDLEY}<lispusers>EXAMINEDEFS.;59 17123

:EDIT-BY rmk

:CHANGES-TO (FNS TEDITDEF)
:CHANGES-TO (FNS EXAMINEDEFS)

:PREVIOUS-DATE "31-Mar-2025 13:53:38" {WMEDLEY}<lispusers>EXAMINEDEFS.;56)
:PREVIOUS-DATE " 6-Apr-2025 23:54:50" {WMEDLEY}<lispusers>EXAMINEDEFS.;57)


(PRETTYCOMPRINT EXAMINEDEFSCOMS)
Expand All @@ -20,7 +20,8 @@
(DEFINEQ

(EXAMINEDEFS
[LAMBDA (NAME TYPE SOURCE1 SOURCE2 TITLE1 TITLE2 REGION) (* ; "Edited 31-Mar-2025 13:53 by rmk")
[LAMBDA (NAME TYPE SOURCE1 SOURCE2 TITLE1 TITLE2 REGION) (* ; "Edited 25-Oct-2025 10:24 by rmk")
(* ; "Edited 31-Mar-2025 13:53 by rmk")
(* ; "Edited 18-Feb-2025 22:56 by rmk")
(* ; "Edited 6-Dec-2024 20:51 by rmk")
(* ; "Edited 13-Oct-2023 11:11 by rmk")
Expand Down Expand Up @@ -148,6 +149,8 @@
DEFAULTFONT)))
(TEXTHEIGHT 600))
(DECLARE (SPECVARS COMPARETEXT.ALLCHUNKS))
(SETQ TITLE1 (CONCAT NAME " from " TITLE1))
(SETQ TITLE2 (CONCAT NAME " from " TITLE2))
(* ;
 "Reuse an existing CT graph window for this DEF")
(OR [FIND W IN (OPENWINDOWS)
Expand Down Expand Up @@ -281,6 +284,6 @@
(FILESLOAD (SYSLOAD)
COMPARETEXT VERSIONDEFS)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (662 16596 (EXAMINEDEFS 672 . 10994) (EXAMINEFILES 10996 . 12478) (TEDITDEF 12480 .
14802) (EXVV 14804 . 16594)))))
(FILEMAP (NIL (665 16892 (EXAMINEDEFS 675 . 11290) (EXAMINEFILES 11292 . 12774) (TEDITDEF 12776 .
15098) (EXVV 15100 . 16890)))))
STOP
Binary file modified lispusers/EXAMINEDEFS.LCOM
Binary file not shown.
Loading