Compare commits
17 Commits
medley-230
...
medley-230
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8bb283e0c4 | ||
|
|
6fae5c14e9 | ||
|
|
c58ef4ee56 | ||
|
|
730fc5b678 | ||
|
|
8d54603329 | ||
|
|
21ceff5ad9 | ||
|
|
5a07e6c266 | ||
|
|
4a09d3a027 | ||
|
|
691563024b | ||
|
|
0f49e248d3 | ||
|
|
54782f5b21 | ||
|
|
d34522d769 | ||
|
|
c501dc82fb | ||
|
|
c256a8f411 | ||
|
|
69dbe43d87 | ||
|
|
989ec5b0b5 | ||
|
|
12b5e90727 |
@@ -105,8 +105,7 @@ dump of your system located in your home directory named
|
||||
specify a specific image to run, Medley restores that image so that
|
||||
you can continue right where you left off.
|
||||
|
||||
* [Using Medley Interlisp](https://github.com/Interlisp/medley/wiki/Using-Medley-Interlisp)
|
||||
|
||||
* [Using Medley Interlisp](https://interlisp.org/doc/info/Using.html)
|
||||
|
||||
## Naming conventions and directory structure
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "22-Nov-2022 20:59:24" {DSK}<home>frank>il>medley>wmedley>greetfiles>MEDLEYDIR-INIT.;6 2860
|
||||
(FILECREATED "13-Apr-2023 09:44:06" {DSK}<home>larry>il>medley>greetfiles>MEDLEYDIR-INIT.;6 2925
|
||||
|
||||
:EDIT-BY "lmm"
|
||||
|
||||
:CHANGES-TO (VARS MEDLEYDIR-INITCOMS)
|
||||
|
||||
:PREVIOUS-DATE "22-Nov-2022 20:42:43"
|
||||
{DSK}<home>frank>il>medley>wmedley>greetfiles>MEDLEYDIR-INIT.;5)
|
||||
:PREVIOUS-DATE "10-Apr-2023 11:58:07" {DSK}<home>larry>il>medley>greetfiles>MEDLEYDIR-INIT.;5
|
||||
)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT MEDLEYDIR-INITCOMS)
|
||||
@@ -22,18 +24,19 @@
|
||||
|
||||
(DWIMWAIT 180)
|
||||
(HELPDEPTH 4)
|
||||
(HELPTIME 10)
|
||||
(HELPTIME 1)
|
||||
(FILING.ENUMERATION.DEPTH 1)
|
||||
[LOGINDIR (DIRECTORYNAME (OR (UNIX-GETENV "LOGINDIR")
|
||||
(UNIX-GETENV "HOME"]
|
||||
[USERGREETFILES `((,LOGINDIR "INIT" COM)
|
||||
(,LOGINDIR "INIT"]
|
||||
(COPYRIGHTFLG 'NEVER)
|
||||
(COPYRIGHTSRESERVED NIL)
|
||||
(AUTOBACKTRACEFLG 'ALWAYS)
|
||||
(MAXLEVEL 30000)
|
||||
(MAXLOOP 30000))
|
||||
(FNS INTERLISPMODE)
|
||||
(ALISTS (FONTDEFS LARGER))))
|
||||
(ALISTS (FONTDEFS))))
|
||||
|
||||
(LOAD? (CONCAT (OR (UNIX-GETENV "MEDLEYDIR")
|
||||
"")
|
||||
@@ -49,7 +52,7 @@
|
||||
|
||||
(RPAQQ HELPDEPTH 4)
|
||||
|
||||
(RPAQQ HELPTIME 10)
|
||||
(RPAQQ HELPTIME 1)
|
||||
|
||||
(RPAQQ FILING.ENUMERATION.DEPTH 1)
|
||||
|
||||
@@ -59,6 +62,8 @@
|
||||
(RPAQ USERGREETFILES `((,LOGINDIR "INIT" COM)
|
||||
(,LOGINDIR "INIT")))
|
||||
|
||||
(RPAQQ COPYRIGHTFLG NEVER)
|
||||
|
||||
(RPAQQ COPYRIGHTSRESERVED NIL)
|
||||
|
||||
(RPAQQ AUTOBACKTRACEFLG ALWAYS)
|
||||
@@ -84,5 +89,5 @@
|
||||
|
||||
(ADDTOVAR FONTDEFS )
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (1986 2811 (INTERLISPMODE 1996 . 2809)))))
|
||||
(FILEMAP (NIL (2051 2876 (INTERLISPMODE 2061 . 2874)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
2
internal/MAINTAIN.TXT
Normal file
2
internal/MAINTAIN.TXT
Normal file
@@ -0,0 +1,2 @@
|
||||
MAINTAIN -- Network access to the PUP "Grapevine" server, which did
|
||||
email, distribution lists. Written ~1985 mainly by Bill van Melle.
|
||||
280
library/PRESS
280
library/PRESS
@@ -1,18 +1,21 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
(FILECREATED " 5-Feb-2021 22:18:06" {DSK}<home>larry>ilisp>medley>library>PRESS.;2 455434Q
|
||||
|
||||
changes to%: (VARS PRESSCOMS)
|
||||
(FILECREATED "10-Apr-2023 07:15:37" {DSK}<home>larry>il>medley>library>PRESS.;2 452576Q
|
||||
|
||||
previous date%: "20-Jan-93 14:25:20" {DSK}<home>larry>ilisp>medley>library>PRESS.;1)
|
||||
:EDIT-BY "lmm"
|
||||
|
||||
:CHANGES-TO (VARS PRESSCOMS)
|
||||
|
||||
:PREVIOUS-DATE " 5-Feb-2021 22:18:06" {DSK}<home>larry>il>medley>library>PRESS.;1)
|
||||
|
||||
|
||||
(* ; "
|
||||
Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venue & Xerox Corporation. All rights reserved.
|
||||
Copyright (c) 1981-1987, 1990, 1993, 2021 by Venue & Xerox Corporation.
|
||||
")
|
||||
|
||||
(PRETTYCOMPRINT PRESSCOMS)
|
||||
|
||||
(RPAQQ PRESSCOMS
|
||||
(RPAQQ PRESSCOMS
|
||||
[
|
||||
|
||||
(* ;;; "PRESS printing support module")
|
||||
@@ -28,7 +31,7 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
|
||||
(* ;; "Bitmap printing support")
|
||||
|
||||
(FNS PRESSBITMAP FULLPRESSBITMAP SHOWREGION SHOWPRESSBITMAPREGION PRESSWINDOW WINDOW.BITMAP
|
||||
(FNS PRESSBITMAP FULLPRESSBITMAP SHOWREGION SHOWPRESSBITMAPREGION PRESSWINDOW
|
||||
\WRITEPRESSBITMAP)
|
||||
|
||||
(* ;; "Basic PRESS data structure output functions")
|
||||
@@ -101,7 +104,7 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
ROTATION TITLE)))
|
||||
((FULLPRESS RAVEN)
|
||||
(* ;
|
||||
"same as PRESS but can scale bitmaps")
|
||||
"same as PRESS but can scale bitmaps")
|
||||
(CANPRINT (PRESS))
|
||||
(STATUS TRUE)
|
||||
(PROPERTIES NILL)
|
||||
@@ -718,19 +721,6 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
(\WRITEPRESSBITMAP BITMAP NIL NIL PRSTREAM)
|
||||
(RETURN (CLOSEF PRSTREAM])
|
||||
|
||||
(WINDOW.BITMAP
|
||||
[LAMBDA (W) (* ; "Edited 12-Jun-90 10:38 by mitani")
|
||||
(* Returns all of the bitmap of the
|
||||
window)
|
||||
(PROG [BM (REGION (WINDOWPROP W 'REGION]
|
||||
(CLOSEW W)
|
||||
(SETQ BM (BITMAPCREATE (fetch (REGION WIDTH) of REGION)
|
||||
(fetch (REGION HEIGHT) of REGION)))
|
||||
(BITBLT (WINDOWPROP W 'IMAGECOVERED)
|
||||
NIL NIL BM)
|
||||
(OPENW W)
|
||||
(RETURN BM])
|
||||
|
||||
(\WRITEPRESSBITMAP
|
||||
[LAMBDA (BITMAP XPOS YPOS SCALEFACTOR CLIPPINGREGION PRSTREAM)
|
||||
(* ; "Edited 12-Jun-90 10:39 by mitani")
|
||||
@@ -2344,7 +2334,7 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
(RPAQQ SPRUCEPAPERTOPSCANS 4096)
|
||||
|
||||
(RPAQ SPRUCEPAPERTOPMICAS (FIX (FQUOTIENT (FTIMES SPRUCEPAPERTOPSCANS \MicasPerInch)
|
||||
ScansPerIn)))
|
||||
ScansPerIn)))
|
||||
|
||||
(RPAQ SPRUCEPAPERRIGHTMICAS (FIX (FTIMES 8.5 \MicasPerInch)))
|
||||
|
||||
@@ -2427,85 +2417,74 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
(DECLARE%: DONTCOPY
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
(DATATYPE PRESSDATA (PRHEADING (* The string to be printed atop
|
||||
each page.)
|
||||
PRHEADINGFONT (* Font to print the heading in)
|
||||
PRXPOS (* Current X position)
|
||||
PRYPOS (* Current Y position)
|
||||
PRFONT (* Current font)
|
||||
PRCURRFDE PRESSFONTDIR PRWIDTHSCACHE PRCOLOR PRLINEFEED PRPAGESTATE
|
||||
PDSTREAM ELSTREAM XPRPAGEREGION PRDOCNAME (PRLEFT WORD)
|
||||
(DATATYPE PRESSDATA (PRHEADING (* The string to be printed atop each
|
||||
page.)
|
||||
PRHEADINGFONT (* Font to print the heading in)
|
||||
PRXPOS (* Current X position)
|
||||
PRYPOS (* Current Y position)
|
||||
PRFONT (* Current font)
|
||||
PRCURRFDE PRESSFONTDIR PRWIDTHSCACHE PRCOLOR PRLINEFEED PRPAGESTATE
|
||||
PDSTREAM ELSTREAM XPRPAGEREGION PRDOCNAME (PRLEFT WORD)
|
||||
(* Page left margin)
|
||||
(PRBOTTOM WORD) (* Page bottom margin)
|
||||
(PRRIGHT WORD) (* Page right margin)
|
||||
(PRTOP WORD) (* Page top margin)
|
||||
(PRPAGENUM WORD) (* Current Page number)
|
||||
(PRNEXTFONT# BYTE)
|
||||
(PRMAXFONTSET BYTE)
|
||||
(PRPARTSTART INTEGER)
|
||||
(DLSTARTBYTE INTEGER)
|
||||
(ELSTARTBYTE INTEGER)
|
||||
(STARTCHARBYTE INTEGER)
|
||||
(VECMOVINGRIGHT FLAG) (* If we're drawing a curve with
|
||||
vector fonts, are we moving to the
|
||||
right?)
|
||||
(VECWASDISPLAYING FLAG)
|
||||
(PRBOTTOM WORD) (* Page bottom margin)
|
||||
(PRRIGHT WORD) (* Page right margin)
|
||||
(PRTOP WORD) (* Page top margin)
|
||||
(PRPAGENUM WORD) (* Current Page number)
|
||||
(PRNEXTFONT# BYTE)
|
||||
(PRMAXFONTSET BYTE)
|
||||
(PRPARTSTART INTEGER)
|
||||
(DLSTARTBYTE INTEGER)
|
||||
(ELSTARTBYTE INTEGER)
|
||||
(STARTCHARBYTE INTEGER)
|
||||
(VECMOVINGRIGHT FLAG) (* If we're drawing a curve with
|
||||
vector fonts, are we moving to the
|
||||
right?)
|
||||
(VECWASDISPLAYING FLAG)
|
||||
|
||||
(* Used during curve/line clipping to remember whether we were on-screen or
|
||||
not, so we know when to force a SETXY.)
|
||||
(* Used during curve/line clipping to remember whether we were on-screen or not,
|
||||
so we know when to force a SETXY.)
|
||||
|
||||
VECSEGCHARS (* Cache for vector characters while
|
||||
we're moving to the left.)
|
||||
VECCURX (* Current X position within vector
|
||||
code, in Dover spots)
|
||||
VECCURY (* Current Y position with vector
|
||||
code, in Dover spots)
|
||||
PRSPACEFACTOR PRSPACEWIDTH (CHARWASDISPLAYING FLAG)
|
||||
(* Says whether we have been
|
||||
printing characters inside the
|
||||
clipping region)
|
||||
PRClippingRegion
|
||||
VECSEGCHARS (* Cache for vector characters while
|
||||
we're moving to the left.)
|
||||
VECCURX (* Current X position within vector
|
||||
code, in Dover spots)
|
||||
VECCURY (* Current Y position with vector
|
||||
code, in Dover spots)
|
||||
PRSPACEFACTOR PRSPACEWIDTH (CHARWASDISPLAYING FLAG)
|
||||
(* Says whether we have been printing
|
||||
characters inside the clipping region)
|
||||
PRClippingRegion
|
||||
|
||||
(* The edges of the paper, as far as PRESS is concerned.
|
||||
Used to protect SPRUCE users who get killed when the image goes off-paper)
|
||||
Used to protect SPRUCE users who get killed when the image goes off-paper)
|
||||
|
||||
)
|
||||
PRSPACEFACTOR _ 1 PRXPOS _ 0 PRYPOS _ 0
|
||||
(* We assume that the origin is
|
||||
translated to the bottom-left of the
|
||||
page region)
|
||||
PRClippingRegion _ (create REGION
|
||||
LEFT _ SPRUCEPAPERLEFTMICAS
|
||||
BOTTOM _ SPRUCEPAPERBOTTOMMICAS
|
||||
WIDTH _ (DIFFERENCE SPRUCEPAPERRIGHTMICAS
|
||||
SPRUCEPAPERLEFTMICAS)
|
||||
HEIGHT _ 29210)
|
||||
[ACCESSFNS ((PRWIDTH (IDIFFERENCE (fetch (PRESSDATA PRRIGHT) of
|
||||
DATUM)
|
||||
(fetch (PRESSDATA PRLEFT) of DATUM)))
|
||||
(PRHEIGHT (IDIFFERENCE (fetch (PRESSDATA PRTOP) of DATUM)
|
||||
(fetch (PRESSDATA PRBOTTOM) of DATUM)))
|
||||
(PRPAGEREGION (fetch (PRESSDATA XPRPAGEREGION) of DATUM)
|
||||
(PROGN (replace (PRESSDATA XPRPAGEREGION) of
|
||||
DATUM
|
||||
with NEWVALUE)
|
||||
(replace (PRESSDATA PRLEFT) of DATUM
|
||||
with (fetch (REGION LEFT) of
|
||||
NEWVALUE
|
||||
))
|
||||
(replace (PRESSDATA PRBOTTOM) of DATUM
|
||||
with (fetch (REGION BOTTOM) of
|
||||
NEWVALUE))
|
||||
(replace (PRESSDATA PRRIGHT) of DATUM
|
||||
with (IPLUS (fetch (REGION LEFT)
|
||||
of NEWVALUE)
|
||||
(fetch (REGION WIDTH)
|
||||
of NEWVALUE)))
|
||||
(replace (PRESSDATA PRTOP) of DATUM
|
||||
with (IPLUS (fetch (REGION BOTTOM)
|
||||
of NEWVALUE)
|
||||
(fetch (REGION HEIGHT)
|
||||
of NEWVALUE])
|
||||
)
|
||||
PRSPACEFACTOR _ 1 PRXPOS _ 0 PRYPOS _ 0 (* We assume that the origin is
|
||||
translated to the bottom-left of the
|
||||
page region)
|
||||
PRClippingRegion _ (create REGION
|
||||
LEFT _ SPRUCEPAPERLEFTMICAS
|
||||
BOTTOM _ SPRUCEPAPERBOTTOMMICAS
|
||||
WIDTH _ (DIFFERENCE SPRUCEPAPERRIGHTMICAS
|
||||
SPRUCEPAPERLEFTMICAS)
|
||||
HEIGHT _ 29210)
|
||||
[ACCESSFNS ((PRWIDTH (IDIFFERENCE (fetch (PRESSDATA PRRIGHT) of DATUM)
|
||||
(fetch (PRESSDATA PRLEFT) of DATUM)))
|
||||
(PRHEIGHT (IDIFFERENCE (fetch (PRESSDATA PRTOP) of DATUM)
|
||||
(fetch (PRESSDATA PRBOTTOM) of DATUM)))
|
||||
(PRPAGEREGION (fetch (PRESSDATA XPRPAGEREGION) of DATUM)
|
||||
(PROGN (replace (PRESSDATA XPRPAGEREGION) of DATUM
|
||||
with NEWVALUE)
|
||||
(replace (PRESSDATA PRLEFT) of DATUM
|
||||
with (fetch (REGION LEFT) of NEWVALUE))
|
||||
(replace (PRESSDATA PRBOTTOM) of DATUM
|
||||
with (fetch (REGION BOTTOM) of NEWVALUE))
|
||||
(replace (PRESSDATA PRRIGHT) of DATUM
|
||||
with (IPLUS (fetch (REGION LEFT) of NEWVALUE)
|
||||
(fetch (REGION WIDTH) of NEWVALUE)))
|
||||
(replace (PRESSDATA PRTOP) of DATUM
|
||||
with (IPLUS (fetch (REGION BOTTOM) of NEWVALUE)
|
||||
(fetch (REGION HEIGHT) of NEWVALUE])
|
||||
|
||||
(RECORD FONTDIRENTRY (DESCR FONT# FONTSET#))
|
||||
)
|
||||
@@ -2596,7 +2575,7 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
(RPAQ? DEFAULTPAGEREGION (CREATEREGION 2794 1905 16256 24765))
|
||||
|
||||
(RPAQ? PRESSBITMAPREGION (CREATEREGION 1270 1270 (FIX (TIMES 7.5 \MicasPerInch))
|
||||
(TIMES 10 \MicasPerInch)))
|
||||
(TIMES 10 \MicasPerInch)))
|
||||
(DECLARE%: DOEVAL@COMPILE DONTCOPY
|
||||
|
||||
(GLOBALVARS DEFAULTPAGEREGION)
|
||||
@@ -2618,7 +2597,7 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
|
||||
|
||||
|
||||
(RPAQQ PRESSOPS
|
||||
(RPAQQ PRESSOPS
|
||||
(SetX SetY ShowCharacters ShowCharactersShortCode SkipCharactersShortCode
|
||||
ShowCharactersAndSkipCode SetSpaceXShortCode SetSpaceYShortCode FontCode
|
||||
SkipControlBytesImmediateCode AlternativeCode OnlyOnCopyCode SetXCode SetYCode
|
||||
@@ -2739,65 +2718,64 @@ Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1990, 1993, 2021 by Venu
|
||||
)
|
||||
|
||||
(ADDTOVAR IMAGESTREAMTYPES (PRESS (OPENSTREAM OPENPRSTREAM)
|
||||
(FONTCREATE \CREATEPRESSFONT)
|
||||
(CREATECHARSET \CREATECHARSET.PRESS)
|
||||
(FONTSAVAILABLE \SEARCHPRESSFONTS)))
|
||||
(FONTCREATE \CREATEPRESSFONT)
|
||||
(CREATECHARSET \CREATECHARSET.PRESS)
|
||||
(FONTSAVAILABLE \SEARCHPRESSFONTS)))
|
||||
|
||||
(ADDTOVAR PRINTERTYPES
|
||||
((PRESS SPRUCE PENGUIN DOVER)
|
||||
(CANPRINT (PRESS))
|
||||
(STATUS PUP.PRINTER.STATUS)
|
||||
(PROPERTIES PUP.PRINTER.PROPERTIES)
|
||||
(SEND EFTP)
|
||||
(BITMAPSCALE NIL)
|
||||
(BITMAPFILE (PRESSBITMAP FILE BITMAP SCALEFACTOR REGION ROTATION TITLE)))
|
||||
((FULLPRESS RAVEN)
|
||||
(ADDTOVAR PRINTERTYPES ((PRESS SPRUCE PENGUIN DOVER)
|
||||
(CANPRINT (PRESS))
|
||||
(STATUS PUP.PRINTER.STATUS)
|
||||
(PROPERTIES PUP.PRINTER.PROPERTIES)
|
||||
(SEND EFTP)
|
||||
(BITMAPSCALE NIL)
|
||||
(BITMAPFILE (PRESSBITMAP FILE BITMAP SCALEFACTOR REGION ROTATION TITLE)))
|
||||
((FULLPRESS RAVEN)
|
||||
(* ;
|
||||
"same as PRESS but can scale bitmaps")
|
||||
(CANPRINT (PRESS))
|
||||
(STATUS TRUE)
|
||||
(PROPERTIES NILL)
|
||||
(SEND EFTP)
|
||||
(BITMAPSCALE PRESS.BITMAPSCALE)
|
||||
(BITMAPFILE (FULLPRESSBITMAP FILE BITMAP SCALEFACTOR REGION ROTATION TITLE))))
|
||||
"same as PRESS but can scale bitmaps")
|
||||
(CANPRINT (PRESS))
|
||||
(STATUS TRUE)
|
||||
(PROPERTIES NILL)
|
||||
(SEND EFTP)
|
||||
(BITMAPSCALE PRESS.BITMAPSCALE)
|
||||
(BITMAPFILE (FULLPRESSBITMAP FILE BITMAP SCALEFACTOR REGION ROTATION TITLE))))
|
||||
|
||||
(ADDTOVAR PRINTFILETYPES
|
||||
[PRESS (TEST PRESSFILEP)
|
||||
(EXTENSION (PRESS))
|
||||
(CONVERSION (TEXT MAKEPRESS TEDIT (LAMBDA (FILE PFILE FONTS HEADING)
|
||||
(SETQ FILE (OPENTEXTSTREAM FILE))
|
||||
(TEDIT.FORMAT.HARDCOPY FILE PFILE T NIL NIL
|
||||
NIL 'PRESS)
|
||||
(CLOSEF? FILE)
|
||||
PFILE])
|
||||
(ADDTOVAR PRINTFILETYPES [PRESS (TEST PRESSFILEP)
|
||||
(EXTENSION (PRESS))
|
||||
(CONVERSION (TEXT MAKEPRESS TEDIT
|
||||
(LAMBDA (FILE PFILE FONTS HEADING)
|
||||
(SETQ FILE (OPENTEXTSTREAM FILE))
|
||||
(TEDIT.FORMAT.HARDCOPY FILE PFILE T NIL NIL
|
||||
NIL 'PRESS)
|
||||
(CLOSEF? FILE)
|
||||
PFILE])
|
||||
(PUTPROPS PRESS COPYRIGHT ("Venue & Xerox Corporation" 3675Q 3676Q 3677Q 3700Q 3701Q 3702Q 3703Q 3706Q
|
||||
3711Q 3745Q))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (16032Q 73011Q (\SEARCHPRESSFONTS 16044Q . 20001Q) (\GETPRESSFONTNAMES 20003Q . 26641Q)
|
||||
(\PRESSFAMILYCODELST 26643Q . 30565Q) (\DECODEPRESSFACEBYTE 30567Q . 33356Q) (\CREATEPRESSFONT 33360Q
|
||||
. 35625Q) (\CREATECHARSET.PRESS 35627Q . 73007Q)) (73446Q 130434Q (PRESSBITMAP 73460Q . 103062Q) (
|
||||
FULLPRESSBITMAP 103064Q . 111076Q) (SHOWREGION 111100Q . 112442Q) (SHOWPRESSBITMAPREGION 112444Q .
|
||||
113106Q) (PRESSWINDOW 113110Q . 117247Q) (WINDOW.BITMAP 117251Q . 120432Q) (\WRITEPRESSBITMAP 120434Q
|
||||
. 130432Q)) (130532Q 160405Q (\BCPLSOUT.PRESS 130544Q . 131521Q) (\PAGEPAD.PRESS 131523Q . 132760Q) (
|
||||
\ENTITYEND.PRESS 132762Q . 140256Q) (\PARTEND.PRESS 140260Q . 142645Q) (\ENTITYSTART.PRESS 142647Q .
|
||||
146260Q) (SETX.PRESS 146262Q . 150115Q) (SETXY.PRESS 150117Q . 153121Q) (SETY.PRESS 153123Q . 154523Q)
|
||||
(SHOW.PRESS 154525Q . 160403Q)) (160467Q 275304Q (OPENPRSTREAM 160501Q . 165630Q) (\BITBLT.PRESS
|
||||
165632Q . 170244Q) (\BLTSHADE.PRESS 170246Q . 171701Q) (\SCALEDBITBLT.PRESS 171703Q . 174327Q) (
|
||||
\BITMAPSIZE.PRESS 174331Q . 175271Q) (\CHARWIDTH.PRESS 175273Q . 177342Q) (\CLOSEF.PRESS 177344Q .
|
||||
207333Q) (\DRAWLINE.PRESS 207335Q . 210673Q) (\ENDPAGE.PRESS 210675Q . 212145Q) (NEWLINE.PRESS 212147Q
|
||||
. 213560Q) (NEWPAGE.PRESS 213562Q . 214054Q) (SETUPFONTS.PRESS 214056Q . 217607Q) (\DEFINEFONT.PRESS
|
||||
217611Q . 221733Q) (\DSPBOTTOMMARGIN.PRESS 221735Q . 222531Q) (\DSPCLIPPINGREGION.PRESS 222533Q .
|
||||
224125Q) (\DSPFONT.PRESS 224127Q . 231121Q) (\DSPLEFTMARGIN.PRESS 231123Q . 232003Q) (
|
||||
\DSPLINEFEED.PRESS 232005Q . 233315Q) (\DSPRIGHTMARGIN.PRESS 233317Q . 234202Q) (\DSPSPACEFACTOR.PRESS
|
||||
234204Q . 235610Q) (\DSPTOPMARGIN.PRESS 235612Q . 236375Q) (\DSPXPOSITION.PRESS 236377Q . 237115Q) (
|
||||
\DSPYPOSITION.PRESS 237117Q . 237635Q) (\FIXLINELENGTH.PRESS 237637Q . 241734Q) (\OUTCHARFN.PRESS
|
||||
241736Q . 250772Q) (\SETSPACE.PRESS 250774Q . 252270Q) (\STARTPAGE.PRESS 252272Q . 256633Q) (
|
||||
\STRINGWIDTH.PRESS 256635Q . 272213Q) (SHOWRECTANGLE.PRESS 272215Q . 272736Q) (
|
||||
\PRESS.CONVERT.NSCHARACTER 272740Q . 275302Q)) (275344Q 406406Q (\ENDVECRUN 275356Q . 305174Q) (
|
||||
\VECENCODE 305176Q . 306225Q) (\VECPUT 306227Q . 315655Q) (\VECSKIP 315657Q . 316412Q) (\VECFONTINIT
|
||||
316414Q . 323537Q) (\DRAWCIRCLE.PRESS 323541Q . 326044Q) (\DRAWARC.PRESS 326046Q . 326637Q) (
|
||||
\DRAWCURVE.PRESS 326641Q . 334577Q) (\DRAWCURVE.PRESS.LINE 334601Q . 343446Q) (\DRAWELLIPSE.PRESS
|
||||
343450Q . 347227Q) (\GETBRUSHFONT.PRESS 347231Q . 351133Q) (\PRESSCURVE2 351135Q . 406404Q)) (412244Q
|
||||
417070Q (\PRESSINIT 412256Q . 417066Q)) (446754Q 452043Q (MAKEPRESS 446766Q . 447272Q) (PRESSFILEP
|
||||
447274Q . 451051Q) (PRESS.BITMAPSCALE 451053Q . 452041Q)))))
|
||||
(FILEMAP (NIL (15752Q 72731Q (\SEARCHPRESSFONTS 15764Q . 17721Q) (\GETPRESSFONTNAMES 17723Q . 26561Q)
|
||||
(\PRESSFAMILYCODELST 26563Q . 30505Q) (\DECODEPRESSFACEBYTE 30507Q . 33276Q) (\CREATEPRESSFONT 33300Q
|
||||
. 35545Q) (\CREATECHARSET.PRESS 35547Q . 72727Q)) (73366Q 127171Q (PRESSBITMAP 73400Q . 103002Q) (
|
||||
FULLPRESSBITMAP 103004Q . 111016Q) (SHOWREGION 111020Q . 112362Q) (SHOWPRESSBITMAPREGION 112364Q .
|
||||
113026Q) (PRESSWINDOW 113030Q . 117167Q) (\WRITEPRESSBITMAP 117171Q . 127167Q)) (127267Q 157142Q (
|
||||
\BCPLSOUT.PRESS 127301Q . 130256Q) (\PAGEPAD.PRESS 130260Q . 131515Q) (\ENTITYEND.PRESS 131517Q .
|
||||
137013Q) (\PARTEND.PRESS 137015Q . 141402Q) (\ENTITYSTART.PRESS 141404Q . 145015Q) (SETX.PRESS 145017Q
|
||||
. 146652Q) (SETXY.PRESS 146654Q . 151656Q) (SETY.PRESS 151660Q . 153260Q) (SHOW.PRESS 153262Q .
|
||||
157140Q)) (157224Q 274041Q (OPENPRSTREAM 157236Q . 164365Q) (\BITBLT.PRESS 164367Q . 167001Q) (
|
||||
\BLTSHADE.PRESS 167003Q . 170436Q) (\SCALEDBITBLT.PRESS 170440Q . 173064Q) (\BITMAPSIZE.PRESS 173066Q
|
||||
. 174026Q) (\CHARWIDTH.PRESS 174030Q . 176077Q) (\CLOSEF.PRESS 176101Q . 206070Q) (\DRAWLINE.PRESS
|
||||
206072Q . 207430Q) (\ENDPAGE.PRESS 207432Q . 210702Q) (NEWLINE.PRESS 210704Q . 212315Q) (NEWPAGE.PRESS
|
||||
212317Q . 212611Q) (SETUPFONTS.PRESS 212613Q . 216344Q) (\DEFINEFONT.PRESS 216346Q . 220470Q) (
|
||||
\DSPBOTTOMMARGIN.PRESS 220472Q . 221266Q) (\DSPCLIPPINGREGION.PRESS 221270Q . 222662Q) (\DSPFONT.PRESS
|
||||
222664Q . 227656Q) (\DSPLEFTMARGIN.PRESS 227660Q . 230540Q) (\DSPLINEFEED.PRESS 230542Q . 232052Q) (
|
||||
\DSPRIGHTMARGIN.PRESS 232054Q . 232737Q) (\DSPSPACEFACTOR.PRESS 232741Q . 234345Q) (
|
||||
\DSPTOPMARGIN.PRESS 234347Q . 235132Q) (\DSPXPOSITION.PRESS 235134Q . 235652Q) (\DSPYPOSITION.PRESS
|
||||
235654Q . 236372Q) (\FIXLINELENGTH.PRESS 236374Q . 240471Q) (\OUTCHARFN.PRESS 240473Q . 247527Q) (
|
||||
\SETSPACE.PRESS 247531Q . 251025Q) (\STARTPAGE.PRESS 251027Q . 255370Q) (\STRINGWIDTH.PRESS 255372Q .
|
||||
270750Q) (SHOWRECTANGLE.PRESS 270752Q . 271473Q) (\PRESS.CONVERT.NSCHARACTER 271475Q . 274037Q)) (
|
||||
274101Q 405143Q (\ENDVECRUN 274113Q . 303731Q) (\VECENCODE 303733Q . 304762Q) (\VECPUT 304764Q .
|
||||
314412Q) (\VECSKIP 314414Q . 315147Q) (\VECFONTINIT 315151Q . 322274Q) (\DRAWCIRCLE.PRESS 322276Q .
|
||||
324601Q) (\DRAWARC.PRESS 324603Q . 325374Q) (\DRAWCURVE.PRESS 325376Q . 333334Q) (
|
||||
\DRAWCURVE.PRESS.LINE 333336Q . 342203Q) (\DRAWELLIPSE.PRESS 342205Q . 345764Q) (\GETBRUSHFONT.PRESS
|
||||
345766Q . 347670Q) (\PRESSCURVE2 347672Q . 405141Q)) (410775Q 415621Q (\PRESSINIT 411007Q . 415617Q))
|
||||
(443570Q 446657Q (MAKEPRESS 443602Q . 444106Q) (PRESSFILEP 444110Q . 445665Q) (PRESS.BITMAPSCALE
|
||||
445667Q . 446655Q)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@@ -1,16 +1,14 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "25-Jun-2022 18:22:01" {DSK}<home>larry>medley>library>SYSEDIT.;2 1373
|
||||
(FILECREATED "17-Apr-2023 14:19:03" {DSK}<home>larry>il>medley>library>SYSEDIT.;2 1238
|
||||
|
||||
:EDIT-BY "lmm"
|
||||
|
||||
:CHANGES-TO (VARS SYSEDITCOMS)
|
||||
|
||||
:PREVIOUS-DATE "28-Sep-2021 10:16:44" {DSK}<home>larry>medley>library>SYSEDIT.;1)
|
||||
:PREVIOUS-DATE "25-Jun-2022 18:22:01" {DSK}<home>larry>il>medley>library>SYSEDIT.;1)
|
||||
|
||||
|
||||
(* ; "
|
||||
Copyright (c) 1984, 1987, 1990, 2021 by Venue & Xerox Corporation.
|
||||
")
|
||||
|
||||
(PRETTYCOMPRINT SYSEDITCOMS)
|
||||
|
||||
(RPAQQ SYSEDITCOMS
|
||||
@@ -22,7 +20,7 @@ Copyright (c) 1984, 1987, 1990, 2021 by Venue & Xerox Corporation.
|
||||
(CLISPIFTRANFLG T)
|
||||
(CROSSCOMPILING 'ASK)
|
||||
(*REPLACE-OLD-EDIT-DATES* NIL)
|
||||
(COPYRIGHTFLG 'PRESERVE))
|
||||
(COPYRIGHTFLG 'NEVER))
|
||||
(P (RESETVARS ((CROSSCOMPILING T))
|
||||
(FILESLOAD (SOURCE)
|
||||
EXPORTS.ALL])
|
||||
@@ -43,12 +41,11 @@ Copyright (c) 1984, 1987, 1990, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
(RPAQQ *REPLACE-OLD-EDIT-DATES* NIL)
|
||||
|
||||
(RPAQQ COPYRIGHTFLG PRESERVE)
|
||||
(RPAQQ COPYRIGHTFLG NEVER)
|
||||
|
||||
(RESETVARS ((CROSSCOMPILING T))
|
||||
(FILESLOAD (SOURCE)
|
||||
EXPORTS.ALL))
|
||||
(PUTPROPS SYSEDIT COPYRIGHT ("Venue & Xerox Corporation" 1984 1987 1990 2021))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL)))
|
||||
STOP
|
||||
|
||||
272
lispusers/GITFNS
272
lispusers/GITFNS
@@ -1,12 +1,10 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
|
||||
(FILECREATED "31-Oct-2022 10:55:40"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>lispusers>GITFNS.;454 118392
|
||||
(FILECREATED "30-Mar-2023 09:08:48" {WMEDLEY}<lispusers>GITFNS.;469 119763
|
||||
|
||||
:CHANGES-TO (COMMANDS cdg cdw)
|
||||
:CHANGES-TO (FNS GIT-MAKE-PROJECT)
|
||||
|
||||
:PREVIOUS-DATE " 1-Oct-2022 12:14:04"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>lispusers>GITFNS.;453)
|
||||
:PREVIOUS-DATE "11-Mar-2023 23:12:35" {WMEDLEY}<lispusers>GITFNS.;468)
|
||||
|
||||
|
||||
(PRETTYCOMPRINT GITFNSCOMS)
|
||||
@@ -23,18 +21,20 @@
|
||||
|
||||
(* ;; "GIT projects")
|
||||
|
||||
(COMS (FNS GIT-CLONEP GIT-INIT GIT-MAKE-PROJECT GIT-GET-PROJECT GIT-PROJECT-PATH
|
||||
FIND-ANCESTOR-DIRECTORY GIT-FIND-CLONE GIT-MAINBRANCH GIT-MAINBRANCH?)
|
||||
(COMS (FNS GIT-CLONEP GIT-INIT GIT-MAKE-PROJECT GIT-GET-PROJECT GIT-PUT-PROJECT-FIELD
|
||||
GIT-PROJECT-PATH FIND-ANCESTOR-DIRECTORY GIT-FIND-CLONE GIT-MAINBRANCH
|
||||
GIT-MAINBRANCH?)
|
||||
(DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS GIT-PROJECT PULLREQUEST))
|
||||
(INITVARS (GIT-DEFAULT-PROJECT 'MEDLEY)
|
||||
[GIT-DEFAULT-PROJECTS '((MEDLEY T T
|
||||
[GIT-DEFAULT-PROJECTS '((MEDLEY NIL NIL
|
||||
(EXPORTS.ALL RDSYS RDSYS.LCOM loadups/ patches/
|
||||
tmp/ fontsold/ clos/ cltl2/)
|
||||
(greetfiles scripts sources library lispusers
|
||||
internal doctools rooms))
|
||||
(NOTECARDS T T)
|
||||
(LOOPS T T)
|
||||
(TEST T T]
|
||||
(NOTECARDS)
|
||||
(LOOPS)
|
||||
(TEST)
|
||||
(MAIKO]
|
||||
(GIT-PROJECTS NIL)))
|
||||
(P (GIT-INIT))
|
||||
(ADDVARS (AROUNDEXITFNS GIT-INIT))
|
||||
@@ -151,71 +151,82 @@
|
||||
ELSE (ERROR "NOT A GIT CLONE" HOST/DIR])
|
||||
|
||||
(GIT-INIT
|
||||
[LAMBDA (EVENT) (* ; "Edited 1-Oct-2022 12:13 by FGH")
|
||||
[LAMBDA (EVENT) (* ; "Edited 1-Feb-2023 16:22 by rmk")
|
||||
(* ; "Edited 1-Oct-2022 12:13 by FGH")
|
||||
(* ; "Edited 8-Aug-2022 21:52 by lmm")
|
||||
(SELECTQ EVENT
|
||||
((NIL AFTERMAKESYS AFTERSYSOUT)
|
||||
(SETQ GIT-PROJECTS NIL)
|
||||
(for X in GIT-DEFAULT-PROJECTS do (APPLY (FUNCTION GIT-MAKE-PROJECT)
|
||||
X))
|
||||
(MKLIST X)))
|
||||
NIL)
|
||||
NIL])
|
||||
|
||||
(GIT-MAKE-PROJECT
|
||||
[LAMBDA (PROJECTNAME PROJECTPATH WORKINGPATH EXCLUSIONS DEFAULTSUBDIRS)
|
||||
[LAMBDA (PROJECTNAME CLONEPATH WORKINGPATH EXCLUSIONS DEFAULTSUBDIRS)
|
||||
(* ; "Edited 30-Mar-2023 09:06 by rmk")
|
||||
(* ; "Edited 5-Feb-2023 12:43 by rmk")
|
||||
(* ; "Edited 1-Feb-2023 16:55 by rmk")
|
||||
(* ; "Edited 11-Aug-2022 17:54 by rmk")
|
||||
(* ; "Edited 13-Jul-2022 13:47 by rmk")
|
||||
(* ; "Edited 6-Jul-2022 19:34 by rmk")
|
||||
(* ; "Edited 17-May-2022 17:08 by rmk")
|
||||
(* ; "Edited 13-May-2022 10:40 by rmk")
|
||||
(* ; "Edited 12-May-2022 00:26 by rmk")
|
||||
(* ; "Edited 9-May-2022 16:20 by rmk")
|
||||
|
||||
(* ;; "PROJECTPATH must resolve to a git clone.")
|
||||
(* ;; "CLONEPATH must resolve to a git clone.")
|
||||
|
||||
(* ;; "Search sequence for PROJECTPATH, if T or NIL")
|
||||
(* ;; " (UNIX-GETENV PROJECTNAME) Unix variable ROOMS is the full path name.")
|
||||
|
||||
(* ;; " (UNIX-GETENV PROJECTNAME)")
|
||||
(* ;; " (MEDLEYDIR PROJECTNAME) e.g. {dsk}/Users/kaplan/medley3.5/loops/")
|
||||
|
||||
(* ;; " (UNIX-GETENV (CONCAT PROJECTNAME DIR)")
|
||||
(* ;;
|
||||
" (MEDLEYDIR (CONCAT %"git-%" PROJECTNAME) e.g. {dsk}/Users/kaplan/medley3.5/git-medley/")
|
||||
|
||||
(* ;; " git-PROJECTNAME sister of MEDLEYDIR ")
|
||||
(* ;;
|
||||
" (MEDLEYDIR (CONCAT PROJECTNAME %"DIR%") e.g. {dsk}/Users/kaplan/medley3.5/notecardsdir/")
|
||||
|
||||
(* ;; "If not found, error if NIL, return NIL if T ")
|
||||
(* ;; " (MEDLEYDIR (CONCAT %"git-%" PROJECTNAME) ")
|
||||
|
||||
(* ;; "")
|
||||
(* ;; "The clone pseudohost is PROJECTNAME e.g. {NOTECARDS}")
|
||||
|
||||
(* ;; "If there is a >working-PROJECTNAME> parallel to clonepath, its pseudhost is WPROJECTNAME, e.g. WNOTECARDS")
|
||||
|
||||
(* ;; "Error if clone is not found.")
|
||||
|
||||
(* ;; "WORKINGPATH T or NIL means try to find a parallel to the projectpath, T means don't cause an error if not found. ")
|
||||
|
||||
(SETQ PROJECTNAME (U-CASE (MKATOM PROJECTNAME)))
|
||||
(CL:WHEN (MEMB PROJECTPATH '(NIL T))
|
||||
[SETQ PROJECTPATH (OR (GIT-CLONEP (MEDLEYDIR (L-CASE PROJECTNAME)
|
||||
NIL NIL T)
|
||||
T)
|
||||
(GIT-CLONEP (UNIX-GETENV PROJECTNAME)
|
||||
T)
|
||||
(GIT-CLONEP (UNIX-GETENV (PACK* PROJECTNAME 'DIR))
|
||||
T)
|
||||
(GIT-CLONEP (DIRECTORYNAME (CONCAT MEDLEYDIR "../git-" (L-CASE
|
||||
PROJECTNAME
|
||||
)
|
||||
"/"))
|
||||
T)
|
||||
(AND (NULL PROJECTPATH)
|
||||
(ERROR (CONCAT "Can't a find clone directory for " PROJECTNAME])
|
||||
(CL:WHEN PROJECTPATH
|
||||
(LET (CLONEPATH GITIGNORE PROJECT GITPATH WP)
|
||||
(SETQ PROJECTPATH (SLASHIT (PACKFILENAME 'HOST 'UNIX 'DIRECTORY (UNPACKFILENAME.STRING
|
||||
(TRUEFILENAME
|
||||
PROJECTPATH)
|
||||
'DIRECTORY
|
||||
'RETURN))
|
||||
T))
|
||||
(SETQ CLONEPATH (if (GIT-CLONEP PROJECTPATH T T)
|
||||
elseif (SETQ GITPATH (GIT-PROJECT-PATH PROJECTNAME PROJECTPATH))
|
||||
then (SETQ PROJECTPATH GITPATH)
|
||||
(GIT-CLONEP PROJECTPATH NIL T)
|
||||
else (ERROR "Can't find GIT clone for" PROJECTPATH)))
|
||||
[SETQ CLONEPATH (if (MEMB CLONEPATH '(NIL T))
|
||||
then
|
||||
(* ;; "The %"DIR%" handles MEDLEY -> MEDLEYDIR or LOOPS -> LOOPSDIR.")
|
||||
|
||||
(* ;; "")
|
||||
|
||||
(OR (GIT-CLONEP (UNIX-GETENV PROJECTNAME)
|
||||
T)
|
||||
(GIT-CLONEP (UNIX-GETENV (PACK* PROJECTNAME "DIR"))
|
||||
T)
|
||||
(GIT-CLONEP (MEDLEYDIR (L-CASE PROJECTNAME)
|
||||
NIL NIL T)
|
||||
T)
|
||||
(GIT-CLONEP (MEDLEYDIR (CONCAT "../" PROJECTNAME)
|
||||
NIL NIL T)
|
||||
T)
|
||||
(GIT-CLONEP (DIRECTORYNAME (CONCAT MEDLEYDIR "../git-" (L-CASE
|
||||
PROJECTNAME)
|
||||
"/"))
|
||||
T)
|
||||
(CL:IF CLONEPATH
|
||||
(ERROR (CONCAT "Can't find a clone directory for " PROJECTNAME))
|
||||
(PRINTOUT T "Note: Can't find a clone directory for "
|
||||
PROJECTNAME T)))
|
||||
elseif (GIT-CLONEP (SLASHIT (PACKFILENAME 'HOST 'DSK 'DIRECTORY
|
||||
(UNPACKFILENAME.STRING (TRUEFILENAME
|
||||
CLONEPATH)
|
||||
'DIRECTORY
|
||||
'RETURN))
|
||||
T)
|
||||
T T)
|
||||
else (ERROR (CONCAT "Can't find the clone directory " CLONEPATH " for "
|
||||
PROJECTNAME]
|
||||
(CL:WHEN CLONEPATH
|
||||
(LET (GITIGNORE PROJECT WP)
|
||||
(CL:WHEN (SETQ GITIGNORE (INFILEP (PACKFILENAME.STRING 'NAME ".gitignore" 'BODY
|
||||
CLONEPATH)))
|
||||
(SETQ GITIGNORE (CL:WITH-OPEN-FILE (STREAM GITIGNORE)
|
||||
@@ -231,58 +242,39 @@
|
||||
:TEST
|
||||
(FUNCTION STRING.EQUAL)))
|
||||
|
||||
(* ;; "The %"my-%" case is for backward compatibility, eventually deprecated.")
|
||||
(* ;; "We now have the clonepath and the extra parameters for the project. Do we have a separate working environment?")
|
||||
|
||||
(SETQ WP
|
||||
(SELECTQ WORKINGPATH
|
||||
((T NIL)
|
||||
(OR (DIRECTORYNAME (PACKFILENAME.STRING
|
||||
'HOST
|
||||
'DSK
|
||||
'BODY
|
||||
(CONCAT (SUBSTRING CLONEPATH 1
|
||||
(STRPOS "/" CLONEPATH -2 NIL NIL NIL
|
||||
FILEDIRCASEARRAY T))
|
||||
"working-"
|
||||
(OR (SUBSTRING PROJECTPATH
|
||||
(OR (STRPOS CLONEPATH PROJECTPATH 1 NIL
|
||||
NIL T FILEDIRCASEARRAY)
|
||||
-2))
|
||||
(L-CASE PROJECTNAME))
|
||||
">"))
|
||||
T)
|
||||
(DIRECTORYNAME (PACKFILENAME.STRING
|
||||
'HOST
|
||||
'DSK
|
||||
'BODY
|
||||
(CONCAT (SUBSTRING CLONEPATH 1
|
||||
(STRPOS "/" CLONEPATH -2 NIL NIL NIL
|
||||
FILEDIRCASEARRAY T))
|
||||
"my-"
|
||||
(OR (SUBSTRING PROJECTPATH
|
||||
(OR (STRPOS CLONEPATH PROJECTPATH 1 NIL
|
||||
NIL T FILEDIRCASEARRAY)
|
||||
-2))
|
||||
(L-CASE PROJECTNAME))
|
||||
">"))
|
||||
T)))
|
||||
(DIRECTORYNAME (PACKFILENAME.STRING 'HOST 'DSK 'BODY
|
||||
(CONCAT (SUBSTRING CLONEPATH 1
|
||||
(STRPOS "/" CLONEPATH -2 NIL NIL NIL
|
||||
FILEDIRCASEARRAY T))
|
||||
"working-"
|
||||
(OR (SUBSTRING CLONEPATH
|
||||
(OR (STRPOS CLONEPATH CLONEPATH 1 NIL
|
||||
NIL T FILEDIRCASEARRAY)
|
||||
-2))
|
||||
(L-CASE PROJECTNAME))
|
||||
">"))
|
||||
T))
|
||||
(DIRECTORYNAME (TRUEFILENAME WORKINGPATH)
|
||||
T)))
|
||||
[SETQ WORKINGPATH (if WP
|
||||
then (UNSLASHIT WP T)
|
||||
elseif (EQ WORKINGPATH T)
|
||||
then NIL
|
||||
else (ERROR (CONCAT "Can't find the working directory "
|
||||
(OR WORKINGPATH "")
|
||||
" for " PROJECTNAME]
|
||||
elseif WORKINGPATH
|
||||
then (ERROR (CONCAT "Can't find the working directory "
|
||||
(AND (EQ WORKINGPATH T)
|
||||
"")
|
||||
" for " PROJECTNAME]
|
||||
(SETQ PROJECT (create GIT-PROJECT
|
||||
PROJECTNAME _ PROJECTNAME
|
||||
GITHOST _ (PACK* "{" (PSEUDOHOST (CONCAT "G" PROJECTNAME)
|
||||
PROJECTPATH)
|
||||
GITHOST _ (PACK* "{" (PSEUDOHOST PROJECTNAME CLONEPATH)
|
||||
"}")
|
||||
WHOST _ (AND WORKINGPATH (PACK* "{" (PSEUDOHOST (CONCAT "W"
|
||||
PROJECTNAME)
|
||||
WP)
|
||||
WORKINGPATH)
|
||||
"}"))
|
||||
EXCLUSIONS _ EXCLUSIONS
|
||||
DEFAULTSUBDIRS _ (MKLIST DEFAULTSUBDIRS)
|
||||
@@ -321,6 +313,34 @@
|
||||
])
|
||||
PROJECT))])
|
||||
|
||||
(GIT-PUT-PROJECT-FIELD
|
||||
[LAMBDA (PROJECT FIELD NEWVALUE) (* ; "Edited 11-Mar-2023 23:00 by rmk")
|
||||
(* ; "Edited 7-Jul-2022 11:25 by rmk")
|
||||
(* ; "Edited 13-May-2022 10:40 by rmk")
|
||||
(* ; "Edited 9-May-2022 20:02 by rmk")
|
||||
(* ; "Edited 8-May-2022 11:38 by rmk")
|
||||
|
||||
(* ;; "Replaces the value of a project field with NEWVALUE. The project record is DONTCOPY, to avoid potential name conflicts, so this provides a functional interface. One use: augment EXCLUSIONS with a list of temporary debug and testing files that you don't want to see in the various file listings")
|
||||
|
||||
(CL:WHEN (SETQ PROJECT (IF (TYPE? GIT-PROJECT PROJECT)
|
||||
THEN PROJECT
|
||||
ELSEIF (CDR (ASSOC (OR (U-CASE PROJECT)
|
||||
GIT-DEFAULT-PROJECT)
|
||||
GIT-PROJECTS))
|
||||
ELSEIF NOERROR
|
||||
THEN NIL
|
||||
ELSE (ERROR "NOT A GIT-PROJECT" PROJECT)))
|
||||
(SELECTQ FIELD
|
||||
(PROJECTNAME (REPLACE PROJECTNAME OF PROJECT WITH NEWVALUE))
|
||||
(WHOST (REPLACE WHOST OF PROJECT WITH NEWVALUE))
|
||||
(GITHOST (REPLACE GITHOST OF PROJECT WITH NEWVALUE))
|
||||
(EXCLUSIONS (REPLACE EXCLUSIONS OF PROJECT WITH NEWVALUE))
|
||||
(DEFAULTSUBDIRS
|
||||
(REPLACE DEFAULTSUBDIRS OF PROJECT WITH NEWVALUE))
|
||||
(CLONEPATH (REPLACE CLONEPATH OF PROJECT WITH NEWVALUE))
|
||||
(MAINBRANCH (REPLACE MAINBRANCH OF PROJECT WITH NEWVALUE))
|
||||
PROJECT))])
|
||||
|
||||
(GIT-PROJECT-PATH
|
||||
[LAMBDA (PROJECTNAME PROJECTPATH) (* ; "Edited 8-May-2022 15:10 by rmk")
|
||||
|
||||
@@ -391,11 +411,12 @@
|
||||
(RPAQ? GIT-DEFAULT-PROJECT 'MEDLEY)
|
||||
|
||||
(RPAQ? GIT-DEFAULT-PROJECTS
|
||||
'((MEDLEY T T (EXPORTS.ALL RDSYS RDSYS.LCOM loadups/ patches/ tmp/ fontsold/ clos/ cltl2/)
|
||||
'((MEDLEY NIL NIL (EXPORTS.ALL RDSYS RDSYS.LCOM loadups/ patches/ tmp/ fontsold/ clos/ cltl2/)
|
||||
(greetfiles scripts sources library lispusers internal doctools rooms))
|
||||
(NOTECARDS T T)
|
||||
(LOOPS T T)
|
||||
(TEST T T)))
|
||||
(NOTECARDS)
|
||||
(LOOPS)
|
||||
(TEST)
|
||||
(MAIKO)))
|
||||
|
||||
(RPAQ? GIT-PROJECTS NIL)
|
||||
|
||||
@@ -2213,31 +2234,32 @@
|
||||
|
||||
(PUTPROPS GITFNS FILETYPE :TCOMPL)
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (3970 19443 (GIT-CLONEP 3980 . 5243) (GIT-INIT 5245 . 5757) (GIT-MAKE-PROJECT 5759 .
|
||||
14144) (GIT-GET-PROJECT 14146 . 16071) (GIT-PROJECT-PATH 16073 . 17117) (FIND-ANCESTOR-DIRECTORY 17119
|
||||
. 17468) (GIT-FIND-CLONE 17470 . 18551) (GIT-MAINBRANCH 18553 . 18948) (GIT-MAINBRANCH? 18950 . 19441
|
||||
)) (25861 28649 (ALLSUBDIRS 25871 . 27157) (MEDLEYSUBDIRS 27159 . 27852) (GITSUBDIRS 27854 . 28647)) (
|
||||
28650 33440 (TOGIT 28660 . 30066) (FROMGIT 30068 . 31049) (GIT-DELETE-FILE 31051 . 31897) (
|
||||
MYMEDLEY-DELETE-FILES 31899 . 33438)) (33441 36444 (MYMEDLEYSUBDIR 33451 . 33907) (GITSUBDIR 33909 .
|
||||
34352) (STRIPDIR 34354 . 34725) (STRIPHOST 34727 . 34967) (STRIPNAME 34969 . 35722) (STRIPWHERE 35724
|
||||
. 36442)) (36445 38347 (GFILE4MFILE 36455 . 36818) (MFILE4GFILE 36820 . 37389) (GIT-REPO-FILENAME
|
||||
37391 . 38345)) (38396 48218 (GIT-COMMIT 38406 . 39232) (GIT-PUSH 39234 . 39878) (GIT-PULL 39880 .
|
||||
40492) (GIT-APPROVAL 40494 . 40843) (GIT-GET-FILE 40845 . 42810) (GIT-FILE-EXISTS? 42812 . 43086) (
|
||||
GIT-REMOTE-UPDATE 43088 . 43812) (GIT-REMOTE-ADD 43814 . 44121) (GIT-FILE-DATE 44123 . 45054) (
|
||||
GIT-FILE-HISTORY 45056 . 46990) (GIT-PRINT-FILE-HISTORY 46992 . 48042) (GIT-FETCH 48044 . 48216)) (
|
||||
48248 58841 (GIT-BRANCH-DIFF 48258 . 54598) (GIT-COMMIT-DIFFS 54600 . 55153) (GIT-BRANCH-RELATIONS
|
||||
55155 . 58839)) (58886 71118 (GIT-BRANCH-NUM 58896 . 59469) (GIT-CHECKOUT 59471 . 60530) (
|
||||
GIT-WHICH-BRANCH 60532 . 60830) (GIT-MAKE-BRANCH 60832 . 63045) (GIT-BRANCHES 63047 . 65315) (
|
||||
GIT-BRANCH-EXISTS? 65317 . 66021) (GIT-PICK-BRANCH 66023 . 66351) (GIT-PRC-MENU 66353 . 68356) (
|
||||
GIT-PULL-REQUESTS 68358 . 70504) (GIT-SHORT-BRANCH-NAME 70506 . 70797) (GIT-LONG-NAME 70799 . 71116))
|
||||
(71148 74483 (GIT-MY-CURRENT-BRANCH 71158 . 71528) (GIT-MY-BRANCHP 71530 . 72035) (GIT-MY-NEXT-BRANCH
|
||||
72037 . 72531) (GIT-MY-BRANCHES 72533 . 74481)) (74529 78481 (GIT-ADD-WORKTREE 74539 . 76023) (
|
||||
GIT-REMOVE-WORKTREE 76025 . 76955) (GIT-LIST-WORKTREES 76957 . 77761) (WORKTREEDIR 77763 . 78479)) (
|
||||
78529 109738 (GIT-GET-DIFFERENT-FILES 78539 . 84963) (GIT-BRANCHES-COMPARE-DIRECTORIES 84965 . 91122)
|
||||
(GIT-WORKING-COMPARE-DIRECTORIES 91124 . 95950) (GIT-COMPARE-WORKTREE 95952 . 99930) (GITCDOBJBUTTONFN
|
||||
99932 . 104422) (GIT-CD-LABELFN 104424 . 105506) (GIT-CD-MENUFN 105508 . 107948) (
|
||||
GIT-WORKING-COMPARE-FILES 107950 . 108570) (GIT-BRANCHES-COMPARE-FILES 108572 . 109736)) (109808
|
||||
118325 (CDGITDIR 109818 . 110378) (GIT-COMMAND 110380 . 111938) (GITORIGIN 111940 . 112637) (
|
||||
GIT-INITIALS 112639 . 112943) (GIT-COMMAND-TO-FILE 112945 . 116434) (PROCESS-COMMAND 116436 . 117049)
|
||||
(GIT-RESULT-TO-LINES 117051 . 117658) (STRIPLOCAL 117660 . 118323)))))
|
||||
(FILEMAP (NIL (3979 20805 (GIT-CLONEP 3989 . 5252) (GIT-INIT 5254 . 5884) (GIT-MAKE-PROJECT 5886 .
|
||||
13487) (GIT-GET-PROJECT 13489 . 15414) (GIT-PUT-PROJECT-FIELD 15416 . 17433) (GIT-PROJECT-PATH 17435
|
||||
. 18479) (FIND-ANCESTOR-DIRECTORY 18481 . 18830) (GIT-FIND-CLONE 18832 . 19913) (GIT-MAINBRANCH 19915
|
||||
. 20310) (GIT-MAINBRANCH? 20312 . 20803)) (27232 30020 (ALLSUBDIRS 27242 . 28528) (MEDLEYSUBDIRS
|
||||
28530 . 29223) (GITSUBDIRS 29225 . 30018)) (30021 34811 (TOGIT 30031 . 31437) (FROMGIT 31439 . 32420)
|
||||
(GIT-DELETE-FILE 32422 . 33268) (MYMEDLEY-DELETE-FILES 33270 . 34809)) (34812 37815 (MYMEDLEYSUBDIR
|
||||
34822 . 35278) (GITSUBDIR 35280 . 35723) (STRIPDIR 35725 . 36096) (STRIPHOST 36098 . 36338) (STRIPNAME
|
||||
36340 . 37093) (STRIPWHERE 37095 . 37813)) (37816 39718 (GFILE4MFILE 37826 . 38189) (MFILE4GFILE
|
||||
38191 . 38760) (GIT-REPO-FILENAME 38762 . 39716)) (39767 49589 (GIT-COMMIT 39777 . 40603) (GIT-PUSH
|
||||
40605 . 41249) (GIT-PULL 41251 . 41863) (GIT-APPROVAL 41865 . 42214) (GIT-GET-FILE 42216 . 44181) (
|
||||
GIT-FILE-EXISTS? 44183 . 44457) (GIT-REMOTE-UPDATE 44459 . 45183) (GIT-REMOTE-ADD 45185 . 45492) (
|
||||
GIT-FILE-DATE 45494 . 46425) (GIT-FILE-HISTORY 46427 . 48361) (GIT-PRINT-FILE-HISTORY 48363 . 49413) (
|
||||
GIT-FETCH 49415 . 49587)) (49619 60212 (GIT-BRANCH-DIFF 49629 . 55969) (GIT-COMMIT-DIFFS 55971 . 56524
|
||||
) (GIT-BRANCH-RELATIONS 56526 . 60210)) (60257 72489 (GIT-BRANCH-NUM 60267 . 60840) (GIT-CHECKOUT
|
||||
60842 . 61901) (GIT-WHICH-BRANCH 61903 . 62201) (GIT-MAKE-BRANCH 62203 . 64416) (GIT-BRANCHES 64418 .
|
||||
66686) (GIT-BRANCH-EXISTS? 66688 . 67392) (GIT-PICK-BRANCH 67394 . 67722) (GIT-PRC-MENU 67724 . 69727)
|
||||
(GIT-PULL-REQUESTS 69729 . 71875) (GIT-SHORT-BRANCH-NAME 71877 . 72168) (GIT-LONG-NAME 72170 . 72487)
|
||||
) (72519 75854 (GIT-MY-CURRENT-BRANCH 72529 . 72899) (GIT-MY-BRANCHP 72901 . 73406) (
|
||||
GIT-MY-NEXT-BRANCH 73408 . 73902) (GIT-MY-BRANCHES 73904 . 75852)) (75900 79852 (GIT-ADD-WORKTREE
|
||||
75910 . 77394) (GIT-REMOVE-WORKTREE 77396 . 78326) (GIT-LIST-WORKTREES 78328 . 79132) (WORKTREEDIR
|
||||
79134 . 79850)) (79900 111109 (GIT-GET-DIFFERENT-FILES 79910 . 86334) (
|
||||
GIT-BRANCHES-COMPARE-DIRECTORIES 86336 . 92493) (GIT-WORKING-COMPARE-DIRECTORIES 92495 . 97321) (
|
||||
GIT-COMPARE-WORKTREE 97323 . 101301) (GITCDOBJBUTTONFN 101303 . 105793) (GIT-CD-LABELFN 105795 .
|
||||
106877) (GIT-CD-MENUFN 106879 . 109319) (GIT-WORKING-COMPARE-FILES 109321 . 109941) (
|
||||
GIT-BRANCHES-COMPARE-FILES 109943 . 111107)) (111179 119696 (CDGITDIR 111189 . 111749) (GIT-COMMAND
|
||||
111751 . 113309) (GITORIGIN 113311 . 114008) (GIT-INITIALS 114010 . 114314) (GIT-COMMAND-TO-FILE
|
||||
114316 . 117805) (PROCESS-COMMAND 117807 . 118420) (GIT-RESULT-TO-LINES 118422 . 119029) (STRIPLOCAL
|
||||
119031 . 119694)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
@@ -1,95 +1,148 @@
|
||||
Medley GITFNS2
|
||||
Medley GITFNS
2
|
||||
4
|
||||
1
|
||||
GITFNS
1
|
||||
4
|
||||
By Ron Kaplan
This document was last edited in May 2022.
GITFNS provides a Medley-oriented interface for comparing the files in two different branches of a git repository. This makes it easier to understand what functions or other definitions have changed in a Lisp source file, or what text has changed in a Tedit file. This may be particularly helpful in evaluating the changes in a pull request.
|
||||
Separately, GITFNS also provides tools and conventions for bridging between git's file-oriented style of development and version control and Medley's residential development style with its own version control conventions. GITFNS allows for intelligent comparisons between Lisp source files,Tedit files, and text files in a local git clone and a local Medley-style working directory, and for migrating files to and from the git clone and the working directory.
|
||||
By Ron Kaplan
This document was last edited in February 2023.
GITFNS provides a Medley-oriented interface for comparing the files in two different branches of a git repository. This makes it easier to understand what functions or other definitions have changed in a Lisp source file, or what text has changed in a Tedit file. This may be particularly helpful in evaluating the changes in a pull request.
|
||||
Separately, GITFNS also provides tools and conventions for bridging between git's file-oriented style of development and version control and Medley's residential development style with its own version control conventions. GITFNS allows for intelligent comparisons between Lisp source files, Tedit files, and text files in a local git clone and a local Medley-style working directory, and for migrating files to and from the git clone and the working directory.
|
||||
|
||||
Git projects: Connecting git clones to GITFNS capabilities
|
||||
The GITFNS capabilities operate on pre-existing clones of remote git repositories that have been installed at the end of some path on the local disk. The path to a clone can be used to create a "git project" for that clone:
|
||||
(GIT-MAKE-PROJECT PROJECTNAME PROJECTPATH WORKINGPATH EXCLUSIONS
|
||||
DEFAULTSUBDIRS) [function]
|
||||
The GITFNS capabilities operate on pre-existing clones of remote git repositories that have been installed at the end of some path on the local disk. The path to a clone can be used to create a GITFNS "project" for that clone:
|
||||
(GIT-MAKE-PROJECT PROJECTNAME CLONEPATH WORKINGPATH EXCLUSIONS
|
||||
DEFAULTSUBDIRS) [Function]
|
||||
where
|
||||
PROJECTNAME is the name of the project (e.g. MEDLEY, NOTECARDS, LOOPS...)
|
||||
PROJECTPATH is the local path to the clone
|
||||
(e.g. {dsk}<users>...>git-medley)
|
||||
PROJECTNAME is the name of the project (e.g. MEDLEY, NOTECARDS, LOOPS...)
|
||||
CLONEPATH specifies the local path to the clone
|
||||
e.g. {dsk}<users>...>git-medley
|
||||
WORKINGPATH is optionally the local path to a corresponding Medley-residential working directory (e.g. {dsk}<users>...>working-medley>)
|
||||
When the project has a WORKINGPATH:
|
||||
EXCLUSIONS is a list of files and directories to be excluded from comparisons (beyond what its .GITIGNORE specifies)
|
||||
When the project has a working path:
|
||||
EXCLUSIONS is a list of files and directories to be excluded from comparisons (including what its .gitignore specifies)
|
||||
DEFAULTSUBDIRS is a list of subdirectories to be use in working-path comparisons when directories are not otherwise specified.
|
||||
|
||||
For convenience, if PROJECTPATH is NIL or T (and not a path), then a squence of probes based on PROJECTNAME attempts to find a clone directory (with a .git subdirectory):
|
||||
(UNIX-GETENV PROJECTNAME)
|
||||
(UNIX-GETENV (CONCAT PROJECTNAME 'DIR)
|
||||
(CONCAT MEDLEYDIR "../git-" PROJECTNAME)
|
||||
For convenience, if CLONEPATH is NIL or T (and not a path), then a sequence of probes based on PROJECTNAME attempts to find a clone directory (with a .git subdirectory):
|
||||
(UNIX-GETENV PROJECTNAME) e.g. (UNIX-GETENV 'LOOPS)
|
||||
(UNIX-GETENV (CONCAT PROJECTNAME "DIR") e.g.{UNIX-GETENV 'LOOPSDIR)
|
||||
(MEDLEYDIR PROJECTNAME)) a subdirectory of MEDLEYDIR
|
||||
(MEDLEYDIR (CONCAT "../" PROJECTNAME)) a sister of MEDLEYDIR
|
||||
(MEDLEYDIR (CONCAT "../git-" PROJECTNAME)
|
||||
(a sister of MEDLEYDIR named git-PROJECTNAME, e.g. git-notecards)
|
||||
Thus:
|
||||
If MEDLEYDIR is defined,
|
||||
(GIT-MAKE-PROJECT 'MEDLEY) will make the MEDLEY project
|
||||
(GIT-MAKE-PROJECT 'MEDLEY) will make the MEDLEY project
|
||||
If NOTECARDS is defined
|
||||
(GIT-MAKE-PROJECT 'NOTECARDS) will make the NOTECARDS project
|
||||
If NOTECARDS is not defined but the clone >git-notecards> is a sister of MEDLEYDIR, then the NOTECARDS project will still be created.
|
||||
If a clone is discovered and a project is created, the value of GIT-MAKE-PROJECT is PROJECTNAME. Otherwise, NIL will be returned if PROJECTPATH is T (= no-error), and PROJECTPATH=NIL will result in an error.
|
||||
If a clone is discovered and a project is created, the value of GIT-MAKE-PROJECT is PROJECTNAME. Otherwise, NIL will be returned if CLONEPATH is T (= no-error), and CLONEPATH=NIL will result in an error.
|
||||
When they are created, git projects are registered by name on the a-list GIT-PROJECTS, and they can otherwise be referenced by their names.
|
||||
The variable GIT-DEFAULT-PROJECT, initially MEDLEY, contains the project name used by the commands below when the optional PROJECTNAME argument is not provided.
|
||||
GIT-MAKE-PROJECT creates a pseudohost {projectname} whose path prefix is the path that resolved to the clone. The file GITFNS in the clone LISPUSERS directory, for example, can be referenced as {MEDLEY}<LISPUSERS>GITFNS.
|
||||
GIT-MAKE-PROJECT will also create a pseudohost {Wprojectname} for the user's working environment for the project. If WORKINGPATH is provided, that will be the prefix for that pseudohost. If WORKINGPATH is NIL and a directory named working-projectname> is a sister to the clone directory, the pseudohost will point to that.
|
||||
|
||||
When GITFNS is loaded, GIT-MAKE-PROJECT is called for MEDLEY, NOTECARDS, and LOOPS, with PROJECTPATH=T. Thus, those projects will be created automatically, if MEDLEYDIR is defined and the relevant directories exist in their expected relative positions.
|
||||
When they are created, GIT-PROJECTS are registered by name on the a-list GIT-PROJECTS, and they can otherwise be referenced by their names.
|
||||
The variable GIT-DEFAULT-PROJECT, initially MEDLEY, contains the project name used by the commands below when the optional projectname argument is not provided.
|
||||
GIT-MAKE-PROJECT also creates a pseudohost {Gprojectname} whose path prefix is the prefix for the project's clone. If WORKINGPATH is provided, then a second pseudohost {Wprojectname} points to the working files for the project.
|
||||
GITFNS also defines two directory-connecting commands for conveniently connecting to the git and working pseudohosts of a project:
|
||||
cdg (projectname) (subdir) [command]
|
||||
cdw (projectname) (subdir) [command
|
||||
For example, cdg notecards library connects to {GNOTECARDS}/library/.
|
||||
(GIT-INIT EVENT) [Function]
|
||||
GIT-INIT creates the default set of projects when GITFNS is loaded, as specified in the variable GIT-DEFAULT-PROJECTS, initially containing MEDLEY NOTECARDS LOOPS TEST. GIT-INIT is added to AROUNDEXITFNS so that new pseudohost bindings for the default projects will be created if the sysout or makesys is started on a new machine.
|
||||
|
||||
GIT-DEFAULT-PROJECTS [Variable]
|
||||
Determines the projects that are created (or recreated) by GIT-INIT. This is initialized for the MEDLEY NOTECARDS LOOPS TEST projects, with CLONEPATH=NIL
GITFNS also defines two directory-connecting commands for conveniently connecting to the git and working pseudohosts of a project:
|
||||
cdg (projectname) (subdir) [Command]
|
||||
cdw (projectname) (subdir) [Command]
|
||||
For example, cdg notecards library connects to {NOTECARDS}/library/.
|
||||
|
||||
Comparing directories and files in different git branches
|
||||
In its simplest application, GITFNS is just an off-to-the-side add-on to whatever work practices the user has developed with respect to a locally installed git project. Its only advantage is to allow for more interpretable git-branch comparisons, especially for pull-request approval. These comparisons are provided by the prc ("pull request compare") Medley executive command:
|
||||
prc (branch) (DRAFT) (projectname) [command]
|
||||
This compares the files in branch against the files in the main branch of the project (origin/master or origin/main). Thus, suppose that a pull request has been issued on github for a particular branch, say branch rmk15 of the default project. Then
|
||||
prc rmk15
|
||||
prc (branch) (DRAFT) (projectname) [Command]
This compares the files in branch against the files in the main branch of the project (origin/master or origin/main). Thus, suppose that a pull request has been issued on github for a particular branch, say branch rmk15 of the default project. Then
prc rmk15
|
||||
brings up a lispusers/COMPAREDIRECTORIES browser for the files that currently differ between origin/rmk15 and origin/master. If the selected files are Lisp source files, the Compare item on the file browser menu will show the differences in a lispusers/COMPARESOURCES browser. The differences for other file types will be shown in a lispusers/COMPARETEXT browser.
|
||||
If branch is not specified and the shell command gh is available, then a menu of open pull-request branches will be provided. If gh is not available, the menu will offer all known branches. If the optional DRAFT is provided, then the menu will include draft PR's as well as open ones.
|
||||
If one PR, say rmk15, contains all the commits of another (rmk14), then the menu will indicate this by
|
||||
rmk15 > rmk14
|
||||
Note that the prc comparison is read-only: any comments, approvals, or merges of the branch must be specified using the normal Medley-external git interfaces and commands.
|
||||
|
||||
prc is the special case of the more general bbc command ("branch-branch compare) for comparing the files in any two branches:
|
||||
bbc branch1 branch2 (project) [command]
|
||||
This compares the files in branch1 and branch2, for example
|
||||
Note that the prc comparison is read-only: any comments, approvals, or merges of the branch must be specified using the normal Medley-external git interfaces and commands.
prc is the special case of the more general bbc command ("branch-branch compare") for comparing the files in any two branches:
|
||||
bbc branch1 branch2 (project) [Command]
This compares the files in branch1 and branch2, for example
|
||||
bbc rmk15 lmm12 (local)
|
||||
This will compare the files in origin/rmk15 and origin/lmm12 in the GIT-DEFAULT project. branch1 defaults to the origin files of the currently checked out branch, the second defaults to origin/master. If local is non-NIL, then a branch that has neither local/ or origin/ prepended will default to local (e.g. local/rmk15) instead of origin/. Local refers to the files that are currently in the clone directory, which may not be the same as the origin files, depending on the push/pull status.
|
||||
Either of the branches can be specified with an atom LOCAL, REMOTE, or ORIGIN, in which case bbc will offer menus listing the currently existing branches of that type.
|
||||
NOTE: Branch comparison makes use of a git command that has a limit (diff.renameLimit) on the number of files that it can successfully compare. A message will be printed if that limit is exceeded, asking whether a larger value for that limit should be applied globally.
|
||||
|
||||
The command cob ("check out branch") checks out a specified branch:
|
||||
cob branch (nexttitlestring) (project) [command]
|
||||
NOTE: Branch comparison makes use of a git command that has a limit (diff.renameLimit) on the number of files that it can successfully compare. A message will be printed if that limit is exceeded, asking whether a larger value for that limit should be applied globally.
The command cob ("check out branch") checks out a specified branch:
|
||||
cob branch (next-title-string) (project) [Command]
|
||||
This checks out branch of project and then executes git pull. The branch parameter may also be a local branch, T (= the current working branch), or NEW/NEXT (= the next working branch). The current working branch is the branch named <initials>nnn, e.g. rmk15. The initials are the value of INITIALS as used for SEDIT time stamps, and nnn is the largest of the integers of all of the branches beginning with those initials.
|
||||
If branch is NEW or NEXT, then a new initialed branch is created and becomes the user's current branch. Its number is one greater than the largest number of previous initialed branches. If nexttitlestring is provided, then that string will be appended to the name of the branch, after the initials and next number, and two hyphens. Spaces in nexttitlestring will also be replaced by hyphens, according to git conventions.
|
||||
If branch is not provided, a menu of locally available branches pops up.
|
||||
|
||||
The currently checked out branch is obtained by the b? command:
|
||||
b? (project) [command]
|
||||
|
||||
If branch is NEW or NEXT, then a new initialed branch is created and becomes the user's current branch. Its number is one greater than the largest number of previous initialed branches. If next-title-string is provided, then that string will be appended to the name of the branch, after the initials and next number, and two hyphens. Spaces in next-title-string will also be replaced by hyphens, according to git conventions.
|
||||
If branch is not provided, a menu of locally available branches pops up.
The currently checked out branch is obtained by the b? command:
|
||||
b? (project) [Command]
|
||||
Correlating git source control with separate Medley development
|
||||
It is generally unsafe to do Medley development by operating with files in a local clone repository. Medley provides a residential development environment that integrates tightly with the local file system. It is important to have consistent access to the source files of the currently running system, especially for files whose contents have been only partially loaded. A git pull or a branch switch that introduces new versions of some files or removes old files altogether can lead to unpredictable disconnects that are hard to recover from. This is true also because development can go on in the same Medley memory image for days if not weeks, so it is important to have explicit control of any file version changes.
|
||||
GITFNS mitigates the danger by conventions that separate the files in the git clone from the files in the working Medley development directory. The location of the Medley development source tree for a project is given by the WORKINGPATH argument to GIT-MAKE-PROJECT. If WORKINGPATH is T or NIL and there exists a directory >working-projectname> as a sister to the clone, then that is taken to be the WORKINGPATH and thus the prefix for a pseudohost {Wprojectname}.
|
||||
When Medley development is carried out in the WORKINGPATH, the variable MEDLEYDIR should point initially to the working directory, and the directory search paths (DIRECTORIES, LISPUSERSDIRECTORIES, FONTDIRECTORIES, etc.) all have MEDLEYDIR (or {WMEDLEY}) as a prefix. In that case, the clone for the project, if PROJECTPATH doesn't specify it explicitly, should be located at the >git-medley> sister directory of MEDLEYDIR.
|
||||
Any back and forth transfer of information between the git clone and Medley development must be done by explicit synchronization actions. Crucially, Medley-updated files do not appear in the clone directories and new clone files do not move to the Medley directories without user intervention.
|
||||
The files in Medley working tree and the git clone of a project can be compared with the gwc ("git-working-compare") command:
|
||||
gwc subdirectories (project) [command]
|
||||
This produces a browser for all the files in the corresponding WORKINGPATH subdirectories that differ from the files in the currently checked out branch of the git clone. If subdirectories is omitted, it defaults to the DEFAULTSUBDIRS of the project. If it is ALL, then files in all subdirectories that are not found in the project's EXCLUSIONS are compared.
|
||||
In addition to the commands for comparing and viewing files, the menu for this browser also has commands for copying files from the git clone {Gprojectname} to {Wprojectname} and deleting files from {Wprojectname}.
|
||||
gwc subdirectories (project) [Command]
|
||||
This produces a browser for all the files in the corresponding WORKINGPATH subdirectories that differ from the files in the currently checked out branch of the git clone. If subdirectories is omitted, it defaults to the DEFAULTSUBDIRS of the project. If it is ALL, then files in all subdirectories that are not found in the project's EXCLUSIONS are compared.
|
||||
In addition to the commands for comparing and viewing files, the menu for this browser also has commands for copying files from the git clone {projectname} to {Wprojectname} and deleting files from {Wprojectname}.
|
||||
If the master/main branch is the current branch then the menu has no commands to change the clone directory. The browser will show those files that have been updated from a recent merge, and they can individually be copied from the git branch to realign the two source trees with incremented Medley version numbers. If the comparison is with a different branch, say the user's current staging branch, copying files from the working Medley to the git clone or deleting git files will set git up for future commits.
|
||||
Note that the menu item for deleting Medley files will cause all version to be removed, not just the latest one, to avoid the possibility that an earlier one is revealed. Deletion for Medley files is also accomplished by renaming to a {Wprojectname}<deletion> subdirectory so that they can be recovered if a deletion is in error. Files in the git-clone are removed from the file system immediately, since git provides its own recovery mechanism for those files.
|
||||
GITFNS does not (yet?) include functions for commits, pushes, or merges for updating the remote repository. Those have to be done outside of Medley through the usual github interfaces, as guided by the information provided by the comparisons.
|
||||
| ||||