From c16e3b4a55f58dd3aaeddd0438185e3264e2d9b6 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Thu, 30 Apr 2026 23:04:26 -0700 Subject: [PATCH 1/3] Move UNIXY commands to UNIXUTILS, delete UNIXYCD (#2587) * Move UNIXY commands to UNIXUTILS, delete UNIXYCD * Delete UNIXYCD --- internal/loadups/LOADUP-FULL | 22 ++++++++++------------ internal/loadups/LOADUP-FULL.LCOM | Bin 3022 -> 3032 bytes library/UNIXUTILS | 27 +++++++++++++++++++-------- library/UNIXUTILS.DFASL | Bin 8129 -> 9231 bytes lispusers/UNIXYCD | 24 ------------------------ lispusers/UNIXYCD.LCOM | 13 ------------- lispusers/UNIXYCD.TXT | 13 ------------- 7 files changed, 29 insertions(+), 70 deletions(-) delete mode 100644 lispusers/UNIXYCD delete mode 100644 lispusers/UNIXYCD.LCOM delete mode 100644 lispusers/UNIXYCD.TXT diff --git a/internal/loadups/LOADUP-FULL b/internal/loadups/LOADUP-FULL index f6289eff..00240f7e 100644 --- a/internal/loadups/LOADUP-FULL +++ b/internal/loadups/LOADUP-FULL @@ -1,12 +1,12 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) +(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10) -(FILECREATED "14-Feb-2026 00:42:39" {WMEDLEY}loadups>LOADUP-FULL.;38 5967 +(FILECREATED "28-Apr-2026 10:01:06" {WMEDLEY}loadups>LOADUP-FULL.;47 5896 :EDIT-BY rmk :CHANGES-TO (FNS LOADUP-FULL) - :PREVIOUS-DATE "13-Feb-2026 00:47:52" {WMEDLEY}loadups>LOADUP-FULL.;37) + :PREVIOUS-DATE "16-Apr-2026 09:37:27" {WMEDLEY}loadups>LOADUP-FULL.;46) (PRETTYCOMPRINT LOADUP-FULLCOMS) @@ -16,7 +16,8 @@ (DEFINEQ (LOADFULLFONTS - [LAMBDA NIL (* ; "Edited 20-Sep-2025 14:17 by rmk") + [LAMBDA NIL (* ; "Edited 16-Apr-2026 09:37 by rmk") + (* ; "Edited 20-Sep-2025 14:17 by rmk") (* ; "Edited 2-Sep-2025 20:06 by rmk") (* ; "Edited 13-Jul-2025 11:40 by rmk") (* ; "Edited 30-Jun-2025 00:04 by rmk") @@ -27,11 +28,8 @@ (* ;; " Don't do Interpress. Do character set 0 and the symbol character sets 41Q, 42Q, 356Q, 357Q and extended and accented Latin 43Q and 361Q") - (PRINTOUT T "Loading FULL fonts..." T) + (PRINTOUT T T "Loading FULL fonts..." T) (SETQ *POSTSCRIPT-FILE-TYPE* 'TEXT) - - (* ;; "Previous code reset the coercion variables to NIL, which would have resulted in glyph-incomplete charsets. With Medley-formatted fonts, the completions have already been installed in the files and there is no need to deal with those variables.") - (for FAMILY in '(CLASSIC MODERN TERMINAL) do (PRINTOUT T " Loading " FAMILY " ") [for SIZE in '(8 10 12) @@ -47,7 +45,8 @@ (PRINTOUT T "FULL fonts loaded" T]) (LOADUP-FULL - [LAMBDA (DRIBBLEFILE) (* ; "Edited 14-Feb-2026 00:42 by rmk") + [LAMBDA (DRIBBLEFILE) (* ; "Edited 28-Apr-2026 10:00 by rmk") + (* ; "Edited 14-Feb-2026 00:42 by rmk") (* ; "Edited 5-Feb-2026 10:26 by rmk") (* ; "Edited 28-Dec-2025 12:06 by rmk") (* ; "Edited 1-Sep-2025 11:59 by rmk") @@ -86,8 +85,7 @@ (LOADUP '(CHAT INTERPRESS TEDIT HRULE TEDIT-CHAT READNUMBER EDITBITMAP FILEBROWSER THINFILES GRAPHER SPY WHERE-IS COPYFILES MSANALYZE MSPARSE MASTERSCOPE UNIXPRINT HELPSYS - DINFO CLIPBOARD MODERNIZE WHEELSCROLL PRETTYFILEINDEX WHO-LINE UNIXCOMM UNIXCHAT - UNIXYCD)) + DINFO CLIPBOARD MODERNIZE WHEELSCROLL PRETTYFILEINDEX WHO-LINE UNIXCOMM UNIXCHAT)) (LOADFULLFONTS) (COND ((WINDOWP *WHO-LINE*) @@ -103,5 +101,5 @@ (FIXMETA) (DECLARE%: DONTCOPY - (FILEMAP (NIL (456 5929 (LOADFULLFONTS 466 . 2601) (LOADUP-FULL 2603 . 5679) (FIXMETA 5681 . 5927))))) + (FILEMAP (NIL (456 5858 (LOADFULLFONTS 466 . 2449) (LOADUP-FULL 2451 . 5608) (FIXMETA 5610 . 5856))))) STOP diff --git a/internal/loadups/LOADUP-FULL.LCOM b/internal/loadups/LOADUP-FULL.LCOM index b6d976e2ceee932f00940259cc5be03074e4efcc..e2f4fb9ee06d1a18a953c3768cc6ae1979519b62 100644 GIT binary patch delta 685 zcmZuuJ#W-N5ItYuP)>9pf=H3kN=QDUvv$|(^+$1GWBbsGJ^SQyq)<>qaX=A}AV^P7 zck)lUp1>cVrlX;w;4d&f*&!foS^M^l-kUe$uUp@?_Ut5`>MR{kwMoZ1o8}PBRs2*v zNrC9BObeqIa{^J3s-#r=<{x^wcmFOA#_H|6F{fMtqY-5hmCIMr1L2QgNUm4uy6Vd1 z`#G=aZdyPgELS{j`2rx3@QM^m?b8J$x=#-#6}A9|8(E^t{l(eF1o847eA-d=XFctaO?^ zGyu5p03#*3Ku96ZvsfX^{VP4Eot|EqGGBtp(c-|E#%7@?r3{$sLvxJ})&t@i{Z<=# zE$}-a-Inn>hKsHz>ttTb;NF<$)t_%}Cm|&GD~);vJjCi@i8bId0Mdkk7w2ae@8R|N zQFT%g;I0Q`a!efgc5Utb3lw7G=1XUTWgyc}g?5^$IwGXLWe;^Cju^d-QFO^yn5CYl*`4!xv z{VBPF_ydSze*qT`+&Fg(PKzqETJ6)Dc{6WjuXeue99VIZW<@ecvpgAOMLL4LGK^k^ zFA^YGQ72WNjY|T1RT9Q^c$nXz7Y7fwm^(;k=L1f;07?Uw2admZ7d&!QA9{q*+bE*} z^#iIFU-oO}-14?<6PTXOXVXUTPoOEM0!m50XEhEZv{5H9kpJ~0puZZ{Jx77(3#mUC z!v}Xt$-v|Kv$5ZC&H2Hay%j-zx`)ONFg z1^~wf=q1i7gbqZbA_|e^^hVE|R?qyKqD=Vuw7Wf~&=mPQ2QW(8Or=^NR=^W2uq^>F?dgF^3pGDi2T438qbIjNv2$B(fedv15ovuL;wH) diff --git a/library/UNIXUTILS b/library/UNIXUTILS index fa1c2260..2a6eac9f 100644 --- a/library/UNIXUTILS +++ b/library/UNIXUTILS @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10) -(FILECREATED "27-Apr-2026 11:10:07" {DSK}frank>il>medley>library>UNIXUTILS.;7 21772 +(FILECREATED "28-Apr-2026 09:59:13" {WMEDLEY}UNIXUTILS.;61 22079 - :EDIT-BY "FGH" + :EDIT-BY rmk - :CHANGES-TO (FNS ShellOpen SLASHIT) + :CHANGES-TO (VARS UNIXUTILSCOMS) - :PREVIOUS-DATE "31-Mar-2026 00:14:19" {DSK}frank>il>medley>library>UNIXUTILS.;3) + :PREVIOUS-DATE "27-Apr-2026 11:10:07" {MEDLEY}UNIXUTILS.;60) (PRETTYCOMPRINT UNIXUTILSCOMS) @@ -23,6 +23,7 @@ (ShellOpener NIL RESET))) (FNS ShellBrowser ShellBrowse ShellOpener ShellOpen PROCESS-COMMAND SLASHIT UNIX-FILE-NAME UNIX-TMP-FILE-NAME) + (COMMANDS "cd" cdm "ls" "pwd") (PROPS (UNIXUTILS FILETYPE)))) (DECLARE%: EVAL@COMPILE DONTCOPY @@ -371,10 +372,20 @@ unless (INFILEP UNAME) do (RETURN (SLASHIT (CLOSEF (OPENSTREAM UNAME 'OUTPUT 'NEW]) ) +(DEFCOMMAND "cd" (DIR) (/CNDIR DIR)) + +(DEFCOMMAND cdm (SUBDIR) (/CNDIR (CL:IF SUBDIR + (CONCAT '{MEDLEY}/ SUBDIR) + '{MEDLEY}))) + +(DEFCOMMAND "ls" (FIRST . REST) (DODIR (CONS FIRST REST))) + +(DEFCOMMAND "pwd" NIL (DIRECTORYNAME T)) + (PUTPROPS UNIXUTILS FILETYPE CL:COMPILE-FILE) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1207 1580 (ShellCommand 1207 . 1580)) (1582 1979 (ShellWhich 1582 . 1979)) (2089 21694 -(ShellBrowser 2099 . 3871) (ShellBrowse 3873 . 4558) (ShellOpener 4560 . 6248) (ShellOpen 6250 . 12197 -) (PROCESS-COMMAND 12199 . 12812) (SLASHIT 12814 . 16126) (UNIX-FILE-NAME 16128 . 20013) ( -UNIX-TMP-FILE-NAME 20015 . 21692))))) + (FILEMAP (NIL (1208 1581 (ShellCommand 1208 . 1581)) (1583 1980 (ShellWhich 1583 . 1980)) (2090 21695 +(ShellBrowser 2100 . 3872) (ShellBrowse 3874 . 4559) (ShellOpener 4561 . 6249) (ShellOpen 6251 . 12198 +) (PROCESS-COMMAND 12200 . 12813) (SLASHIT 12815 . 16127) (UNIX-FILE-NAME 16129 . 20014) ( +UNIX-TMP-FILE-NAME 20016 . 21693))))) STOP diff --git a/library/UNIXUTILS.DFASL b/library/UNIXUTILS.DFASL index 6135779e237e13d44a2d81ae66288b563ee25bfe..75d2324237209d94f142ed7aaeb9611df8d55331 100644 GIT binary patch delta 3301 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 BM;ibD diff --git a/lispusers/UNIXYCD b/lispusers/UNIXYCD deleted file mode 100644 index e6dd17ee..00000000 --- a/lispusers/UNIXYCD +++ /dev/null @@ -1,24 +0,0 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) - -(FILECREATED "12-Aug-2022 12:29:18" {DSK}larry>medley>lispusers>UNIXYCD.;1 568 - - :CHANGES-TO (VARS UNIXYCDCOMS) - - :PREVIOUS-DATE "12-Aug-2022 11:14:47" {DSK}larry>medley>lispusers>UNIXYCD.;1) - - -(PRETTYCOMPRINT UNIXYCDCOMS) - -(RPAQQ UNIXYCDCOMS ((COMMANDS "cd" "ls" "pwd"))) - -(DEFCOMMAND "cd" (DIR) - (/CNDIR DIR)) - -(DEFCOMMAND "ls" (FIRST . REST) - (DODIR (CONS FIRST REST))) - -(DEFCOMMAND "pwd" () - (DIRECTORYNAME T)) -(DECLARE%: DONTCOPY - (FILEMAP (NIL))) -STOP diff --git a/lispusers/UNIXYCD.LCOM b/lispusers/UNIXYCD.LCOM deleted file mode 100644 index 013420cc..00000000 --- a/lispusers/UNIXYCD.LCOM +++ /dev/null @@ -1,13 +0,0 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) - -(FILECREATED "12-Aug-2022 12:29:30" ("compiled on " {DSK}larry>medley>lispusers>UNIXYCD.;1) -"12-Aug-2022 10:18:11" bcompl'd in "Welcome to Fuller sysout 12-Aug-2022 ..." dated -"12-Aug-2022 10:22:21") -(FILECREATED "12-Aug-2022 12:29:18" {DSK}larry>medley>lispusers>UNIXYCD.;1 568 :CHANGES-TO (VARS - UNIXYCDCOMS) :PREVIOUS-DATE "12-Aug-2022 11:14:47" {DSK}larry>medley>lispusers>UNIXYCD.;1) -(PRETTYCOMPRINT UNIXYCDCOMS) -(RPAQQ UNIXYCDCOMS ((COMMANDS "cd" "ls" "pwd"))) -(DEFCOMMAND "cd" (DIR) (/CNDIR DIR)) -(DEFCOMMAND "ls" (FIRST . REST) (DODIR (CONS FIRST REST))) -(DEFCOMMAND "pwd" NIL (DIRECTORYNAME T)) -NIL diff --git a/lispusers/UNIXYCD.TXT b/lispusers/UNIXYCD.TXT deleted file mode 100644 index 670e3988..00000000 --- a/lispusers/UNIXYCD.TXT +++ /dev/null @@ -1,13 +0,0 @@ - UNIXYCD & .LCOM .TXT - - -This file implements little commands: - -cd change Lisp's current directory to home -cd dir dir can be a path separated by / or >. - if no "hostname" is given, it's assumed {DSK} -ls [dir] list current directory or a directory that's given - non-feature: ls foo only prints foo; you need to - specify ls foo/ -pwd print working directory - From eb6ee871705535a2810f40e8662637218ad244c2 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Wed, 6 May 2026 11:54:13 -0700 Subject: [PATCH 2/3] COMPAREDIRECTORIES implements the ** all-subdirectories convention of .gitignore (#2583) * COMPAREDIRECTORIES implements the ** all-subdirectories convention of .gitignore * Can specify exclusions/ignores in gwc command line, after hyphen --- lispusers/COMPAREDIRECTORIES | 135 +++++++++++++----------- lispusers/COMPAREDIRECTORIES.LCOM | Bin 42873 -> 42930 bytes lispusers/GITFNS | 165 +++++++++++++++++++----------- lispusers/GITFNS.LCOM | Bin 51115 -> 52153 bytes lispusers/GITFNS.TEDIT | Bin 19802 -> 19905 bytes 5 files changed, 176 insertions(+), 124 deletions(-) diff --git a/lispusers/COMPAREDIRECTORIES b/lispusers/COMPAREDIRECTORIES index 1c2efa56..962d86d0 100644 --- a/lispusers/COMPAREDIRECTORIES +++ b/lispusers/COMPAREDIRECTORIES @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10) -(FILECREATED "31-Mar-2026 10:50:22" {WMEDLEY}COMPAREDIRECTORIES.;287 138875 +(FILECREATED "28-Apr-2026 23:41:24" {MEDLEY}COMPAREDIRECTORIES.;289 139726 :EDIT-BY rmk - :CHANGES-TO (FNS CDBROWSER-COPY) + :CHANGES-TO (FNS CDFILES.PATS CDFILES.MATCH CDBROWSER-COPY) - :PREVIOUS-DATE "10-Feb-2026 21:28:55" {WMEDLEY}COMPAREDIRECTORIES.;286) + :PREVIOUS-DATE "28-Apr-2026 21:38:49" {MEDLEY}COMPAREDIRECTORIES.;288) (PRETTYCOMPRINT COMPAREDIRECTORIESCOMS) @@ -507,32 +507,37 @@ UNLESS (CDFILES.MATCH SUBDIR NAME EXT THISDEPTH EXCLUDES) COLLECT FULLNAME]) (CDFILES.MATCH - [LAMBDA (SUBDIR NAME EXT THISDEPTH PATTERNS) (* ; "Edited 26-Jan-2022 15:33 by rmk") + [LAMBDA (SUBDIR NAME EXT THISDEPTH PATTERNS) (* ; "Edited 28-Apr-2026 23:40 by rmk") + (* ; "Edited 26-Jan-2022 15:33 by rmk") (* ; "Edited 23-Dec-2021 21:47 by rmk") + (thereis P in PATTERNS suchthat - (* ;; "True if the components of the fullname match at least one of the patterns") + (* ;; "The SUBDIR test is tricky. If the exclusion pattern was internal/fonts/**, this shows up as (* * internal/fonts 65535), it has to match internal/fonts/display/completed/. Below we test for an initial substring") - (THEREIS P IN PATTERNS SUCHTHAT (AND [OR (STRING.EQUAL NAME (CAR P) - FILEDIRCASEARRAY) - (EQ '* (CAR P)) - (AND (EQ (CHARCODE %.) - (CHCON1 (CAR P))) - (EQ (CHARCODE %.) - (CHCON1 NAME)) - (OR (STRING.EQUAL NAME (SUBATOM (CAR P) - 2)) - (EQ (CHARCODE *) - (NTHCHARCODE (CAR P) - 2] - (OR (STRING.EQUAL EXT (CADR P)) - (EQ '* (CADR P))) - (OR (STRING.EQUAL SUBDIR (CADDR P)) - (NULL (CADDR P)) - (EQ '* (CADDR P))) - (ILEQ THISDEPTH (CADDDR P]) + (AND [OR (STRING.EQUAL NAME (CAR P) + FILEDIRCASEARRAY) + (EQ '* (CAR P)) + (AND (EQ (CHARCODE %.) + (CHCON1 (CAR P))) + (EQ (CHARCODE %.) + (CHCON1 NAME)) + (OR (STRING.EQUAL NAME (SUBATOM (CAR P) + 2)) + (EQ (CHARCODE *) + (NTHCHARCODE (CAR P) + 2] + (OR (STRING.EQUAL EXT (CADR P)) + (EQ '* (CADR P))) + (ILEQ THISDEPTH (CADDDR P)) + (OR (STRING.EQUAL SUBDIR (CADDR P)) + (NULL (CADDR P)) + (EQ '* (CADDR P)) + (STRPOS (CADDR P) + SUBDIR 1 NIL T]) (CDFILES.PATS - [LAMBDA (PATTERNS) (* ; "Edited 17-Jun-2023 23:36 by rmk") + [LAMBDA (PATTERNS) (* ; "Edited 28-Apr-2026 23:01 by rmk") + (* ; "Edited 17-Jun-2023 23:36 by rmk") (* ; "Edited 23-Dec-2021 17:02 by rmk") (* ;; "Returns (NAME EXT SUBDIR DEPTH) items where NAME or EXT may be the wildcard *, SD is the subdirectory (if any) and DEPTH is the number of / or > in the subdirectory") @@ -544,15 +549,15 @@ (* * NIL 1) ) ELSE (FOR P N E SD DEPTH UNPACK INSIDE PATTERNS - JOIN (SETQ UNPACK (UNPACKFILENAME.STRING P)) (* ; + JOIN (SETQ UNPACK (UNPACKFILENAME P)) (* ;  "String so we can tell the difference between x and x.") - [SETQ SD (MKATOM (LISTGET UNPACK 'SUBDIRECTORY] + (SETQ SD (LISTGET UNPACK 'SUBDIRECTORY)) (* ;; "Count the subdirectory depth") - [SETQ DEPTH (IF (EQ SD '*) - THEN MAX.SMALLP - ELSE (FOR I (CNT _ 1) FROM 1 DO (SELCHARQ (NTHCHARCODE SD I) + [SETQ DEPTH (if (EQ SD '*) + then MAX.SMALLP + else (for I (CNT _ 1) from 1 do (SELCHARQ (NTHCHARCODE SD I) ((/ >) (ADD CNT 1)) (NIL (RETURN CNT)) @@ -560,28 +565,31 @@ (SETQ N (LISTGET UNPACK 'NAME)) (SETQ N (if (NULL N) then '* + elseif (EQ N '**) + then (SETQ DEPTH MAX.SMALLP) + '* elseif (NEQ 0 (NCHARS N)) - then (MKATOM N))) + then N)) (SETQ E (LISTGET UNPACK 'EXTENSION)) (SETQ E (if (NULL E) then '* elseif (NEQ 0 (NCHARS E)) - then (MKATOM E))) - (if [OR (AND (STRING.EQUAL N 'COM) + then E)) + (if [OR (AND (EQ N 'COM) (NULL E)) - (AND (STRING.EQUAL E 'COM) + (AND (EQ E 'COM) (MEMB N ' (* NIL)] - THEN (FOR CE IN *COMPILED-EXTENSIONS* COLLECT (LIST '* CE SD DEPTH)) - ELSE (CONS (IF N - THEN (LIST N E SD DEPTH) - ELSEIF E - THEN + then (for CE in *COMPILED-EXTENSIONS* collect (LIST '* CE SD DEPTH)) + else (CONS (if N + then (LIST N E SD DEPTH) + elseif E + then (* ;; "This is the case .XXX, which presumably identifies a dotted file. If this is supposed to be all files with extension XXX, it shoud be specified as *.XXX, the case above. So we move .E into the N field.") (LIST (PACK* '%. E) NIL SD DEPTH) - ELSE ` + else ` (* * (\, SD) (\, DEPTH)) ]) @@ -2146,7 +2154,8 @@ NIL]) (CDBROWSER-COPY - [LAMBDA (CDBROWSER TBITEM SOURCE UNIXDEST) (* ; "Edited 31-Mar-2026 10:49 by rmk") + [LAMBDA (CDBROWSER TBITEM SOURCE UNIXDEST) (* ; "Edited 28-Apr-2026 18:54 by rmk") + (* ; "Edited 31-Mar-2026 10:49 by rmk") (* ; "Edited 28-Oct-2025 17:39 by rmk") (* ; "Edited 25-Oct-2025 23:58 by rmk") (* ; "Edited 24-May-2022 15:49 by rmk") @@ -2185,7 +2194,8 @@ (PRIN3 "No source file to copy" T) (RETURN NIL)) (CL:WHEN [AND (EQ DATERELBAD (FETCH (CDENTRY DATEREL) OF CDENTRY)) - (PROGN (FLASHWINDOW T) + (PROGN (GIVE.TTY.PROCESS T) + (FLASHWINDOW T) (EQ 'N (ASKUSER NIL NIL "Target is newer than source. Really copy? "] (RETURN NIL)) @@ -2195,6 +2205,7 @@ )) 'VERSION)) (PROGN (FLASHWINDOW T) + (GIVE.TTY.PROCESS T) (EQ 'N (ASKUSER NIL NIL (CONCAT SOURCEFILE " is not the newest version. Really copy? " ] @@ -2326,25 +2337,25 @@ (MOVD? 'NILL 'TEDIT.FILEDATE) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2658 23637 (COMPAREDIRECTORIES 2668 . 8003) (COMPAREDIRECTORIES.INFOS 8005 . 11234) ( -COMPAREDIRECTORIES.CANDIDATES 11236 . 14621) (CDENTRIES.SELECT 14623 . 19525) ( -COMPAREDIRECTORIES.INFOS.TYPE 19527 . 20871) (MATCHNAME 20873 . 21553) (CD.INSURECDVALUE 21555 . 23169 -) (CD.UPDATEWIDTHS 23171 . 23635)) (23638 34343 (CDFILES 23648 . 29745) (CDFILES.MATCH 29747 . 31372) -(CDFILES.PATS 31374 . 34341)) (34344 52362 (CDPRINT 34354 . 36871) (CDPRINT.HEADER 36873 . 37770) ( -CDPRINT.LINE 37772 . 41201) (CDPRINT.MAXWIDTHS 41203 . 45318) (CDPRINT.COLHEADERS 45320 . 46605) ( -CDPRINT.COLUMNS 46607 . 51727) (CDTEDIT 51729 . 52360)) (52363 61484 (CDMAP 52373 . 53805) (CDENTRY -53807 . 54116) (CDSUBSET 54118 . 55557) (CDMERGE 55559 . 59543) (CDMERGE.COMMON 59545 . 60860) ( -CD.SORT 60862 . 61482)) (61485 69023 (BINCOMP 61495 . 65784) (EOLTYPE 65786 . 68348) (EOLTYPE.SHOW -68350 . 69021)) (69551 82078 (FIND-UNCOMPILED-FILES 69561 . 73204) (FIND-UNSOURCED-FILES 73206 . 75590 -) (FIND-SOURCE-FILES 75592 . 77330) (FIND-COMPILED-FILES 77332 . 79209) (FIND-UNLOADED-FILES 79211 . -80064) (FIND-LOADED-FILES 80066 . 80494) (FIND-MULTICOMPILED-FILES 80496 . 82076)) (82079 90510 ( -CREATED-AS 82089 . 86886) (SOURCE-FOR-COMPILED-P 86888 . 89815) (COMPILE-SOURCE-DATE-DIFF 89817 . -90508)) (90511 101274 (FIX-DIRECTORY-DATES 90521 . 93971) (FIX-EQUIV-DATES 93973 . 95498) ( -COPY-COMPARED-FILES 95500 . 97321) (COPY-MISSING-FILES 97323 . 99480) (COMPILED-ON-SAME-SOURCE 99482 - . 101272)) (101468 109346 (CDBROWSER 101478 . 105445) (CDBROWSER.STRINGS 105447 . 109344)) (109508 -111244 (CD.TABLEITEM 109518 . 109738) (CD.TABLEITEM.PRINTFN 109740 . 109939) (CD.TABLEITEM.COPYFN -109941 . 110999) (CDTABLEBROWSER.HEADING.REPAINTFN 111001 . 111242)) (111245 138359 ( -CDTABLEBROWSER.WHENSELECTEDFN 111255 . 111723) (CD.COMMANDSELECTEDFN 111725 . 117898) (CD-MENUFN -117900 . 124377) (CD-COMPARE-FILES 124379 . 127906) (CDBROWSER-COPY 127908 . 133233) ( -CDBROWSER-DELETE-FILE 133235 . 137838) (CD-SWAPDIRS 137840 . 138357))))) + (FILEMAP (NIL (2683 23662 (COMPAREDIRECTORIES 2693 . 8028) (COMPAREDIRECTORIES.INFOS 8030 . 11259) ( +COMPAREDIRECTORIES.CANDIDATES 11261 . 14646) (CDENTRIES.SELECT 14648 . 19550) ( +COMPAREDIRECTORIES.INFOS.TYPE 19552 . 20896) (MATCHNAME 20898 . 21578) (CD.INSURECDVALUE 21580 . 23194 +) (CD.UPDATEWIDTHS 23196 . 23660)) (23663 34971 (CDFILES 23673 . 29770) (CDFILES.MATCH 29772 . 31782) +(CDFILES.PATS 31784 . 34969)) (34972 52990 (CDPRINT 34982 . 37499) (CDPRINT.HEADER 37501 . 38398) ( +CDPRINT.LINE 38400 . 41829) (CDPRINT.MAXWIDTHS 41831 . 45946) (CDPRINT.COLHEADERS 45948 . 47233) ( +CDPRINT.COLUMNS 47235 . 52355) (CDTEDIT 52357 . 52988)) (52991 62112 (CDMAP 53001 . 54433) (CDENTRY +54435 . 54744) (CDSUBSET 54746 . 56185) (CDMERGE 56187 . 60171) (CDMERGE.COMMON 60173 . 61488) ( +CD.SORT 61490 . 62110)) (62113 69651 (BINCOMP 62123 . 66412) (EOLTYPE 66414 . 68976) (EOLTYPE.SHOW +68978 . 69649)) (70179 82706 (FIND-UNCOMPILED-FILES 70189 . 73832) (FIND-UNSOURCED-FILES 73834 . 76218 +) (FIND-SOURCE-FILES 76220 . 77958) (FIND-COMPILED-FILES 77960 . 79837) (FIND-UNLOADED-FILES 79839 . +80692) (FIND-LOADED-FILES 80694 . 81122) (FIND-MULTICOMPILED-FILES 81124 . 82704)) (82707 91138 ( +CREATED-AS 82717 . 87514) (SOURCE-FOR-COMPILED-P 87516 . 90443) (COMPILE-SOURCE-DATE-DIFF 90445 . +91136)) (91139 101902 (FIX-DIRECTORY-DATES 91149 . 94599) (FIX-EQUIV-DATES 94601 . 96126) ( +COPY-COMPARED-FILES 96128 . 97949) (COPY-MISSING-FILES 97951 . 100108) (COMPILED-ON-SAME-SOURCE 100110 + . 101900)) (102096 109974 (CDBROWSER 102106 . 106073) (CDBROWSER.STRINGS 106075 . 109972)) (110136 +111872 (CD.TABLEITEM 110146 . 110366) (CD.TABLEITEM.PRINTFN 110368 . 110567) (CD.TABLEITEM.COPYFN +110569 . 111627) (CDTABLEBROWSER.HEADING.REPAINTFN 111629 . 111870)) (111873 139210 ( +CDTABLEBROWSER.WHENSELECTEDFN 111883 . 112351) (CD.COMMANDSELECTEDFN 112353 . 118526) (CD-MENUFN +118528 . 125005) (CD-COMPARE-FILES 125007 . 128534) (CDBROWSER-COPY 128536 . 134084) ( +CDBROWSER-DELETE-FILE 134086 . 138689) (CD-SWAPDIRS 138691 . 139208))))) STOP diff --git a/lispusers/COMPAREDIRECTORIES.LCOM b/lispusers/COMPAREDIRECTORIES.LCOM index 996c39502f921e05aee68560af95e8ef64a83086..341d25920a0073817fa5ea0c3e2fe674d38e8666 100644 GIT binary patch delta 1493 zcmZux-EZ4e6tB&Yx=KKW7%E*i4whhDwHn_Ke?@($W8XAZ96Q*~(xQUc)@luerh@K; zYRbe5()L1oD=H*j#v@{grJ95UDm)+|fdmimFYvtb$Wys?mNc#KgZ(?dd(OGP^O5}f zyWIUl{I$^iL4mF9&h$(6Wf)V2{gGDC ztO7>cKTUK>e!vp7>ZEQNT(4)}=6((SqJPhivrL~Iiqd{a^;h7|PWD831!^lWmQ^WP zyf*&A{+Rq=Li(D2H>q_#a?Xy3r==ct+m0`_P zch2=?S(g6UC-VaIj`tORMd0pK_U`$8BhdVNYt3h#&cb&6M^81!%ktvGqqoLKrjc$z zlE$?t0fcq_=J~cv3IFZ9#Am_Kg_rq zP|V+nU+hq%K`mi*FY3Dj6+Iqqz96(?Wkd|{#3>O?Pvbfp#1m2Lpb(-_NSq{zT)@;G zK#Y4rLZJj}qAqVXX*e~{&-Oyx;0DZz8)B5`R0+t?1`R>fJW(*B{PD-0Cy$VQ0`^AthxDMI{=qS#;XLnp{OE7~%o z1{pekdk?GPMg?xPZ?#rny}b$7SB0_BTwPH>7o%3(+2Yau}y1xH-@9uN| E0m;{WS^xk5 delta 1414 zcmZux&2Jk;6!$Jg3ZbGE5yELw^RyDejcT*=wI4n}*Sq6-<@K)FUE@S55-o{{QNR`C zf&zpCCpbVe5vdAX5aPfEB~edBija^vRH8=?AXNT?^n^IU?AnP_!yabe{NC@)`<&Uk zr~dtm`dP0`P^EqK?F!bh0Z6Ygy@s&{W$m@Wo7ekmE6Xr=3pCj1i3dt~*1Q1I8YW{4 zU9S;ZL-@u)ajhOly@baVH|i`wUs^S~K>#P&)oN9P<*V!R)c+hqts1el3)AI>A8f-J{gF+c0LwqqePze&J=RZ+;;^utg(cF{xW4@72<+h*Zz#E6(wsPUa)jQD> zx#GDiweFV%a3hby8B;$Z zF%!C>__H|ElD#At!vYZL>Dek^X2}gkHn`FS)@lAnmM&3bBH)WD4--EM0Z}8vWJ00S z=3pA)s}iV$>>re--Z_O0S>3xgem+}%vQRj6$r%=9SNTf)j@BL?CpWkt~KidfyAQ+^X4ZMQfzp(D#ffKenP3tcA#hHYpBPSWi8 zp%?XlAqr`|>hXZ5yy~aC4J^;2vy_c3Q1NQ~bdwquI7zE3F9T46934jK!-r9sUuKo% z*zkGa0mUZxVTN_2jK%%pQ=3#L&`EgLi;lQJY%A~X2_SPaia}n939W@8jl0sv&=(M5 zjOo}mA#sud$UH3S=BB-3!Cn7K>z(XWj}O+tfbi$ t8ApSdC3beON(^y#XLbhbpt*zVefi?859B*arTVX(=T&O$mv4T2=3i>`VR!%l diff --git a/lispusers/GITFNS b/lispusers/GITFNS index 035519af..1ce3bdc3 100644 --- a/lispusers/GITFNS +++ b/lispusers/GITFNS @@ -1,12 +1,14 @@ (DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8) -(FILECREATED "16-Mar-2026 12:05:55" {WMEDLEY}GITFNS.;578 134065 +(FILECREATED "29-Apr-2026 12:51:53" {MEDLEY}GITFNS.;592 137200 :EDIT-BY rmk - :CHANGES-TO (FNS GIT-BRANCH-WHENSELECTEDFN PRC-COMMAND) + :CHANGES-TO (FNS GIT-GWC-COMMAND) + (COMMANDS gwc) + (VARS GITFNSCOMS) - :PREVIOUS-DATE " 2-Mar-2026 14:00:13" {WMEDLEY}GITFNS.;576) + :PREVIOUS-DATE "29-Apr-2026 09:00:33" {MEDLEY}GITFNS.;588) (PRETTYCOMPRINT GITFNSCOMS) @@ -51,7 +53,7 @@ (INITVARS (GIT-MERGE-COMPARES T) (GIT-CDBROWSER-SEPARATE-DIRECTIONS T)) (COMMANDS gwc bbc prc cob b? cdg cdw) - (FNS PRC-COMMAND) + (FNS PRC-COMMAND GIT-GWC-COMMAND) (* ;; "") @@ -60,7 +62,7 @@ (FNS ALLSUBDIRS MEDLEYSUBDIRS GITSUBDIRS) (FNS TOGIT FROMGIT) - (FNS MYMEDLEYSUBDIR GITSUBDIR STRIPDIR STRIPHOST STRIPNAME STRIPWHERE) + (FNS WORKINGSUBDIR GITSUBDIR STRIPDIR STRIPHOST STRIPNAME STRIPWHERE) (FNS GFILE4MFILE MFILE4GFILE GIT-REPO-FILENAME) (* ;; "") @@ -169,6 +171,9 @@ (GIT-MAKE-PROJECT [LAMBDA (PROJECTNAME CLONEPATH WORKINGPATH EXCLUSIONS DEFAULTSUBDIRS) + (* ; "Edited 29-Apr-2026 09:00 by rmk") + (* ; "Edited 17-Apr-2026 12:33 by rmk") + (* ; "Edited 15-Apr-2026 16:33 by rmk") (* ; "Edited 25-Feb-2026 23:25 by rmk") (* ; "Edited 25-Oct-2025 16:53 by rmk") (* ; "Edited 22-Oct-2025 12:45 by rmk") @@ -275,7 +280,8 @@ "for " PROJECTNAME] (SETQ PROJECT (create GIT-PROJECT PROJECTNAME ← PROJECTNAME - GITHOST ← (PACK* "{" (PSEUDOHOST PROJECTNAME CLONEPATH) + GITHOST ← (PACK* "{" (PSEUDOHOST (CONCAT "G" PROJECTNAME) + CLONEPATH) "}") WHOST ← (AND WORKINGPATH (PACK* "{" (PSEUDOHOST (CONCAT "W" PROJECTNAME) @@ -439,18 +445,7 @@ (RPAQ? GIT-CDBROWSER-SEPARATE-DIRECTIONS T) -(DEFCOMMAND gwc (SUBDIR . OTHERS) - - (* ;; "Compares the specified local git-medley subdirectories against my working Medley. The SUBDIRS are the arguments up to one that looks like a project") - - (LET ((SUBDIRS (AND SUBDIR (CONS SUBDIR OTHERS))) - PROJECT) - (SETQ SUBDIRS (FOR STAIL ON SUBDIRS COLLECT (IF (GIT-GET-PROJECT (CAR STAIL) - NIL T) - THEN (SETQ PROJECT (CAR STAIL)) - (GO $$OUT)) - (CAR STAIL))) - (GIT-WORKING-COMPARE-DIRECTORIES SUBDIRS NIL NIL NIL T PROJECT))) +(DEFCOMMAND gwc (SUBDIR . OTHERS) (GIT-GWC-COMMAND SUBDIR OTHERS)) (DEFCOMMAND bbc (BRANCH1 BRANCH2 LOCAL PROJECT) @@ -616,6 +611,32 @@ PROJECT)) else (CONCAT "No open " (OR REMOTEBRANCH "") " pull requests"]) + +(GIT-GWC-COMMAND + [LAMBDA (SUBDIR OTHERS) (* ; "Edited 29-Apr-2026 12:51 by rmk") + + (* ;; "Compares the specified local git-medley subdirectories against my working Medley. The SUBDIRS are the arguments up to one that looks like a project, which may be followed by - and some excluded files") + + (LET ((SUBDIRS (AND SUBDIR (CONS SUBDIR OTHERS))) + EXCLUDEDFILES PROJECT) + (SETQ SUBDIRS (for STAIL on SUBDIRS unless (CL:WHEN (AND (NULL PROJECT) + (SETQ PROJECT (GIT-GET-PROJECT + (CAR STAIL) + NIL T))) + (CL:UNLESS (EQ '- (CADR STAIL)) + (RETURN $$VAL)) + T) collect (CL:WHEN (EQ '- (CAR STAIL)) + (SETQ EXCLUDEDFILES + (CDR STAIL)) + (RETURN $$VAL)) + (CAR STAIL))) + (CL:UNLESS PROJECT + (SETQ PROJECT (GIT-GET-PROJECT PROJECT))) + (if (AND (fetch GITHOST of PROJECT) + (fetch WHOST of PROJECT)) + then (GIT-WORKING-COMPARE-DIRECTORIES SUBDIRS NIL EXCLUDEDFILES NIL T PROJECT) + else (PRINTOUT T "gwc requires " (fetch PROJECTNAME of PROJECT) + " to have both git and working directories" T T]) ) @@ -727,7 +748,7 @@ ) (DEFINEQ -(MYMEDLEYSUBDIR +(WORKINGSUBDIR [LAMBDA (SUBDIR STAR PROJECT) (* ; "Edited 13-May-2022 10:40 by rmk") (* ; "Edited 7-May-2022 23:15 by rmk") (UNSLASHIT (PACK* (PACKFILENAME 'HOST (FETCH WHOST OF PROJECT) @@ -1398,13 +1419,12 @@ " branches"]) (GIT-BRANCH-MENU - [LAMBDA (BRANCHES TITLE PIN?) (* ; "Edited 1-May-2024 14:36 by rmk") + [LAMBDA (BRANCHES TITLE) (* ; "Edited 18-Apr-2026 21:36 by rmk") + (* ; "Edited 1-May-2024 14:36 by rmk") (* ; "Edited 6-Jul-2023 22:31 by rmk") (* ; "Edited 30-Jun-2023 16:58 by rmk") (* ; "Edited 18-May-2022 13:44 by rmk") (CL:WHEN (SETQ BRANCHES (MKLIST BRANCHES)) - (CL:WHEN PIN? - [SETQ BRANCHES (APPEND BRANCHES '((" Pin menu" 'PinMenu]) (create MENU TITLE ← (OR TITLE (CONCAT (LENGTH BRANCHES) " branches")) @@ -1950,6 +1970,8 @@ (GIT-WORKING-COMPARE-DIRECTORIES [LAMBDA (SUBDIRS SELECT EXCLUDEDFILES FIXDIRECTORYDATES UPDATE PROJECT) + (* ;; "Edited 29-Apr-2026 08:46 by rmk") + (* ;; "Edited 28-Oct-2025 14:00 by rmk") (* ;; "Edited 25-Oct-2025 23:32 by rmk") @@ -1960,18 +1982,12 @@ (* ;; "Edited 26-Sep-2023 22:41 by rmk") - (* ;; "Edited 17-Jun-2023 22:54 by rmk") - - (* ;; "Edited 10-Jun-2023 21:32 by rmk") - (* ;; "Edited 20-Jul-2022 21:18 by rmk") (* ;; "Edited 25-Jun-2022 21:37 by rmk") (* ;; "Edited 17-May-2022 17:39 by rmk") - (* ;; "Edited 10-May-2022 10:41 by rmk") - (* ;;  "Edited 29-Mar-2022 13:58 by rmk: working medley subdirectories with the current local git branch.") @@ -1991,7 +2007,8 @@ (LET ((SUBDIRSTRING (if (EQ SUBDIRS 'all) then (SETQ SUBDIRS (ALLSUBDIRS PROJECT)) "ALL subdirectories" - else SUBDIRS))) + else SUBDIRS)) + (EXCLUSIONS)) (for SUBDIR TITLE CDVAL (WPROJ ← (CONCAT "Working " (L-CASE (fetch PROJECTNAME of PROJECT) T))) (NENTRIES ← 0) @@ -1999,11 +2016,12 @@ first (PRINTOUT T "Comparing " SUBDIRSTRING 6 " of " WPROJ " and Git " BRANCH2 T) (BKSYSBUF " ") inside SUBDIRS collect (TERPRI T) - (SETQ CDVAL (COMPAREDIRECTORIES (MYMEDLEYSUBDIR SUBDIR T PROJECT) + (SETQ CDVAL (COMPAREDIRECTORIES (WORKINGSUBDIR SUBDIR T PROJECT) (GITSUBDIR SUBDIR T PROJECT) (OR SELECT '(> < ~= -* *-)) '(*.* *>*.* .* *>.*) - (for E DPOS in (GIT-GET-PROJECT PROJECT 'EXCLUSIONS) + (for E DPOS in (APPEND (MKLIST EXCLUDEDFILES) + (GIT-GET-PROJECT PROJECT 'EXCLUSIONS)) collect (SETQ DPOS (STRPOS SUBDIR (FILENAMEFIELD E 'DIRECTORY) 1 NIL T T FILEDIRCASEARRAY)) @@ -2216,7 +2234,7 @@ (OR LABEL2 FILE2]) (GIT-CD-MENUFN - [LAMBDA (TBITEM MENUITEM CDBROWSER KEY) (* ; "Edited 28-Oct-2025 11:50 by rmk") + [LAMBDA (TBITEM MENUITEM CDBROWSER KEY) (* ; "Edited 28-Oct-2025 11:30 by rmk") (* ; "Edited 25-Oct-2025 23:44 by rmk") (* ; "Edited 21-Sep-2022 21:34 by rmk") (* ; "Edited 22-May-2022 19:13 by rmk") @@ -2225,9 +2243,32 @@ (* ;; "MENUITEM is of the form (display-atom . extrainfo). The selector for the selectq is either the CAR of the extrainfo or the display atom") - (DECLARE (USEDFREE FILE1 FILE2 LABEL2 TYPE CDENTRY USERDATA PWINDOW)) + (DECLARE (USEDFREE FILE1 FILE2 LABEL2 TYPE CDENTRY USERDATA)) (SELECTQ (OR (CADDR MENUITEM) (CAR MENUITEM)) + (Delete% -> (FLASHWINDOW PWINDOW) + (GIVE.TTY.PROCESS PWINDOW) + (CL:WHEN [OR (EQ KEY 'MIDDLE) + (EQ 'Y (ASKUSER NIL 'N (CONCAT "Delete " LABEL2 " ? "] + (CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'RIGHT NIL T))) + (|Delete ALL <-| + (FLASHWINDOW PWINDOW) + (GIVE.TTY.PROCESS PWINDOW) + (if (NAMEFIELD LABEL1 T) + then (CL:WHEN [OR (EQ KEY 'MIDDLE) + (EQ 'Y (ASKUSER NIL 'N (CONCAT "Delete ALL versions of " + (NAMEFIELD LABEL1 T) + " ? "] + (CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'LEFT NIL T)) + else (PRINTOUT T "Nothing to delete"))) + (Delete% BOTH (FLASHWINDOW PWINDOW) + (GIVE.TTY.PROCESS PWINDOW) + (CL:WHEN (EQ 'Y (ASKUSER NIL 'N (CONCAT + "Delete all Medley and git versions of " + (NAMEFIELD LABEL1 T) + " ? "))) + (CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'LEFT NIL T) + (CDBROWSER-DELETE-FILE CDBROWSER TBITEM 'RIGHT NIL T T))) (Copy% -> (CDBROWSER-COPY CDBROWSER TBITEM 'LEFT (CADDDR MENUITEM))) (SHOULDNT]) @@ -2429,33 +2470,33 @@ (PUTPROPS GITFNS FILETYPE :TCOMPL) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4197 21075 (GIT-CLONEP 4207 . 5638) (GIT-INIT 5640 . 6270) (GIT-MAKE-PROJECT 6272 . -14129) (GIT-GET-PROJECT 14131 . 16056) (GIT-PUT-PROJECT-FIELD 16058 . 17699) (GIT-PROJECT-PATH 17701 - . 18745) (FIND-ANCESTOR-DIRECTORY 18747 . 19098) (GIT-FIND-CLONE 19100 . 20183) (GIT-MAINBRANCH 20185 - . 20580) (GIT-MAINBRANCH? 20582 . 21073)) (26538 31832 (PRC-COMMAND 26548 . 31830)) (31888 34676 ( -ALLSUBDIRS 31898 . 33184) (MEDLEYSUBDIRS 33186 . 33879) (GITSUBDIRS 33881 . 34674)) (34677 37082 ( -TOGIT 34687 . 36095) (FROMGIT 36097 . 37080)) (37083 40093 (MYMEDLEYSUBDIR 37093 . 37549) (GITSUBDIR -37551 . 37994) (STRIPDIR 37996 . 38374) (STRIPHOST 38376 . 38616) (STRIPNAME 38618 . 39371) ( -STRIPWHERE 39373 . 40091)) (40094 42329 (GFILE4MFILE 40104 . 40800) (MFILE4GFILE 40802 . 41371) ( -GIT-REPO-FILENAME 41373 . 42327)) (42378 52635 (GIT-COMMIT 42388 . 43214) (GIT-PUSH 43216 . 43976) ( -GIT-PULL 43978 . 44730) (GIT-APPROVAL 44732 . 45081) (GIT-GET-FILE 45083 . 46998) (GIT-FILE-EXISTS? -47000 . 47274) (GIT-REMOTE-UPDATE 47276 . 48111) (GIT-REMOTE-ADD 48113 . 48420) (GIT-FILE-DATE 48422 - . 49469) (GIT-FILE-HISTORY 49471 . 51405) (GIT-PRINT-FILE-HISTORY 51407 . 52459) (GIT-FETCH 52461 . -52633)) (52665 64617 (GIT-BRANCH-DIFF 52675 . 59564) (GIT-COMMIT-DIFFS 59566 . 60457) ( -GIT-BRANCH-RELATIONS 60459 . 64143) (GIT-MODIFIED 64145 . 64615)) (64662 83597 (GIT-BRANCH-NUM 64672 - . 65245) (GIT-CHECKOUT 65247 . 66533) (GIT-WHICH-BRANCH 66535 . 66942) (GIT-MAKE-BRANCH 66944 . 69523 -) (GIT-BRANCHES 69525 . 72122) (GIT-BRANCH-EXISTS? 72124 . 72995) (GIT-PICK-BRANCH 72997 . 73487) ( -GIT-BRANCH-MENU 73489 . 74378) (GIT-BRANCH-WHENSELECTEDFN 74380 . 76087) (GIT-PULL-REQUESTS 76089 . -79974) (GIT-SHORT-BRANCH-NAME 79976 . 80267) (GIT-LONG-NAME 80269 . 80586) (GIT-PRC-BRANCHES 80588 . -83595)) (83627 88381 (GIT-MY-CURRENT-BRANCH 83637 . 84007) (GIT-MY-BRANCHP 84009 . 84627) ( -GIT-MY-NEXT-BRANCH 84629 . 86429) (GIT-MY-BRANCHES 86431 . 88379)) (88427 92511 (GIT-ADD-WORKTREE -88437 . 90044) (GIT-REMOVE-WORKTREE 90046 . 90978) (GIT-LIST-WORKTREES 90980 . 91791) (WORKTREEDIR -91793 . 92509)) (92559 125597 (GIT-GET-DIFFERENT-FILES 92569 . 99477) ( -GIT-BRANCHES-COMPARE-DIRECTORIES 99479 . 107118) (GIT-WORKING-COMPARE-DIRECTORIES 107120 . 112922) ( -GIT-COMPARE-WORKTREE 112924 . 116902) (GITCDOBJBUTTONFN 116904 . 121402) (GIT-CD-LABELFN 121404 . -122490) (GIT-CD-MENUFN 122492 . 123578) (GIT-WORKING-COMPARE-FILES 123580 . 124200) ( -GIT-BRANCHES-COMPARE-FILES 124202 . 125366) (GIT-PR-COMPARE 125368 . 125595)) (125667 133998 (CDGITDIR - 125677 . 126364) (GIT-COMMAND 126366 . 127924) (GITORIGIN 127926 . 128623) (GIT-INITIALS 128625 . -128929) (GIT-COMMAND-TO-FILE 128931 . 132416) (GIT-RESULT-TO-LINES 132418 . 133331) (STRIPLOCAL 133333 - . 133996))))) + (FILEMAP (NIL (4257 21537 (GIT-CLONEP 4267 . 5698) (GIT-INIT 5700 . 6330) (GIT-MAKE-PROJECT 6332 . +14591) (GIT-GET-PROJECT 14593 . 16518) (GIT-PUT-PROJECT-FIELD 16520 . 18161) (GIT-PROJECT-PATH 18163 + . 19207) (FIND-ANCESTOR-DIRECTORY 19209 . 19560) (GIT-FIND-CLONE 19562 . 20645) (GIT-MAINBRANCH 20647 + . 21042) (GIT-MAINBRANCH? 21044 . 21535)) (26309 33483 (PRC-COMMAND 26319 . 31601) (GIT-GWC-COMMAND +31603 . 33481)) (33539 36327 (ALLSUBDIRS 33549 . 34835) (MEDLEYSUBDIRS 34837 . 35530) (GITSUBDIRS +35532 . 36325)) (36328 38733 (TOGIT 36338 . 37746) (FROMGIT 37748 . 38731)) (38734 41743 ( +WORKINGSUBDIR 38744 . 39199) (GITSUBDIR 39201 . 39644) (STRIPDIR 39646 . 40024) (STRIPHOST 40026 . +40266) (STRIPNAME 40268 . 41021) (STRIPWHERE 41023 . 41741)) (41744 43979 (GFILE4MFILE 41754 . 42450) +(MFILE4GFILE 42452 . 43021) (GIT-REPO-FILENAME 43023 . 43977)) (44028 54285 (GIT-COMMIT 44038 . 44864) + (GIT-PUSH 44866 . 45626) (GIT-PULL 45628 . 46380) (GIT-APPROVAL 46382 . 46731) (GIT-GET-FILE 46733 . +48648) (GIT-FILE-EXISTS? 48650 . 48924) (GIT-REMOTE-UPDATE 48926 . 49761) (GIT-REMOTE-ADD 49763 . +50070) (GIT-FILE-DATE 50072 . 51119) (GIT-FILE-HISTORY 51121 . 53055) (GIT-PRINT-FILE-HISTORY 53057 . +54109) (GIT-FETCH 54111 . 54283)) (54315 66267 (GIT-BRANCH-DIFF 54325 . 61214) (GIT-COMMIT-DIFFS 61216 + . 62107) (GIT-BRANCH-RELATIONS 62109 . 65793) (GIT-MODIFIED 65795 . 66265)) (66312 85259 ( +GIT-BRANCH-NUM 66322 . 66895) (GIT-CHECKOUT 66897 . 68183) (GIT-WHICH-BRANCH 68185 . 68592) ( +GIT-MAKE-BRANCH 68594 . 71173) (GIT-BRANCHES 71175 . 73772) (GIT-BRANCH-EXISTS? 73774 . 74645) ( +GIT-PICK-BRANCH 74647 . 75137) (GIT-BRANCH-MENU 75139 . 76040) (GIT-BRANCH-WHENSELECTEDFN 76042 . +77749) (GIT-PULL-REQUESTS 77751 . 81636) (GIT-SHORT-BRANCH-NAME 81638 . 81929) (GIT-LONG-NAME 81931 . +82248) (GIT-PRC-BRANCHES 82250 . 85257)) (85289 90043 (GIT-MY-CURRENT-BRANCH 85299 . 85669) ( +GIT-MY-BRANCHP 85671 . 86289) (GIT-MY-NEXT-BRANCH 86291 . 88091) (GIT-MY-BRANCHES 88093 . 90041)) ( +90089 94173 (GIT-ADD-WORKTREE 90099 . 91706) (GIT-REMOVE-WORKTREE 91708 . 92640) (GIT-LIST-WORKTREES +92642 . 93453) (WORKTREEDIR 93455 . 94171)) (94221 128732 (GIT-GET-DIFFERENT-FILES 94231 . 101139) ( +GIT-BRANCHES-COMPARE-DIRECTORIES 101141 . 108780) (GIT-WORKING-COMPARE-DIRECTORIES 108782 . 114597) ( +GIT-COMPARE-WORKTREE 114599 . 118577) (GITCDOBJBUTTONFN 118579 . 123077) (GIT-CD-LABELFN 123079 . +124165) (GIT-CD-MENUFN 124167 . 126713) (GIT-WORKING-COMPARE-FILES 126715 . 127335) ( +GIT-BRANCHES-COMPARE-FILES 127337 . 128501) (GIT-PR-COMPARE 128503 . 128730)) (128802 137133 (CDGITDIR + 128812 . 129499) (GIT-COMMAND 129501 . 131059) (GITORIGIN 131061 . 131758) (GIT-INITIALS 131760 . +132064) (GIT-COMMAND-TO-FILE 132066 . 135551) (GIT-RESULT-TO-LINES 135553 . 136466) (STRIPLOCAL 136468 + . 137131))))) STOP diff --git a/lispusers/GITFNS.LCOM b/lispusers/GITFNS.LCOM index 03bd1bb96b43d7758cc49cc24c0dd2a09482ead6..fa32aa44b07d6d19f098becb43bf5d3de3a601b4 100644 GIT binary patch delta 3871 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 delta 2914 zcmZt|YiwIr+1GB@#8sla2$|ctpKjC0u4?!Caj%_p>T+XWCr+;KaqR0xQM*}g?8GJy z2Rj8yJKRO1ttL%lx)S_A(;jFH0h5}Uh~>qdkPrxdOqvkdKg18j4-hItgMSs@Irfc* zv@6-?obP<^=h^##<7clqzPIcNNWN5|<_iiz2?D_hL7WgJ9z6U~b$zq4Rw_bu19-Tz z@cOG~{E?^^oO~eIp%8?LKwv@$@K7rqQ$f+vw?oj#tejbX2 zE#&@X>;eMsb$Sv>Rf%O3Sy$q~e~Ff2TdVF!6at~JAc;nW8#S&S3`^-u%oii6l&rD8I6CngwtoHRl5ucygzf)y z@_p{N#>-Frhx=Xg&Z!v3eb+F%cy7}8N7riZw#^d}B#03$ChH)Lhv9N2t;(@DNMaDu za%}D*NMYP%m0X<6kSrpFI{1Nzg(Kk3!fF1p`<&x~5J0_oq>cdpBCa6;_yt^pBJg)` z4FnP1boAK!ntyeFeyS_Am{Q`Zve^8~*l>6rMJBc9APE7`le((lPJpS5ti@)OEF>TZ zaU~(=R6Rj7-3zvF+c}$Kvgr6x@%6InrtKFSQ*TUGZTLCq-%XoooV)JjGDhmUm_WRvv<{IdO%*j1gu5pk z6iHu9E9dVbEl`8uX05QXR4&zd2#kZr!vp)$m|E+lja!(k^ErZ%ML-JAUi_TK(REjI z^hRj3Awf1b6;Ea$4d|_w{kRQ7EPhQ^DKzi}3<1H&i3*CRNtW)SzyS27MKFHMCEB43 zwH=DSMt^FGre~7q+;kT@eF5#9HU4>Tbyk4sr0z>8nQ4V4Xj;y&0E7ZSvmLdJ$yr6t zWaLE*3;IKqv$}7g6-ytJpKB3>j2j>EC%xd9cN@QdX$=ErM7Q0X(^%NP$R&-ppB}tE zS7G5YE8R3|CJSI|tM0l}Mf*EDT*6#<7MH6j20!W-dM0-`-tn%Q?=#EyRSp-`e%NL} z`YOt4%8K+EkGF>!$_hO&8U6Evx2n;j#RPi5xy9t^sBgCVy(OKjL^#J}qv zOf5}Xj-D;9K7MD%_Bk_o$M%`y$Hboxo8^bZ&*4h^_PpOrGMRJipM+bBU}qxOp{I-a zCukCZ1e0?v#w^)dTBnAMgk21m-6^iJi+&4J?8yE)w`@13R9O7pWv6>B{GO+%AhWGQ zE1JSHM0oUck>m1`NuuZt3B56~O{B4WlzQWDWMaTCZ$z=If&n%{r;@n9d02rnkh2^kA+_k_$DdvBZ#$Z?MI_j)RlkNZcqh6> zRdgKO79$V7%dBkoVCiP91JP%cOcv+2RToH_RrL8|6+8)&!OE4BDiG}$y6%h-6(5Tz zBbfjX^`2Fw3>cH!L|)L45;F?rXl>S31$sJID0P~^=qTm^s?xb|Qq4TZ<$K_^OriX& OpMI=$^Vc8!*ZDs_u=Lvi diff --git a/lispusers/GITFNS.TEDIT b/lispusers/GITFNS.TEDIT index 0aa747b426239c9b51923c5ceddf09df726eb5b1..86b5f8c15fe6501b1331756701423003cdee11bc 100644 GIT binary patch delta 4209 zcmZu!OKcle6rFKN2~9$1V+Wi9b)u-XNoz<1g(ju8u^q>#c8cuy_?G|J+gHA>sSAM=x{E7D!2L0#_r{dn-{mXcQ@bs=B0(LaO#aqx$W2E zhHF2boEUpJIM`aR)jRFrko)CK&vlmqF05 zD?3NR0RK|{e-IS03|;f=?8pJX=(sQInNuJfguz3>&sfBeKMkRXyIM;3R{)Lp4>ZZP z0CyN5!S52t{f5BlF8}2m00j4vDK3~N5GGGiZ$UIfZ4pkGm<+gM{zI8LEMmoogSh0R z-0iiQJ_6tAk)-`Nh|q||8}-0AEQp7kXr93$k#R(GW_ z(;tSF-XYi#=~)u}LkJ@z5{@NtH=N+Thed)5OWG`Tb&83A3_Bk}*c-s7VZt}nd6LLy zrOYIw?gw*wjdY)50vX1G0;Q~G)LVc6ENn9@Y|j63wEJ910}!oCT0`bPai!t%xNoFEv-ac;9pw5^s!f9+5hHZy>&$m9N?srRO;s zMIjsyB%$G)fb3EEz84GZzvN+ezn4bxa6>xKP{tWxuxPI`-XX)2%cx+V0SPBeh;{M- zSb$mr;jAGHhsUFanA0)6Q&!AZ*J)Ej)A+*976$7f>M6VqpbEmEa3hW79eW_7##>c{aExxj}WFH+}9Jx zw}x1Knh@KXplTFEU=~VQ)A&)uaUayvTc)H-RLwkLN=d|=bk7)|0YmIKQlB+9ZKMWY(kfU&G{q9qnU`0z0gxY5s-cEV zi@oK@K}XTmN+B9G?iC(u{u8w`QVu8aJNp=P#8EIsch9V5_*Ry(S_V(L&SQaZ8rilX zYO88jH)f3^FLgtl9ddB;Eg^A~vpUZO;On3xpTk%H`4Ed3QZdAYsRxP*EgMBsr)yJ( zp1*J5Wiq-=03ah8@hJOGG*po#^(%m3-#-k{z(&=ge(oo7WP0!tNe!SDI6_zy9#JEQ zz4V*d5-oZw(~+=UGX4FZWSs;_!>HG@5WOq856Di}xdv9q*@QA*aq#NvNV7sz$6zr< zMrGlH@jhXKwl(@8p{~pgQ-JC<2p<3?FgX9}iUWkuygfmhF+{@3bJa}xLrA7raAg0n zaV0$1N5B7qvI!D{QZ*_(rQTZMf0>W|MES`Oqx?-EpU?N|wPvq)zS8X#SDWoxvD@o3 z&$S!5Vs7rWw>RbrxqNl4(y6zr>$N7~R<+tK6bctQ>leCcU#(W@)t7f}TrT_9!>6f{ HcfbD+>-V3* delta 4019 zcmZXX-D@3H6vbzf+?beHTg`2At2IeU+QyXFrheW;lbD=>0SWwVg zA4LUW9t8Ehua^3tKIv&vsyZB)5&MWUNoXM~JarnRS;zIjq(QF?Xy(b$! zezLQ9>O`^KUMiky&lQ*2KjnkP#pT&_z1nyEd->dLgBkw@(qEPxWjR>9wlcFllx6uT z-E!&K#{(E@HRR7g!YLO}{Ib$I+aC+>48U67)Q~#^L2ESKJOY4c1BAt*kmARU ziM&yK*=ZKPZ49kZOGex=S<_`di%K+e(3O;tM)CeybI(l)He}KPf}9yiHZ_AFDVI`v zFAI`V$+{$kijEU{4lW5zv5*tWin<2~o7p+G`HIrbknnqk1#BZ@R&xG3Ai;hU+Z^-> zAQr9-yAaT9sMua@F5VxQb2%J{=v-Xx4#e4k$vYrn)9yl0xFI%baz2de97a_vW5-Rr z9TrCC=W1fKEObkiOO);c7%6z8#Hv(GM^*8yEFc>Z+126YGF6j$l(v@}tt-OgdX|8Y zkgE$*EKHt!#wk5_`_^02;P-KhpP6pK2pv97-yrH@+g*XUn4N)`qg}++$W-jvv9(~! zjrhtPwm1Jka7uqhq^pgB<(8>bC72q-u00WM+6!bK2qgB>nee^Yh+0N)50@4omVA~BKs*B43=nt9I-u&q3=8gteQc4jAWOR<3(16=6H-(Vd(~R( zv9*jQO40S&sPxLCKqLFICxM5sMb=Xn>mm}yQiMw*$C|^ zJ`srf?&i2ociCQUmpR>YAru*!<08B@T5!1(PPs!vI;-VY7-X)tGFu<*|ULe>S~rB z4ENYPe^t0E`}--NhXB;QBmuArz`_L=f#_(2>u@m*#8LVte@U&zj}K3({xV1KG1mQ+y4P% C5}0-X From 6159c64b84836bd3c9986576d42428b3f04fb3f1 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Wed, 6 May 2026 11:55:34 -0700 Subject: [PATCH 3/3] man [filename] just opens the corresponding documentation file (#2572) * man [filename] just opens the corresponding documentation file * When a particular ENTRY is provided and found in the file, scroll its first occurrence to the top --- lispusers/HELPSYS | 53 ++++++++++++++++++++++------------------- lispusers/HELPSYS.LCOM | Bin 62554 -> 62282 bytes 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/lispusers/HELPSYS b/lispusers/HELPSYS index 748a9348..12cde91a 100644 --- a/lispusers/HELPSYS +++ b/lispusers/HELPSYS @@ -1,13 +1,12 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) +(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10) -(FILECREATED "27-Jan-2026 13:21:10" {WMEDLEY}HELPSYS.;21 88654 +(FILECREATED "20-Apr-2026 08:07:50" {MEDLEY}HELPSYS.;24 89018 :EDIT-BY rmk - :CHANGES-TO (FNS DOCS.LOOKUP GENERIC.MAN.LOOKUP) - (VARS HELPSYSCOMS) + :CHANGES-TO (FNS REPO.LOOKUP) - :PREVIOUS-DATE " 5-May-2025 22:04:32" {WMEDLEY}HELPSYS.;15) + :PREVIOUS-DATE "27-Jan-2026 13:21:10" {MEDLEY}HELPSYS.;21) (PRETTYCOMPRINT HELPSYSCOMS) @@ -340,21 +339,27 @@ else "git web--browse"]) (REPO.LOOKUP - [LAMBDA (ENTRY TYPES) (* ; "Edited 13-Jan-2023 10:46 by lmm") + [LAMBDA (ENTRY TYPES) (* ; "Edited 20-Apr-2026 08:06 by rmk") + (* ; "Edited 13-Jan-2023 10:46 by lmm") (* ; "Edited 16-Aug-2022 16:26 by lmm") - (for FL in (UNION (WHEREIS ENTRY (OR TYPES HELPSYS.REPO.TYPES) - T) - (LIST ENTRY)) bind POS FND + (for FL POS FND TSTREAM in (UNION (WHEREIS ENTRY (OR TYPES HELPSYS.REPO.TYPES) + T) + (LIST ENTRY)) when [SETQ FND (OR (FINDFILE-WITH-EXTENSIONS FL NIL '(TEDIT TXT TED)) (AND (SETQ POS (STRPOS "-" FL)) (FINDFILE-WITH-EXTENSIONS (SUBSTRING FL 1 (CL:1- POS)) NIL '(TEDIT TXT TTY TED] - join (CL:WITH-OPEN-FILE (STR (PATHNAME FND) - :DIRECTION :INPUT) - (CL:WHEN (SETQ POS (FFILEPOS ENTRY STR)) - (TEDIT-SEE STR NIL NIL (CL:FORMAT NIL "~a [~a]" FL ENTRY)) - (LIST FL))]) + collect (SETQ TSTREAM (OPENTEXTSTREAM FND)) + [TEDIT TSTREAM NIL NIL `(READONLY T LEAVETTY T FONT ,DEFAULTFONT TITLE + ,(CL:IF (EQ FL ENTRY) + FL + (CONCAT ENTRY " on " FL))] + (CL:UNLESS (EQ FL ENTRY) + (CL:WHEN (SETQ POS (TEDIT.FIND TSTREAM ENTRY)) + (TEDIT.SETSEL TSTREAM POS (NCHARS ENTRY)) + (TEDIT.NORMALIZECARET TSTREAM))) + FL]) ) (RPAQQ CLHS.INDEX @@ -1716,14 +1721,14 @@ (PUTPROPS HELPSYS FILETYPE :FAKE-COMPILE-FILE) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4640 10992 (HELPSYS 4650 . 6491) (IRM.LOOKUP 6493 . 8131) (GENERIC.MAN.LOOKUP 8133 . -10001) (IRM.SMART.LOOKUP 10003 . 10159) (IRM.RESET 10161 . 10570) (DOCS.LOOKUP 10572 . 10990)) (11249 -18568 (CLHS.INDEX 11259 . 14223) (CLHS.LOOKUP 14225 . 16231) (CLHS.OPENER 16233 . 17556) (REPO.LOOKUP -17558 . 18566)) (71663 73181 (IRM.GET.DINFOGRAPH 71673 . 72548) (IRM.DISPLAY.REF 72550 . 73179)) ( -73183 73545 (IRM.LOAD-GRAPH 73183 . 73545)) (73870 79374 (IRM.DISPLAY.CREF 73880 . 75594) ( -IRM.CREF.BOX 75596 . 76423) (IRM.PUT.CREF 76425 . 76650) (IRM.GET.CREF 76652 . 77023) ( -IRM.CREF.BUTTONEVENTFN 77025 . 79372)) (79929 88235 (\IRM.GET.REF 79939 . 81270) (\IRM.SMART.REF 81272 - . 83199) (\IRM.CHOOSE.REF 83201 . 84452) (\IRM.WILD.REF 84454 . 85709) (\IRM.WILDCARD 85711 . 86077) -(\IRM.WILD.MATCH 86079 . 87309) (\IRM.GET.HASHFILE 87311 . 87774) (\IRM.GET.KEYWORDS 87776 . 88233)) ( -88372 88528 (\IRM.AROUND-EXIT 88372 . 88528))))) + (FILEMAP (NIL (4582 10934 (HELPSYS 4592 . 6433) (IRM.LOOKUP 6435 . 8073) (GENERIC.MAN.LOOKUP 8075 . +9943) (IRM.SMART.LOOKUP 9945 . 10101) (IRM.RESET 10103 . 10512) (DOCS.LOOKUP 10514 . 10932)) (11191 +18932 (CLHS.INDEX 11201 . 14165) (CLHS.LOOKUP 14167 . 16173) (CLHS.OPENER 16175 . 17498) (REPO.LOOKUP +17500 . 18930)) (72027 73545 (IRM.GET.DINFOGRAPH 72037 . 72912) (IRM.DISPLAY.REF 72914 . 73543)) ( +73547 73909 (IRM.LOAD-GRAPH 73547 . 73909)) (74234 79738 (IRM.DISPLAY.CREF 74244 . 75958) ( +IRM.CREF.BOX 75960 . 76787) (IRM.PUT.CREF 76789 . 77014) (IRM.GET.CREF 77016 . 77387) ( +IRM.CREF.BUTTONEVENTFN 77389 . 79736)) (80293 88599 (\IRM.GET.REF 80303 . 81634) (\IRM.SMART.REF 81636 + . 83563) (\IRM.CHOOSE.REF 83565 . 84816) (\IRM.WILD.REF 84818 . 86073) (\IRM.WILDCARD 86075 . 86441) +(\IRM.WILD.MATCH 86443 . 87673) (\IRM.GET.HASHFILE 87675 . 88138) (\IRM.GET.KEYWORDS 88140 . 88597)) ( +88736 88892 (\IRM.AROUND-EXIT 88736 . 88892))))) STOP diff --git a/lispusers/HELPSYS.LCOM b/lispusers/HELPSYS.LCOM index 8307d3e27d4f6840c07ff024eff872ac8e4b5059..951eccb28d4dc1bdd6d2098f6f4906df5dad8101 100644 GIT binary patch delta 846 zcmZ8fzf%)I6b6EWL`6F!FwUDBk_p9Sb}zp!*O23Gj~vQpFm>@wMcJaXQP#kqaB^4zPrc}*<$zYzHh(%_Py`x&%~!6iN&nV9M@y2<8r3D zo+H5UO{;D$Gf-SlvVgmxuYeIS)0XBEzjS=OIFli&d2py|L@NQ&4N^9WM1idGXn*%$ z`|0C0?C*gBN5`GHPGJF(3N2mWDK%)tC>9k^EYa{I4Uv$x0^4}WX>tz3@LVpZKzs8! zl3u3Kh(YqoLNXiOw@|HQHYnPE+9uD%MPlw2K(7$0gTZW9s!J_6+}#1gs+rz03sor~ z>v&-j0_KYx7oy(u7qB(~TXjV9qUn zwmlXFCuFu39~{lzoJfOV>&dJSWsspnxef541deCpS_EH&xE5Z`r^dcrJ(-)I?L3>P zC3@rTt}8F)8`*odN=A@srC1@ zv9&jU+F<#&trP+K;>w&Sf`-Z6b!M3XlR$N>L!1bi3>kJ^*TBPG1R>Be0hy1J z=u{hMu`s{_EfBDTXPFWz6ok*vuWRS!#DXuTQzx19%7&(abR}As(lVgm%_f(Q@bFox z!5|(74yignCW delta 973 zcmZvb&ui2`6vsEa?bfbBYe8zeQXXN2ERrRY{n>z)Y%=L)n@y%kc6DtPmae#^wiWRr zLVM`dgC#dT`5zS93Z8oR;LVGFfcR(lW~#6hbC@?T^L~9llYIM?`T0AuqS(}NeX2UH zM^)E%0$5_EwPvnTkX=8fq31?ShNY02c5F7iE3c1N7Lp_B)|?`5?eD(ae(`Jw`+Fe6 z+lR*ocMeGra+AH&Sivh9awKXYhs#tAef@TE!@% zupF13Pm}8D7b!cRsn@jAi`#aZZ<1`jC0?xOXQq<-Gv*=nNTX8(o>TuiLK{S_-tj*^6R7FaGyINyTOfEF2d2`H1|eZ*DeZKX*Q))G}!F) z@D5`r6F^2NKcW=yE-cUJI6>GkW2k|{F=EqV&Ud|>0%RHFg8^(D44xq55RXb;5Uh2X zscD)HhTTB&p#2@2h&hwVd^sEoy^La5U8n#CRT0lnm*d;$U+QF+vR$MQ_Zf}A#lnIN z3ja8je3J8r=0q!VKH<(vk4HlGbuRP#uGqH)m5sCc_RiYQ4{jyda`L@C*2dndlmf zLEyXy5UmCQqdqJXU}oI%%?^bINuaQpOcmO7yc@%824ReUNcCzuHp3Ez>$7eQ%QeL6 ThSZAPz)#*47EVtJAHM$qq@~>V