From 32128f5e19ebb411c7952a7eafcbefc0f9d41fd3 Mon Sep 17 00:00:00 2001 From: Larry Masinter Date: Tue, 28 Jun 2022 11:45:59 -0700 Subject: [PATCH] MEDLEY-UILS loadup-db run-medley fixes (#808) * MEDLEY-UILS loadup-db run-medley fixes * UNIXCOMM compile to DFASL; only set UTF-8 if getenv(LANG). loadup-db no lisp.virtualmem --- internal/MEDLEY-UTILS | 124 ++++++-- internal/MEDLEY-UTILS.LCOM | Bin 7339 -> 10480 bytes internal/test/printing/BADFILES.TEST | 1 + internal/test/printing/BADFILES.TXT | 66 ++++ library/PCTREE | 113 +++---- library/PCTREE.LCOM | Bin 9217 -> 9087 bytes library/UNIXCOMM | 132 ++++---- library/UNIXCOMM.DFASL | Bin 0 -> 8456 bytes library/UNIXCOMM.LCOM | Bin 8683 -> 0 bytes run-medley | 3 +- scripts/copy-all.sh | 11 +- scripts/cpv | 61 ++++ scripts/loadup-all.sh | 3 + scripts/loadup-db.sh | 32 ++ sources/UNIXCOMM | 460 --------------------------- sources/UNIXCOMM.LCOM | 460 --------------------------- 16 files changed, 387 insertions(+), 1079 deletions(-) create mode 100644 internal/test/printing/BADFILES.TEST create mode 100644 internal/test/printing/BADFILES.TXT create mode 100644 library/UNIXCOMM.DFASL delete mode 100644 library/UNIXCOMM.LCOM create mode 100755 scripts/cpv create mode 100755 scripts/loadup-db.sh delete mode 100644 sources/UNIXCOMM delete mode 100644 sources/UNIXCOMM.LCOM diff --git a/internal/MEDLEY-UTILS b/internal/MEDLEY-UTILS index 851c3a98..33afdd27 100644 --- a/internal/MEDLEY-UTILS +++ b/internal/MEDLEY-UTILS @@ -1,29 +1,30 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10) -(FILECREATED "31-May-2022 09:37:37" |{DSK}larry>medley>internal>MEDLEY-UTILS.;3| 12695 +(FILECREATED "25-Jun-2022 17:17:53" |{DSK}larry>medley>internal>MEDLEY-UTILS.;4| 15853 - :CHANGES-TO (FNS HCFILES) + :CHANGES-TO (FNS PICK) - :PREVIOUS-DATE "12-Mar-2022 12:46:25" |{DSK}larry>medley>internal>MEDLEY-UTILS.;1|) + :PREVIOUS-DATE "25-Jun-2022 10:57:30" |{DSK}larry>medley>internal>MEDLEY-UTILS.;3|) (PRETTYCOMPRINT MEDLEY-UTILSCOMS) -(RPAQQ MEDLEY-UTILSCOMS ((FNS GATHER-INFO MEDLEY-FIX-LINKS MEDLEY-FIX-DATES) - (VARS MEDLEY-FIX-DIRS) - (FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH) - - (* |;;| "hardcopy files") +(RPAQQ MEDLEY-UTILSCOMS + ((FNS GATHER-INFO MAKE-FULLER-DB MEDLEY-FIX-LINKS MEDLEY-FIX-DATES PICK) + (VARS MEDLEY-FIX-DIRS OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL) + (FNS MAKE-EXPORTS-ALL MAKE-WHEREIS-HASH) + + (* |;;| "hardcopy files") - (FNS HCFILES) - (INITVARS (HCFILES)))) + (FNS HCFILES BADFILE) + (INITVARS (HCFILES) + (BADFILES)) + (COMMANDS "pick"))) (DEFINEQ (GATHER-INFO - (LAMBDA (PHASE) (* \; - "Edited 26-Dec-2021 18:56 by larry") - (* \; - "Edited 24-Oct-2021 09:43 by larry") + (LAMBDA (PHASE) (* \; "Edited 26-Dec-2021 18:56 by larry") + (* \; "Edited 24-Oct-2021 09:43 by larry") (SELECTQ PHASE (ALL (|for| I |from| 0 |to| 4 |do| (GATHER-INFO I))) (0 (SETQ SYSFILES (UNION SYSFILES FILELST)) @@ -105,34 +106,78 @@ (-4 "No queries yet") (HELP)))) +(MAKE-FULLER-DB + (LAMBDA NIL (* \; "Edited 20-Jun-2022 17:23 by larry") + (FILESLOAD (SOURCE) + FILESETS) + (DRIBBLE (MEDLEYDIR "tmp" "fuller.dribble" T T)) + (DOFILESLOAD (APPEND OKSOURCES OKLIBRARY OKLISPUSERS OKINTERNAL)) + (GATHER-INFO 'ALL) + (MASTERSCOPE '(WHO CALLS XYZZY)) + (DUMPDATABASE NIL (MKATOM (MEDLEYDIR "tmp" "fuller.database" T T))) + (DRIBBLE) + (MAKESYS (MEDLEYDIR "tmp" "fuller.sysout" T T) + "Welcome to Fuller sysout"))) + (MEDLEY-FIX-LINKS - (LAMBDA (UNIXPATH) (* \; - "Edited 18-Jan-2021 12:01 by larry") + (LAMBDA (UNIXPATH) (* \; "Edited 18-Jan-2021 12:01 by larry") (OR UNIXPATH (SETQ UNIXPATH (UNIX-GETENV "MEDLEYDIR")) - (ERROR "No Directory")) (* \; - "Edited 18-Jan-2021 11:45 by larry") + (ERROR "No Directory")) (* \; "Edited 18-Jan-2021 11:45 by larry") (|ShellCommand| (CONCAT "cd " UNIXPATH " && /bin/sh scripts/fixlinks && /bin/sh /tmp/doit")))) (MEDLEY-FIX-DATES - (LAMBDA (DIRS) (* \; - "Edited 28-Jan-2021 12:15 by larry") - (|for| X |in| (OR DIRS MEDLEY-FIX-DIRS) |join| (FIX-DIRECTORY-DATES - (MEDLEYDIR (PRINT X T)))))) + (LAMBDA (DIRS) (* \; "Edited 28-Jan-2021 12:15 by larry") + (|for| X |in| (OR DIRS MEDLEY-FIX-DIRS) |join| (FIX-DIRECTORY-DATES (MEDLEYDIR (PRINT X T)))))) + +(PICK + (LAMBDA (TYPE CHOICES) (* \; "Edited 25-Jun-2022 16:58 by larry") + (SELECTQ (MKATOM (U-CASE (MKSTRING TYPE))) + (NIL (PICK (PICK 'ONEOF '(FILE ISSUE PROJECT)))) + (ISSUE (LET ((ISSUE (PICK 'ONEOF (OR CHOICES (GIT-COMMAND + "gh issue list -L 5000 -R interlisp/medley | sed 's/\\([0-9]*\\).*/\\1/'" + )))) + (STR (OPENTEXTSTREAM))) + (|for| S |in| (GIT-COMMAND (CL:FORMAT NIL "gh issue view ~a" ISSUE)) + |do| (CL:FORMAT STR "~a~&" S) + |finally| (TEDIT STR NIL NIL `(READONLY T TITLE ,(CL:FORMAT NIL "Issue #~a" + ISSUE)))))) + (DIR (PICK 'ONEOF '(LISPUSERS LIBRARY DOCTOOLS SOURCES INTERNAL))) + (FILE (PICK 'ONEOF (DIRECTORY (MEDLEYDIR (PICK 'DIR))))) + (PROJECT (PICK 'ONEOF '(CLOS ROOMS LOOPS NOTECARDS ONLINE TEST GITBOOK COMMUNITY ENVOS))) + (ONEOF (CAR (NTH CHOICES (RAND 1 (LENGTH CHOICES))))) + (HELP TYPE "Unknown type")))) ) (RPAQQ MEDLEY-FIX-DIRS ("sources" "library" "lispusers" "internal" "greetfiles" "doctools")) + +(RPAQQ OKSOURCES (RENAMEFNS VMEM READSYS CASH-FILE HASH-FILE MEDLEYDIR MAKEINIT)) + +(RPAQQ OKLIBRARY + (POSTSCRIPTSTREAM CHATTERMINAL DMCHAT CHAT PRESS TEDITDCL PCTREE TEXTOFD TEDITCOMMAND + TEDITSCREEN TEDITABBREV TEDITLOOKS TEDITFIND TEDITHISTORY TEDITFILE TEDITWINDOW + TEDITSELECTION READNUMBER EDITBITMAP IMAGEOBJ TFBRAVO TEDITHCPY TEDITPAGE TEDITMENU + TEDITFNKEYS TEDIT HRULE TEDITCHAT TABLEBROWSER FILEBROWSER GRAPHER SPY WHERE-IS + COPYFILES MSANALYZE MSPARSE MSCOMMON MASTERSCOPE UNIXCOMM UNIXPRINT UNICODE HASH + CLIPBOARD UNIXCHAT VT100KP VTCHAT SKETCH SKETCHBMELT SCALEBITMAP SKETCHOBJ SKETCHEDIT + SKETCHELEMENTS SKETCHOPS MATMULT SAMEDIR)) + +(RPAQQ OKLISPUSERS (THINFILES ISO8859IO DINFO HELPSYS MODERNIZE WHEELSCROLL PRETTYFILEINDEX WHO-LINE + BACKGROUND-YIELD OBJECTWINDOW REGIONMANAGER COMPARETEXT EXAMINEDEFS + COMPARESOURCES COMPAREDIRECTORIES PSEUDOHOSTS DATEFORMAT-EDITOR DOC-OBJECTS + EQUATIONS BICLOCK FILEWATCH LIFE IDLEHAX GITFNS TMAX IMTOOLS)) + +(RPAQQ OKINTERNAL (MEDLEY-UTILS)) (DEFINEQ (MAKE-EXPORTS-ALL - (LAMBDA NIL (* \; - "Edited 9-Mar-2021 16:11 by larry") + (LAMBDA NIL (* \; "Edited 9-Mar-2021 16:11 by larry") (* "Edited May 3, 2018 by Ron Kaplan--relative to MEDLEYDIR/lispcore/. Don't know why it does the CORE/RENAME") (* - "Edited Aug 17 94 by Sybalsky -- point it to /king/export/lispcore as the truth directory.") + "Edited Aug 17 94 by Sybalsky -- point it to /king/export/lispcore as the truth directory.") (* - "Edited July 5, 1990 by Sybalsky -- point it to Pele as the truth directory.") + "Edited July 5, 1990 by Sybalsky -- point it to Pele as the truth directory.") (* - "Edited September 29, 1986 by van Melle") + "Edited September 29, 1986 by van Melle") (CNDIR (MEDLEYDIR "sources")) (LOAD 'FILESETS) (GATHEREXPORTS EXPORTFILES (MEDLEYDIR "tmp" "exports.all" T)))) @@ -159,7 +204,8 @@ (DEFINEQ (HCFILES - (LAMBDA (TFILE DEST REDOFLG TOPDIRLEN) (* \; "Edited 31-May-2022 09:31 by larry") + (LAMBDA (TFILE DEST REDOFLG TOPDIRLEN) (* \; "Edited 21-Jun-2022 22:59 by larry") + (* \; "Edited 31-May-2022 09:31 by larry") (* \; "Edited 20-Feb-2022 12:16 by larry") (* \; "Edited 21-Aug-2021 20:56 by larry") (DECLARE (SPECVARS TFILE)) @@ -217,6 +263,8 @@ |elseif| (EQ REDOFLG 'TEST) |then| (PRINTOUT T TFILE "-> " PSFILE T) (CLOSEF (OPENTEXTSTREAM TFILE)) + ELSEIF (MEMBER TFILE BADFILES) + THEN (PRINTOUT T "Skipping " TFILE " on BADFILES") |else| (PRINTOUT T "Converting " TFILE " to " PSFILE "...") (TEDIT.FORMAT.HARDCOPY (SETQ TEXTSTREAM (OPENTEXTSTREAM TFILE)) PSFILE T NIL NIL NIL (|if| (EQ REDOFLG 'IP) @@ -225,11 +273,25 @@ (|printout| T " DONE" T) (CLOSEF? TEXTSTREAM)))) (T (PRINTOUT T "no such file " T))))) + +(BADFILE + (LAMBDA NIL (* \; "Edited 22-Jun-2022 09:40 by larry") + (PUSHNEW BADFILES TFILE) + (LET ((STR (OPENSTREAM "BADFILES.TXT" 'APPEND))) + (SETFILEPTR STR -1) + (PRINT TFILE STR) + (CLOSEF STR)) + (RETFROM 'HCFILES))) ) (RPAQ? HCFILES ) + +(RPAQ? BADFILES ) + +(DEFCOMMAND "pick" (FIRST . REST) + (PICK FIRST REST)) (DECLARE\: DONTCOPY - (FILEMAP (NIL (699 7147 (GATHER-INFO 709 . 6249) (MEDLEY-FIX-LINKS 6251 . 6774) (MEDLEY-FIX-DATES 6776 - . 7145)) (7246 9096 (MAKE-EXPORTS-ALL 7256 . 8272) (MAKE-WHEREIS-HASH 8274 . 9094)) (9131 12650 ( -HCFILES 9141 . 12648))))) + (FILEMAP (NIL (724 8547 (GATHER-INFO 734 . 6144) (MAKE-FULLER-DB 6146 . 6684) (MEDLEY-FIX-LINKS 6686 + . 7083) (MEDLEY-FIX-DATES 7085 . 7327) (PICK 7329 . 8545)) (9823 11616 (MAKE-EXPORTS-ALL 9833 . 10792 +) (MAKE-WHEREIS-HASH 10794 . 11614)) (11651 15716 (HCFILES 11661 . 15401) (BADFILE 15403 . 15714))))) STOP diff --git a/internal/MEDLEY-UTILS.LCOM b/internal/MEDLEY-UTILS.LCOM index de41090c458538bdcdba8f13dcc5ac0bd18c78e3..d57fcdf95052afb505d44ef085d359e4ac0582ad 100644 GIT binary patch literal 10480 zcmb7KTWlNYbrvP>Zp>^pqU_!5s;>KYval()lxK!_?Lw;|ITS~{49%e|$*V*wiQFY) zNmN8R8@K8LE%K0F&=!j}KwcZ5HxvOaM}0_u@~Mw)A9_Jhpy=hLKwsjf?Ngh$-#P!> zBzucy*BJf(KmYZd^PlsbZx}C`WvgK(%2v%xSdFqRt~ZTh)mS!#Vl~=kt7bV(MO<&0 zMyYKSYG__B*3eKe98+lOTr?V|u|;%fn>BP!|gM_Z?y3n!<_?J#9BChNX_7D4e z-HsR>2t}OyV#%rg(%Zekes^(i`{?N5;(oWY*L}FyKRE6l9c=F{*3DAQ+(@jpt(r6c zR_Y`=cVTXILCq|ra+qu9sO!ysB2IRD+Xo+XhYKg7X%(yDqd!-tp?3(b~!*RofgLDZbO_o9JvCwBe^oRqbQ{V-&x)FDlyEj&35ObT0%zr#*>?Qaym0K*R*}0TRnf2$ zvW^i+jaI^yB>7NXcTeb6lXM8ToD$y5)GVJFMte@Y@cEy*40Ux_qEAkLdc1e( zOR>p_Rr!yPA6@!yi`6)`?*Glk=m%eVa(eSUk~u$E`k$j}kDmi7a`)+_&iyC9_h{np z#xeEMd(=Doa}X*5@_P^;%fVt!4NvKR&6W-%ECo6HQ09uD?fzyY~2+eZ3=#-`=`5wr9_- z*w?Vp*{#>d_G^<{uRVJD(7twKYj*U*rOw_YZT6ev*z`0Xn>RJK#mw$vCl-65Hgy)e z(%Y4niQi2}zQBJ^HL0pP*I2Bv*o>|4fnv&Qc6{n=>g$oMTVwmi)Y;`LS89`+qsNi0 zpC8S3B3p0Tx9T}6>9vrA)|Sql7`vas?jyf5 z=F>i!_`{1PG=64}ZVRtF`ZD^*Ubp8XeDo)$TlV~D4ZBk(Bep6Vx#NGH{v7JAIzsyy zd%bLo;6sc)_xz4H+aF!QT-{5nOz8JFk zQI#sQb}BI1(;MMhy*JBqj_s7KUwe$6wm!S1|EAjquch>9Uw_KG`odC^R$_lPSN5(Bbva z@_A8r8g|<%!i57XXucG-1NU5IuQ>reCwFSp)CrVbiY_`ls(G0Hc@q>yF3*^?AcG`CL$Div}3Y z;5z$rrJHYn%^v0z?hnr$_mA48?Cn0SU%@DB_hVAkx^+Hl%bR#9PA$V z2M0sS0QUz+NXC$gZ*4Vh5Sp!9aAsdU&LW92|yn3*ECh6;DNE zptJC(Z6tUdv3=0Nm}AlDzTZFScCe2$R39(Y>|!OYA?T@`hy%yhk)s$+4ITut7VUMCcOL89n!oiHLqvLxD%|Em!?Jj6E_pCF}R|i%wEvVgmt~ojK;iVG^i~pl;izF z+!UCL`x2za_RjXOi$)j@zs;&5zE-hiEEMY-_wFHuhG7L`j`}-0dl-UvBZs6yX60KO z>`HPqWotcAvl>+=$oCNk))7K0uoWHl5LtRW%L-#J#`%a>Ydhkqqv;)v^(`bP74^3B-G|an~gxL=sn5+_)ib@AMCD4|`&` zd(=NX9^QVx|JA+z!Tn+Q-EGL^c4yFs1B8y0UAosg{0qEesSkqbcyRO(E=MT7&cFqQ z4o>*ZJ$Mt>WSw~dL{z#pDOb^8+13FSTEu(2bqQ=rOr2ahyV)MS*+D)qRh7V&56+L7 z^{H=IXD?UoZBU-|4=Xa`-Ke}V`gbrdx{T)F58P>GKxc-?A<_6drGpS)X!{HeQ)5i@ z&}NzF5Kfzz5LH-?vua}dnkZImAX$fx(%xvAb0VVR!cR&PDA?!O8+@08tJvF_9Pdnw z{@!CBjwMPr&Rz}_9^7fr67t?x0>#H-Q!7(vajPe%=<@>MUWDss*~#>#Bj2-l-m1)s zRwnO_{@h#oRk<|3=UqK|TJqk#8A=|4({Rb{`i9r_*=c_KBi_@K)7Omq29F8+TVz@q zvgenQfTEmX=((I|v@76+lA>iafY-7)Q8OFM)CPwTf@O$uAq4`8u+B696=2S?-KxX> zWsX4c0ZB}#9S&{TY9|mx>a+;FS}+C+BDDcawBClsO`|Td0IWonX3mcS^W-k+c}Juh zs|cN-x?o&Yj7HRlw;~j3H%uGh0_l=hB9pUMV3Xj~;Pikkb)XITR?AD=3VIE@;h`EZ z8g{Sa!UfgyQ5(q9q^p}n7&f%9d@Ufwg&W0UC>L%YKen?i%vv8E0QCk($HRGGIXGnaVGdb{LmuXF zPvqkL1PIuQNBDZ&EVa?R?A1_!wa%N3)wixcl5IzmuurLES?LL=s(qFxckAsy~lt1pLvO}(njavq&%2W4?`Px z2M@sDvLo5#q>nDjIV7P0>EIL1!UBsXVL1s&NC?DxH*5l4_~O5yD1aIdo`gD)j_Auk z!(1b0vOtoRpNt#}X&aQkAnk{e3W}N^_PR&i{&2pxJ?s%8fks(@z)%3Nz^|m^aHj;n z_7zQt!+YKFU=TPkT2p725GB9MtHolMs#9mz`ZK3jR(O(cu6X0e*5t9r@d7_x;_YiZ0k;_aCm%OPNiOrl zer0d6`2GE-feeBY4{LCp`?_n$iNO1PJhor?3}2U6>~i7khArXJ={0*=?)KS@yZbuT zT#ou2ap?_nNzD-GnO<7E%F;O%p*h_-LM_vw^7#K;BGgf?vo(X|d!3FaIX>mr_$l2* zXoR~#dxrG@Uy;Fuq|j%U-$8isiNOp-bS5w}02iEB&PyOMUqMU+v0xd#h7;O~A)WwBU00%CAmO@7B zjs`d4mVEv%mBihZEN#kXBU1#K__QhD4t&~1BmmeYb`Br7sYVWTUZNP0#I&w=Od^6) z7f$P))dFrl(QvB`*$A?M8wva{%8)NEPDp9IyQhFS*0DQpCpvN#EZzh{AwsSuft7~+ zdG3wS2mFzQ^|Vgm9YnHVx`J7zghe>I6#7JsH@p!0#guypUIc#Pb3~CY(+Q zTBf$(!c?TQ-dUM)^dv|hRl}R5V1KRw--qKFqKIv$?G#&96TB7n#@Gp;w;cynUBE4; zumt0>WR@|Z6acb0hz4V!tE^i9X|{-TEhiGd2(FVSh>b~fSZzR^=@{#82494eG9Vxd z1+CdYID{!Ph^h)w{D!HBG(@A&&jXl4Qs`#{C{he74i3K3Jvx>=SsMFMh~Dx-13Ibb zYyT-1$E}L|TVV%wg**AajG#`t+yXfR+xMJ>q}X8!pf&N9 zt~Ry;6C~e-T_LT34zYj#F6D(}*GaX6E<6>@gIUAT;;_JWdjlB&`HZ$}3i9VCXmrq{ z)imzhdFBNe5&9Y*W`-`%Y*L^ME+sn>YLKh}rCD<#e%Am|<}Kh+1tD@SAm*s#B_&}( zj<>?ghmk%vgn{y$h{kV;legZ&uUvZDN1ffl;X}zy!hCoRPi(G~&}tzsq790;`wnfM z4ChdGb4^DmhyC6A${bRT^Aht96!$T_Q1<#eN83cKpfo&uFzg3aM779q@#sr^wPX|;HjiZ zfe7 zCtOCF3jU0X_z{RZv|>5@sm5&va zVGapidAVgY@p%S>`iA@-gCqozrMW@()WH{0?{iPxX~LpRw2*MH_b}ZWB|?wdITXoT zi6;JL$Jt)7W;F{ofD3nEUEFPJs#d;bBWj$t81FX5+Z7q$!J0XCE|<<*Hew9@u#N~IGRQi< zI<^{=H{nj=<4>_=BORCiha?28n(KIH6PaoXc->-kxn-|5N{J2r#)l0<*RJ+k<}$Pn zng{x8LCSTA6eQ?+8_~~zp_=%bMbhVXkLGu)UhK1=m1xs3S4%bpScgAGOJtZJnSfvg z<&luNlO$_cb13KkqPkP>Zs%^+FVtTMPmd`+wv>%^;&Z-o6Jzp6835)F&ZqfJEI zb&33IKd;9-p7VAu`#XM^K?6=jwn6NcbT~wNv;Yp~aq%5|D~U6ACEK_~a-aVTX6A3- delta 2341 zcmZWr&2QXP5RcQOO;_5a^g|T2MN=oLc7rzc^Yin^BGI_sw~ZyQy|JA%K^0P9(-N8{ zRTB^`5&H*l=*I&Iajc4j#Dz9Tgu;yj5|t2~`WJ9OO~r)^l(Ex1Y0X> zTOc>*JP%Z>k25tjCBs%{X>+-=1tod!7P0CIt!s*0EmaZ>C**d_8!w%d#UX?EMN*qU zRNZ1wsyj2be}PA}IDksik01-93iWo#=iOi~sx=S|WTIj)H+nBc)VikERVIFxs6@7( zOHZUjCr=z4kfu9V2Jmn9k-Z~Eh9+Qj=;|wjk~{O)y@x}O-Gj;Aj(hdD#qXY8-M#;C z;CG=9{aTvtTzj5q-|UF7;Rgp+2NUH>@x$;JRowb__tB}H^~7_flsqp^_kLGWv_q@= z&{`7PpX|RQjiC8IyN}EracG1cSRG1mz81mAeQ8=e8#&rl7|d|5jqh%%(6XbLhmjMs zIWA}fP-}-S%2Wdse1f8?7b4LL3t|yyMSc*w4o?yegcus6C&Hmk>rE z%_bol%aIACePm+ok!fLqk!K+(Rv%h1b7-O%W?_LrU*K^&4BB9s1ln_%++_+}y5u{7 z@2FsDYTrsV`?6xCZ-QL#q8LoQ4`yO;y(mm2KiIG^L)igF5rctVJxhaW1$5USv``GC zADNCI$k|4kOWmZ9W>LpvWi`=@Z0R&VnOPW3b~3a2z$~%I*QpAQ?Rk;o1P$H=ModV> zHi`;Tpl!!ND*`R$L#|*3vU4>hF9Ed-aJ+iN<66UQHhIW>hXXb9tW(3tov5K?FHeyM zdz`wt7qhSqcDv2}h6+^6--uGZz);bG17 zn*nJ09`36Q=6pBsaTX;b24?31oE}7FDs%%s=`;gu-}V;YPF9fw(PET#PSQly9!*gR z@P&2=mO(1WEG%vztNnEo8B_q7Isqhk%zfl99+z))!N7(|F%8Yi1f+fg)9LeB zFcf4*=BHaqUru?A-K1kZb1-1oW{%?k!`|GJ4O>wZ6*Q#7ON#`$8df!V*QBvDq+)@k zVwWW8#X>3=7e*do3IR)(u9|w<5j<^>#2JZ_o4noEr9hH#)MmzkVcQa zp@3|!Ev??XwX${v;>jCsT*Y;2343&6pMrkxk5(jA+#MZ1f^95M zqMKo;_>@7XMEo>*W>7Q4(@_nLCdS535s;(x4{yA;ya8+Lo3OgR)LHJ-K`sGRsOXF- z^9ocvCul*VX-6J1ACH81AvqS?N}imWd=n$XX&`U(a8RR439l(kAvR)E#U%beYH|MX z=fh>+^~&PO;diC7c$`DkSINI3#KOeov2(>oMG4DN`VZPDRp9^t diff --git a/internal/test/printing/BADFILES.TEST b/internal/test/printing/BADFILES.TEST new file mode 100644 index 00000000..a7067a53 --- /dev/null +++ b/internal/test/printing/BADFILES.TEST @@ -0,0 +1 @@ +(HCFILES "{DSK}larry>ilisp>envos>" "{DSK}larry>medley>tmp>psfiles>") diff --git a/internal/test/printing/BADFILES.TXT b/internal/test/printing/BADFILES.TXT new file mode 100644 index 00000000..da197495 --- /dev/null +++ b/internal/test/printing/BADFILES.TXT @@ -0,0 +1,66 @@ +{DSK}larry>ilisp>envos>xd0e>DOC>PUBS>admin>doc-dirs>ERIS-DOC-WO-LOOPS.TEDIT;2 +{DSK}larry>ilisp>envos>xd0e>DOC>medley1.2>RS6000>keybaord-layout.tedit;3 +{DSK}larry>ilisp>envos>xd0e>DOC>medley2.0>final>ug>APP-D-DIFFERENCES.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>DOC>printers>recommendation.tedit;3 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>1982BUGS.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>BRIEFINGBLURB-DRAFT.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>CHAT-GENERIC.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>HELLO.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>IDDESCRIPTION.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>LISPARFIELDS.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>NSCHARACTERS.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>DOC>SOURCEFILES.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>library>COLOROBJ.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>internal>library>DSKTEST.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>notecards>library>BOONE-V-COE.TED;1 +{DSK}larry>ilisp>envos>xd0e>LISPCORE>notecards>library>NCPLOTCARD.TED;1 +{DSK}larry>ilisp>envos>xd0e>MISC>test>GC>HAND-AUX>ADVDICT-N-Z.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>MISC>test>Library>TEdit>Hand-Aux>AR10063.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>MISC>test>i>o>Hardcopy>Hand>testfiles>04PARA.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>OTHER>lafite>Doc>LAFITEDELTA.TED;1 +{DSK}larry>ilisp>envos>xd0e>OTHER>lafite>Doc>LAFITEIMPL.TED;1 +{DSK}larry>ilisp>envos>xd0e>OTHER>lafite>Doc>Manual>LAFITEMANUAL-INDEXINTERNAL.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>RELEASE>lispusers>2.0>src>EQUATIONEXAMPLES.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>RELEASE>notecards>1.2>doc>03-SOFTWARE-INSTALLATION.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>RELEASE>notecards>1.2>doc>05-NOTECARDS-BASICS.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>RELEASE>notecards>1.2>doc>11-SYSTEM-CARDS.TEDIT;1 +{DSK}larry>ilisp>envos>xd0e>RELEASE>notecards>2.0>src>library>BOONE-V-COE.TED;1 +{DSK}larry>ilisp>envos>xd1d>users>nilsson>intercalc>inter-calc>INTERCALCDEMO.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>nilsson>intercalc>inter-calc>INTERCALCDOCUMENTATION.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>JELLINEK>graphics>DDLCOLORHAX.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>JELLINEK>graphics>LUCASFILMFORMAT.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>basics>INVOICE.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>genis>FLYER-COV-CHOICE.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>genis>FLYER-COV.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>inter-calc>INTERCALCDEMO.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>inter-calc>INTERCALCDOCUMENTATION.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>sd>ADVERTS>Cherry-RidgeWFH.TEdit;5 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>sd>Callerlab>Adv-Committee>Defns>ADVDEFNS.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>sd>Callerlab>Board>CALLERLAB-BYLAWCHANGE.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>sd>Callerlab>Challenge-Committee>C1-NEW-DEFNS.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>sd>Callerlab>Challenge-Committee>C1DEFNS.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>sd>Callerlab>Challenge-Committee>C2DEFNS.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>sd>NUMBERART.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>ADVDICT-A-M.TEDIT;13 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>ADVDICT-N-Z.TEDIT;9 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>C1DEFNS-I-R.TEDIT;9 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>C1DEFNS-S.TEDIT;7 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>C1DEFNS-T-Z.TEDIT;9 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>C2DEFNS-A-E.TEDIT;11 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>C2DEFNS-F-O.TEDIT;5 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>C2DEFNS-P-S.TEDIT;6 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>C2DEFNS-T-Z.TEDIT;6 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>DICT-PREFACE.TEDIT;14 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>Dictionaries>leftover-calls.tedit;3 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>top10-87>FRA>ARRANGEMENTS.TEDIT;28 +{DSK}larry>ilisp>envos>xd1d>users>sybalsky>venue>ads>aaai>top-rapid-dev.TEdit;4 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>24-STREAMS.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>25-IO.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>27-GRAPHICS.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>28-WINDOWS.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>29-HARDCOPY.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>30-ETHERNET.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>30-TERMINAL.TEDIT;1 +{DSK}larry>ilisp>envos>xd1d>users>turpin>IRM-3>old>31-ETHERNET.TEDIT;1 +{DSK}larry>medley>lispusers>ACE>ACE-MAINTAINERS-NOTES.TEDIT;1 +{DSK}larry>medley>lispusers>EQUATIONEXAMPLES.TEDIT;1 diff --git a/library/PCTREE b/library/PCTREE index b883dead..60399803 100644 --- a/library/PCTREE +++ b/library/PCTREE @@ -1,33 +1,33 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "19-Apr-2018 12:19:49" {DSK}kaplan>Local>medley3.5>lispcore>library>PCTREE.;4 28288 - changes to%: (VARS PCTREECOMS) +(FILECREATED "22-Jun-2022 10:29:01" {DSK}larry>medley>library>PCTREE.;2 28282 - previous date%: "29-Jan-99 17:33:18" -{DSK}kaplan>Local>medley3.5>lispcore>library>PCTREE.;3) + :CHANGES-TO (FNS \INSERTTREE) + + :PREVIOUS-DATE "19-Apr-2018 12:19:49" {DSK}larry>medley>library>PCTREE.;1) (* ; " -Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporation. All rights reserved. +Copyright (c) 1990-1991, 1993-1995, 1999, 2018 by Venue & Xerox Corporation. ") (PRETTYCOMPRINT PCTREECOMS) (RPAQQ PCTREECOMS [ - (* ;; "Balanced tree PIECE TABLE supporting functions") + (* ;; "Balanced tree PIECE TABLE supporting functions") (FILES TEDITDCL) (DECLARE%: EVAL@COMPILE DONTCOPY - (* ;; "\WORDSINBTREEMAIN = # of words in the child-pointers & offsets section of the node -- everything before SPARE5 (the overflow place).") + (* ;; "\WORDSINBTREEMAIN = # of words in the child-pointers & offsets section of the node -- everything before SPARE5 (the overflow place).") - (* ;; - "\BTREEMAXCOUNT = number of children in a full node = maximum value for a node's COUNT field.") + (* ;; + "\BTREEMAXCOUNT = number of children in a full node = maximum value for a node's COUNT field.") - (* ;; "\BTREELASTREALOFFSET = offset of last real space for a child entry in the node ( = \WORDSINBTREEMAIN - 4)") + (* ;; "\BTREELASTREALOFFSET = offset of last real space for a child entry in the node ( = \WORDSINBTREEMAIN - 4)") (CONSTANTS (\BTREEMAXENTRIES 8) (\BTREEMAXCOUNT 8) @@ -65,10 +65,10 @@ Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporat (RPAQ \WORDSINBTREEMAIN (UNFOLD \BTREEMAXENTRIES 4)) (RPAQ \BTREELASTREALOFFSET (UNFOLD (SUB1 \BTREEMAXENTRIES) - 4)) + 4)) (RPAQ \BTREETOPHALFOFFSET (UNFOLD (LRSH \BTREEMAXENTRIES 1) - 4)) + 4)) (CONSTANTS (\BTREEMAXENTRIES 8) @@ -174,9 +174,9 @@ Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporat 1))]) (\INSERTTREE - [LAMBDA (NEW OLD PCNODE NEW-PREVLEN NEW-OLDLEN PREV) - (* ; - "Edited 21-Mar-95 15:29 by sybalsky:mv:envos") + [LAMBDA (NEW OLD PCNODE NEW-PREVLEN NEW-OLDLEN PREV) (* ; "Edited 21-Jun-2022 23:39 by larry") + (* ; + "Edited 21-Mar-95 15:29 by sybalsky:mv:envos") (* ;; "inserts NEW in front of OLD in PCNODE. NEW/OLD are either pieces or tree nodes.") @@ -193,9 +193,8 @@ Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporat (* ;; "Find OLD, and insert the NEW piece (and length) in front of it.") (for old ITEM# from 0 to (LLSH (SUB1 NODE-COUNT) - 2) by 4 - when (EQ OLD (\GETBASEPTR PCNODE ITEM#)) do (RETURN) - FINALLY (HELP "Old piece not in this PCNODE.")) + 2) by 4 when (EQ OLD (\GETBASEPTR PCNODE ITEM#)) + do (RETURN) finally (HELP "Old piece not in this PCNODE.")) (OR NEW (HELP "Inserting empty item")) (* ;; "Update the previous piece's length, if appropriate:") @@ -204,7 +203,7 @@ Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporat ((ZEROP ITEM#) (* ;; -"The hard way -- the previous piece is in a prior btree node, so we have to go there to update it.") + "The hard way -- the previous piece is in a prior btree node, so we have to go there to update it.") (LET* ((NODE (fetch (PIECE PTREENODE) of PREV))) (UPDATEPCNODES PREV NEW-PREVLEN))) @@ -219,35 +218,37 @@ Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporat NEW-OLDLEN))) (SETQ BB (\ADDBASE PCNODE ITEM#)) (\RPLPTR PCNODE \WORDSINBTREEMAIN NIL) (* ; - "Clean out the slot that's about to be copied over.") + "Clean out the slot that's about to be copied over.") (\BLT (\ADDBASE BB 4) BB (IDIFFERENCE \WORDSINBTREEMAIN ITEM#)) (\PUTBASEPTR PCNODE ITEM# NIL) (* ; - "Because it's been copied, clear the old value before the refcnt-er gets to it.") + "Because it's been copied, clear the old value before the refcnt-er gets to it.") (\RPLPTR PCNODE ITEM# NEW) (COND ((type? PIECE NEW) (\PUTBASEFIXP PCNODE (IPLUS ITEM# 2) (fetch (PIECE PLEN) of NEW)) (replace (PIECE PTREENODE) of NEW with PCNODE)) - ((type? BTREENODE NEW) (* ; "Inserting a NODE") + ((type? BTREENODE NEW) (* ; "Inserting a NODE") (\PUTBASEFIXP PCNODE (IPLUS ITEM# 2) (fetch (BTREENODE TOTLEN) of NEW)) (replace (BTREENODE UPWARD) of NEW with PCNODE)) (T (\ILLEGAL.ARG NEW))) - [SETQ NEWLEN (replace (BTREENODE TOTLEN) of PCNODE - with (for I from 0 to NODE-COUNT as ITEM# - from 2 by 4 sum (\GETBASEFIXP PCNODE ITEM#] + (SETQ NEWLEN (for I from 0 to NODE-COUNT as ITEM# from 2 by 4 + sum (\GETBASEFIXP PCNODE ITEM#))) + (IF (TYPE? BIGNUM NEWLEN) + THEN (HELP NEWLEN " is bignum")) + (replace (BTREENODE TOTLEN) of PCNODE with NEWLEN) (* ;; " If adding this piece overflows the tree node, split it.") [COND ((IEQP NODE-COUNT \BTREEMAXCOUNT) (* ; - "Tree node is full, so have to split.") + "Tree node is full, so have to split.") (\SPLITTREE PCNODE OLD NEW)) (T (* ; - "No split, so update upper nodes with delta-length.") + "No split, so update upper nodes with delta-length.") (replace (BTREENODE COUNT) of PCNODE with (ADD1 NODE-COUNT)) (\TEDIT.UPDATETREE PCNODE (IDIFFERENCE NEWLEN OLDLEN] @@ -498,32 +499,32 @@ Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporat (DECLARE%: EVAL@COMPILE (DATATYPE BTREENODE ( - (* ;; "An order-4 BTREE node for representing the piece table for TEdit.") + (* ;; "An order-4 BTREE node for representing the piece table for TEdit.") - DOWN1 - (DLEN1 FIXP) - DOWN2 - (DLEN2 FIXP) - DOWN3 - (DLEN3 FIXP) - DOWN4 - (DLEN4 FIXP) - DOWN5 - (DLEN5 FIXP) - DOWN6 - (DLEN6 FIXP) - DOWN7 - (DLEN7 FIXP) - DOWN8 - (DLEN8 FIXP) - SPARE5 (* ; - "Used only to hold the extra piece when we're overflowing") - (SPARELEN FIXP) (* ; "So the code is easy and fast.") - (COUNT BITS 4) (* ; "# of children of this node") - (UPWARD XPOINTER) (* ; "Parent of this node, if any.") - (TOTLEN FIXP) (* ; - "Total length of this tree and subtrees") - )) + DOWN1 + (DLEN1 FIXP) + DOWN2 + (DLEN2 FIXP) + DOWN3 + (DLEN3 FIXP) + DOWN4 + (DLEN4 FIXP) + DOWN5 + (DLEN5 FIXP) + DOWN6 + (DLEN6 FIXP) + DOWN7 + (DLEN7 FIXP) + DOWN8 + (DLEN8 FIXP) + SPARE5 (* ; + "Used only to hold the extra piece when we're overflowing") + (SPARELEN FIXP) (* ; "So the code is easy and fast.") + (COUNT BITS 4) (* ; "# of children of this node") + (UPWARD XPOINTER) (* ; "Parent of this node, if any.") + (TOTLEN FIXP) (* ; + "Total length of this tree and subtrees") + )) ) (/DECLAREDATATYPE 'BTREENODE @@ -562,9 +563,9 @@ Copyright (c) 1990, 1991, 1993, 1994, 1995, 1999, 2018 by Venue & Xerox Corporat ) (PUTPROPS PCTREE COPYRIGHT ("Venue & Xerox Corporation" 1990 1991 1993 1994 1995 1999 2018)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3043 23338 (UPDATEPCNODES 3053 . 4140) (FINDPCNODE 4142 . 4374) (\FIRSTNODE 4376 . 4733 -) (\DELETETREE 4735 . 7216) (\INSERTTREE 7218 . 11647) (\LASTNODE 11649 . 12292) (\MATCHPCS 12294 . -13418) (\SPLITTREE 13420 . 20596) (\TEDIT.UPDATETREE 20598 . 22075) (\TEDIT.PIECE-CHNO 22077 . 22656) -(\TEDIT.SET-TOTLEN 22658 . 23336)) (23339 25779 (DISPTREE 23349 . 23805) (TREEGRAPHNODE 23807 . 25777) + (FILEMAP (NIL (2966 23396 (UPDATEPCNODES 2976 . 4063) (FINDPCNODE 4065 . 4297) (\FIRSTNODE 4299 . 4656 +) (\DELETETREE 4658 . 7139) (\INSERTTREE 7141 . 11705) (\LASTNODE 11707 . 12350) (\MATCHPCS 12352 . +13476) (\SPLITTREE 13478 . 20654) (\TEDIT.UPDATETREE 20656 . 22133) (\TEDIT.PIECE-CHNO 22135 . 22714) +(\TEDIT.SET-TOTLEN 22716 . 23394)) (23397 25837 (DISPTREE 23407 . 23863) (TREEGRAPHNODE 23865 . 25835) )))) STOP diff --git a/library/PCTREE.LCOM b/library/PCTREE.LCOM index 3cc4abd5951539cefda36b964d081a3af5778c23..1d41014a3cf7d85a66e96fd8a8a5c3242bb2efc6 100644 GIT binary patch delta 1580 zcma)6PfR0a6dx!H?4VHoxQkHWb-=Y%+ssV=&=!K7X{Tjs>D0EkX6;%FEq}_;ZVF_B z#?)2AQO))u(HO%X_GYM!i5m|+=s`3nQ4SD2Y@&PdgxS0G%?zu>jmfsj?|a|--h03I zUf=7D>3ZOUV2LD60WmE2Vgi>C{6Mj+CA5*Zur$j8Lwi`ahh``+QS*h>Ys+#r1BEbBqE?`&>diZ&3HgHc+X5Mr^}XoBOzf}*2AiHDN=;YU~5(st|F zuk-}b+Wl4=FJB@F{M_l*xAWhD?rLV``0m|QXDye~OP%+3D#ZTHc0);@JGogQwk7>J z-50vIE5sHr>E-5QpLVDbjyjY$HUGz|?#QoQ@pAAgztjg2x#b`tgQP$HM$s+(Kq!Z| zkMMr2_x$~`Mb2mH_bMDOnUdBt(3 zQokjCpf=|t(w^A>0O6)xXbFRBE(U!wX-Ehh?e#&!N_XDyHBpcJnG_En^8hgN1 z+VZMowV9mUoa=7sk_M#y`&FYf%u5E9^)NMDlLl4}Qv)^0fP^VSZTDAcxaUenE$^dH zK}l9MtzpkYD({Tkew;hm<~gr=-R?{q*cr+|(yJe>xkc`eIcrGpk#FwLBb30&K2&3R&AsG}JURWoNMK~-3xv-Us1#$LK z(df&%aH<+yO2FD2aCTN%ocUzniV%}<;KosI48X7$;EaO)4+TSG`VAD|q_uSIvp$=mgnGAFBgzBYiTlw{l9bB-X$NF*Ss?NuyHaxcat}7e(*AsUTzr64n;^IXo z;wKlY_#Ep`G~?y=zyf0D;1J?-gIkEz!3B~ugXtNVm;kaoYFI(#`-U{)pN7kb;?PyZ z+e5D)>V_5f-0=Jb?XN5zmN-ACKeOK#Hk0MwRD;lnVpbV(A^tJ)BH|<{np-f3*lK(Y n@rLo~@_WWfl)g7AZ!DEX{E$-Qx{3>FUs-$%?6cz$8!JiOo;GUtz^p;Um?9LrHj6BX+ACama-WsyT;j_J}FmOo-dWND9n}9KA+U+doAWt8J*v)&IyENY>4|-7vqHF20kkz)ES@3)aj2 zSR7iF1;j|)2FvB_d%4nTMPY>}DAqGNoi2`gJiv^3InH~TasST?HFKG%zCu zg*bSFZgR7;qpVVqwfEJ2#E0sSRph2mbGu`jv_^q(K`0?aE&_^92+0cv$MgD6AF_@T`ljHmeN%ldR?!m z%WN5n2gE-ATk%YD|Jh?hL)1xz!tOTz`(xs4o%p0jjMs8M9P2^NYRkl8fvF7)DR8Q&=G|@6AFVy>pG>8 zNM7p5>ot1OESjEgT11K$L1D9#q8g&Pu#+-3L_i`bXly(YDT9*oNxpN8ImoA)3x@;`a8rLkaplan>Local>medley3.5>lispcore>library>UNIXCOMM.;39 19642 +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) +(FILECREATED "27-Jun-2022 16:45:04" {DSK}larry>medley>library>UNIXCOMM.;42 20362 - changes to%: (VARS UNIXCOMMCOMS) + changes to%: (FNS CREATE-PROCESS-STREAM) + (VARS UNIXCOMMCOMS) - previous date%: "24-Apr-2018 20:45:11" -{DSK}kaplan>Local>medley3.5>lispcore>library>UNIXCOMM.;38) + previous date%: "26-Jun-2022 14:27:33" {DSK}larry>medley>library>UNIXCOMM.;41) (* ; " -Copyright (c) 1988, 1989, 1990, 2018 by Venue & Xerox Corporation. All rights reserved. +Copyright (c) 1988-1990, 2018, 2022 by Venue & Xerox Corporation. ") (PRETTYCOMPRINT UNIXCOMMCOMS) -(RPAQQ UNIXCOMMCOMS - [ - (* ;; "streams to UNIX processes & pseudo terminals") +(RPAQQ UNIXCOMMCOMS ( + (* ;; "streams to UNIX processes & pseudo terminals") - - (* ;; "this stuff should really be implemented in terms of {SHELL} and {PTY} devices") + + (* ;; + "this stuff should really be implemented in terms of {SHELL} and {PTY} devices") - (COMS (* ; "Forking stuff") - (FNS FORK-SHELL FORK-UNIX UNIX-KILL UNIX-WRITE CREATE-SHELL-STREAM - CREATE-PROCESS-STREAM UNIXCOMM-AROUNDEXITFN)) - [COMS (* ; "Operations on the shell device") - (FNS INITIALIZE-NEW-SHELL-DEVICE UNIX-GET-NEXT-BUFFER UNIX-BACKFILEPTR-NEW - UNIX-STREAM-EOFP-NEW UNIX-STREAM-OUT UNIX-STREAM-CLOSE) - (GLOBALVARS *NEW-SHELL-DEVICE*) - (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-NEW-SHELL-DEVICE)) - (ADDVARS (AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN] - (COMS (* ; - "Stuff for direct manipulation of Unix sockets") - (FNS CREATE-UNIX-SOCKET-STREAM ACCEPT-UNIX-SOCKET-STREAM)) - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-CHANNEL) - (P (CHECKIMPORTS '(FILEIO LLSUBRS) - T))) - [COMS - (* ;; "Obsolete stuff. This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device") + (COMS (* ; "Forking stuff") + (FNS FORK-SHELL FORK-UNIX UNIX-KILL UNIX-WRITE CREATE-SHELL-STREAM + CREATE-PROCESS-STREAM UNIXCOMM-AROUNDEXITFN)) + [COMS (* ; "Operations on the shell device") + (FNS INITIALIZE-NEW-SHELL-DEVICE UNIX-GET-NEXT-BUFFER + UNIX-BACKFILEPTR-NEW UNIX-STREAM-EOFP-NEW UNIX-STREAM-OUT + UNIX-STREAM-CLOSE) + (GLOBALVARS *NEW-SHELL-DEVICE*) + (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-NEW-SHELL-DEVICE)) + (ADDVARS (AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN] + (COMS (* ; + "Stuff for direct manipulation of Unix sockets") + (FNS CREATE-UNIX-SOCKET-STREAM ACCEPT-UNIX-SOCKET-STREAM)) + (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-CHANNEL) + (P (CHECKIMPORTS '(FILEIO LLSUBRS) + T))) + [COMS + (* ;; "Obsolete stuff. This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device") - (FNS UNIX-BACKFILEPTR UNIX-READ INITIALIZE-SHELL-DEVICE UNIX-STREAM-IN UNIX-STREAM-EOFP - UNIX-STREAM-PEEK) - (GLOBALVARS *SHELL-DEVICE*) - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-PEEKEDCHAR UNIX-LASTCHAR)) - (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-SHELL-DEVICE] - (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) - (NLAML) - (LAMA]) + (FNS UNIX-BACKFILEPTR UNIX-READ INITIALIZE-SHELL-DEVICE UNIX-STREAM-IN + UNIX-STREAM-EOFP UNIX-STREAM-PEEK) + (GLOBALVARS *SHELL-DEVICE*) + (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-PEEKEDCHAR UNIX-LASTCHAR + )) + (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-SHELL-DEVICE] + (PROP FILETYPE UNIXCOMM))) @@ -132,10 +131,14 @@ Copyright (c) 1988, 1989, 1990, 2018 by Venue & Xerox Corporation. All rights r STR]) (CREATE-PROCESS-STREAM - [LAMBDA (COMM) (* ; "Edited 21-May-90 15:39 by jrb:") - (LET* ((SHELL-DEV (if (SUBRCALL UNIX-HANDLECOMM 8) - then (* ; - "SUBRCALL tests that this is supported") + [LAMBDA (COMM) (* ; "Edited 26-Jun-2022 13:52 by larry") + (* ; + "Edited 26-Jun-2022 13:31 by lmm - set external format of shell stream to utf-8 ??") + (* ; "Edited 21-May-90 15:39 by jrb:") + (LET* ((SHELL-DEV (if (AND (BOUNDP '*NEW-SHELL-DEVICE) + (SUBRCALL UNIX-HANDLECOMM 8)) + then (* ; + "SUBRCALL tests that this is supported") *NEW-SHELL-DEVICE* else *SHELL-DEVICE*)) (STR (create STREAM @@ -145,9 +148,11 @@ Copyright (c) 1988, 1989, 1990, 2018 by Venue & Xerox Corporation. All rights r (CHAN (FORK-UNIX COMM))) (if CHAN then (CL:SETF (UNIX-CHANNEL STR) - CHAN) + CHAN) + (AND (STRPOS ".UTF-8" (UNIX-GETENV "LANG")) + (\EXTERNALFORMAT STR ':UTF-8)) - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") + (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) STR) @@ -324,9 +329,8 @@ Copyright (c) 1988, 1989, 1990, 2018 by Venue & Xerox Corporation. All rights r (DECLARE%: EVAL@COMPILE DONTCOPY (DECLARE%: EVAL@COMPILE -(PUTPROPS UNIX-CHANNEL MACRO - ((STR) - (fetch (STREAM F1) of STR))) +(PUTPROPS UNIX-CHANNEL MACRO ((STR) + (fetch (STREAM F1) of STR))) ) @@ -426,35 +430,27 @@ Copyright (c) 1988, 1989, 1990, 2018 by Venue & Xerox Corporation. All rights r (DECLARE%: EVAL@COMPILE DONTCOPY (DECLARE%: EVAL@COMPILE -(PUTPROPS UNIX-PEEKEDCHAR MACRO - ((STR) - (FETCH (STREAM F2) OF STR))) +(PUTPROPS UNIX-PEEKEDCHAR MACRO ((STR) + (FETCH (STREAM F2) OF STR))) -(PUTPROPS UNIX-LASTCHAR MACRO - ((STR) - (FETCH (STREAM F3) OF STR))) +(PUTPROPS UNIX-LASTCHAR MACRO ((STR) + (FETCH (STREAM F3) OF STR))) ) ) (DECLARE%: DONTEVAL@LOAD DOCOPY (INITIALIZE-SHELL-DEVICE) ) -(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS -(ADDTOVAR NLAMA ) - -(ADDTOVAR NLAML ) - -(ADDTOVAR LAMA ) -) -(PUTPROPS UNIXCOMM COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 2018)) +(PUTPROPS UNIXCOMM FILETYPE FAKE-COMPILE-FILE) +(PUTPROPS UNIXCOMM COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 2018 2022)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2704 8376 (FORK-SHELL 2714 . 3911) (FORK-UNIX 3913 . 4089) (UNIX-KILL 4091 . 4280) ( -UNIX-WRITE 4282 . 4993) (CREATE-SHELL-STREAM 4995 . 6311) (CREATE-PROCESS-STREAM 6313 . 7473) ( -UNIXCOMM-AROUNDEXITFN 7475 . 8374)) (8424 13412 (INITIALIZE-NEW-SHELL-DEVICE 8434 . 9527) ( -UNIX-GET-NEXT-BUFFER 9529 . 11729) (UNIX-BACKFILEPTR-NEW 11731 . 12210) (UNIX-STREAM-EOFP-NEW 12212 . -12758) (UNIX-STREAM-OUT 12760 . 13016) (UNIX-STREAM-CLOSE 13018 . 13410)) (13668 15533 ( -CREATE-UNIX-SOCKET-STREAM 13678 . 14539) (ACCEPT-UNIX-SOCKET-STREAM 14541 . 15531)) (15856 19035 ( -UNIX-BACKFILEPTR 15866 . 16364) (UNIX-READ 16366 . 16888) (INITIALIZE-SHELL-DEVICE 16890 . 17629) ( -UNIX-STREAM-IN 17631 . 18007) (UNIX-STREAM-EOFP 18009 . 18783) (UNIX-STREAM-PEEK 18785 . 19033))))) + (FILEMAP (NIL (2975 9114 (FORK-SHELL 2985 . 4182) (FORK-UNIX 4184 . 4360) (UNIX-KILL 4362 . 4551) ( +UNIX-WRITE 4553 . 5264) (CREATE-SHELL-STREAM 5266 . 6582) (CREATE-PROCESS-STREAM 6584 . 8211) ( +UNIXCOMM-AROUNDEXITFN 8213 . 9112)) (9162 14150 (INITIALIZE-NEW-SHELL-DEVICE 9172 . 10265) ( +UNIX-GET-NEXT-BUFFER 10267 . 12467) (UNIX-BACKFILEPTR-NEW 12469 . 12948) (UNIX-STREAM-EOFP-NEW 12950 + . 13496) (UNIX-STREAM-OUT 13498 . 13754) (UNIX-STREAM-CLOSE 13756 . 14148)) (14406 16271 ( +CREATE-UNIX-SOCKET-STREAM 14416 . 15277) (ACCEPT-UNIX-SOCKET-STREAM 15279 . 16269)) (16612 19791 ( +UNIX-BACKFILEPTR 16622 . 17120) (UNIX-READ 17122 . 17644) (INITIALIZE-SHELL-DEVICE 17646 . 18385) ( +UNIX-STREAM-IN 18387 . 18763) (UNIX-STREAM-EOFP 18765 . 19539) (UNIX-STREAM-PEEK 19541 . 19789))))) STOP diff --git a/library/UNIXCOMM.DFASL b/library/UNIXCOMM.DFASL new file mode 100644 index 0000000000000000000000000000000000000000..33a260c9cf9f99119d222ddb0ba1974967f3ea37 GIT binary patch literal 8456 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

Zll_G`ga?w35x|?Y+ zzLRM}#59f&F_nyn1p!3NEkMLn3Pem4A!2SJL_CaS%#-rQuj<7%VK88ufZ{c-e!Xanp%8H=VUr zFU9wRVmsonGB!SQ|K5@1#B0OLg|pMk0Cu-v+==%D+J|wIpxL-Y2;&kp2{q`tLo^we z$`?9dT_UR1tRNnQ3#A)D}50AxLJ`1z9Fh$>yooeRyI3|d>Vcoq?zJdM1&Z`rZNNA3Lc zs-6FyJF%T*;TUxFl_g=-|KwJ_4F8+pe8e2K^N*S2pWo%*E5FIb)v_o~a&c{#i+7%} z_tnn*HG2%vDB{?8-BovnaF|`!Hwem!Qg^zLPJ-(`F`bMlpAeQl&(nV>LeGa@;c}L^ zVp;3C(Q*`1_FI*n2UE)YR2lgte{yFSGQC#K}K%_&9c~Fjbm5 zh7T-=MdOG?U#K~=EXA)Cl{g!gUfIqT0->SoS$%-3?(A^HxgC6#ozJ-)xIyy&=cV9( z3;eq;6#vH;fg^A~*F|6>ouNKHF}T#DA~E*gR43Ok`5o%#sd1%$uaiHklYdty|B}h~ zNaCNu5!!1wz6!Q)afk0xhd-56tQ(HHWnri2OwebafLepercHp2i} zVq1S%+nAR={aCNVzH~e^8)2#~4`V9vgvO|k;nlBw^5w z`mjUKV9oSdEu#;`bMzU#vf*%kb}^5y%cJ?y+!yiR7E1Vz#h?1%WR2gWpFg3W@6*pe i(9cf+*dWS24Pk*8-aiPs(sw)liZ5M3A9?-#`~M9I=5Ol& literal 0 HcmV?d00001 diff --git a/library/UNIXCOMM.LCOM b/library/UNIXCOMM.LCOM deleted file mode 100644 index 9f185a96b351a5aadc5a4af19a301fd149773c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8683 zcmb_iO>7&-6{aZHl^MsNY{m(Kz?rbALm45#U6LXxr-oMKN?dEnWyqB*1wMop8H+YW z3Z&E|NPH=BDtbxKAD}(;)}M=`NQWi|qUgmw80n#C(H;u)+>6>=f}(-@y_wnN^2dQ) z1c<5Gnc3O*-hA)9@69BV*O!fw9$hv}J!+JeEq0--o=;^L)YL*E6J|H)ORZPxtl4IP@ba2zGVjD#EEZ<<+8!jCus|{q zo*Pj}O+~fcE)-HSES_FSC=03iFnbL7Tg~3?R;SyTAblds0!ns1sj{u@TKi_B$M!nk zU0{)Qtx{!9U9JuWlmgw^Cg9yPv@Of4ud@Z%Wt>jcWo1(vPKYP4F= zVX%dKCJ-^0!pPWKDbEZRXMjY}-Yn~L%vbRFeE!zVo&BkUMC+-=qf;Gp`0hUQ2m15j z;tv;3QR5{2Xh$=A@B{vIXMZ|~p4JJx8sw9LzQ}x*@o$sjETJ+2Uevat^c;1+8i=G6 zW|j1ORI609O_oS|pVWls30ugLDHaZ6=kY65{pvY-RICX1L%H|LHN`@JT z%nz?M7vPet8UxG3VVP3NSzz(-RBL+i7AeOU;ETw&u2l?M7X~fEh^Agzu?tb^we=G0 zs<3s<d&IWzAg;bhjw~fQuTZO;gI{w)VnYDlS9|f2W)><;H+$uCyQmk6k zOtZ|gvVqRIfN)H)uTdziYeh$zBpHE~Ap+m^XkK5(6I3f`Lb6Bf{+Hi^go|2$$g8YJx51ll*DE#Ls5^C%jCRdZ(Zm?syVwIVyX2^`r zqmoXr>s8&>ayh+PW%B~r+`iZj6^>6>ieW|`C^xlD@+hVzu;xe?5G|*c@>T4jUMg!9 ztypC$0#Q{T?Tn|{GHoCNFT3RKr;*byF+>_Mreu||u}ngW4`0c!CCe@#s;3ymbQ9@8 z;FV?5(28prD_M5TDg(Qj%y?fq%dYEIRj*X63QNb?^^#>2ky5O3m8HlsVhyAoZOyb} zMQvkgZFyNo)PuUCVyD@ql73A>7rK!$UQEOOWaKeabNrSWSBwMNHHY-GViBJEXP|g$ z9KJ943AY8pt-zTFy}zp)PmEqd{3v>#2)ENBm=b^wFRlvMdNI5@g5gzQR2d4XN(#H; zVv=A;8!W&QAG3NkDZ!G-j*VpyDntlTQb_?8AY%k8c+c7A0agHoQT(J84_4;YA*>*J zJM$-C1yOwzE6`&yR>+4ajv;GUYo)xtVc5$hCjzRDIu!P#W|Zpmb-iQ*BOgrzBa1v9 z9Dj1bX*?qvzgZNa>-ZonA{F19`zL=?pPHTW6?l3(=bt|M_jXV&aZbMZEBW{Eym#|v zXZ^Ewg#VYu>`XDsUoa ze-H-v7Gr-#Y=!+<(vfiW>Sonivl%v3JQuZ9>SJjn6+XeVR%k*}hL7Y}^g#O2mXV?5 zO8C5Z)YkR&B2$v$(OEYo9>uEMk&TjJ8=7gnp+`q|k8cqYDf9h@A~Cnqi*QNbA~~jy zIY|P+o*Osxs?%^Y3KD}DLgEmOywg~A8m~DG+iASvG_E*}iqj}Njgr$SIE^Kz0rAAQ z7MzBg*j$+}I72Tujpv=lX{RyMf0p!?j6_XN3Wf-pSq2-KXvAd$wEOysUeYT@E>_V? zS`jQC++9^vIU$}94F!(Q-&Hax*+|cO-_`P<2J;B~&T>ltLzOA1jGUf?qdQ}WxfO&M z>^VFg66q_N851!ZNm5BbDx=DCM+JORWJmO?aC_b#8|qe&Dnw$?^RXqPgs;YvJRL?? zbQ@UNu%lv}WmBSm3AGDpTDB{MC6<{N{lXujy0u*9{pqxj9?6btkJ!lBot(#giKU=~ z`~9-6uR;a}_l+6zwN4p4<`j;CVz?D}aRX$k0ABmX(V3;~&zJP6rX*t`lN@P2iy2de0+q%v6 zciG-{v&Z(^&39OJuiL2Ypj7cf%mwYZ4liTVTpfPCc+az^Giw|tLZXthoYbAz|c`lnY9 zFA5^F>ZPn#y~an`b(KN|s{0|5s$_92KqQqC)riRz)E;6C<;&<;+JOwRSKL#{BR9

@*EB`M)KTlt%s!7xY=yCo9&yd^A_ug zd6Di9(bsJ?Paa2W=hz`+8R#Zq#<(umW8Q8$aJ==o3)ll?lUH2p0s$Ap9?!P0#}lx2WJc;KANbs!LcxmOpYa zVr+0q?=(~;N?P=wDq)YTNaPBbE?Ed=mtn$p2}jdYIGUCb~hGW7v3atIQfYnXZx^>qXp^>&Yg>)wEe0wpU&3q8`=f7z7P zjS)KUdi%C4vtfSe;DcyK{9aTaFrzc-gqTsW`JT9xd2&#C$rF^$A3ZCCkjLqs7>rtH z$YyS)avI!bk#a@1?M<9;l`E(m`73nXg@08{sFbzWUmxmZk;o->`7#TO2uwFmd>j`| zovlW%hr6hYY`53guXh-t?@qH_YxTl&OuQ8c^OB{vxBnJm_;zQ%Rc9z%S`@q+tci=a z#!jP6mut9vqt|;B?BC+C&%@D8ivQVU8ZW|Ue&Fb1xrHU`u zb3^)F25hYxy-usK2YisGF~)4F>+v7yj0@aokzZ;nG4)mU_I9J&ATZ(g?OKmc1A6@h!;Kx^xj7vaEI_lu?(N`!ppnZ zr6)But*7THy9UIUO|5Fv8^wB~z288D-e`0? g@335_3*>M=!d-V3RWW|D_{qj`5vXJ!Ht0m)e*p(di2wiq diff --git a/run-medley b/run-medley index f4eec0b1..ef5c74e8 100755 --- a/run-medley +++ b/run-medley @@ -66,7 +66,6 @@ while [ "$#" -ne 0 ]; do "-nogreet" | "--nogreet") # Keep (GREET) from finding an init file mkdir -p $MEDLEYDIR/tmp/logindir - export HOME=$MEDLEYDIR/tmp/logindir export LOGINDIR=$MEDLEYDIR/tmp/logindir export LDEINIT="$MEDLEYDIR/greetfiles/NOGREET" @@ -121,7 +120,7 @@ while [ "$#" -ne 0 ]; do "-lisp") export LDESRCESYSOUT="$MEDLEYDIR/loadups/lisp.sysout" ;; - "-n" | "-new" | "-newfull" ) + "-N" | "-new" | "-newfull" ) export LDESRCESYSOUT="$MEDLEYDIR/tmp/full.sysout" ;; "-nl" | "-newlisp" ) diff --git a/scripts/copy-all.sh b/scripts/copy-all.sh index 485336f7..5e0c382b 100755 --- a/scripts/copy-all.sh +++ b/scripts/copy-all.sh @@ -7,6 +7,13 @@ if [ ! -x run-medley ] ; then exit 1 fi -cp -p tmp/full.sysout tmp/lisp.sysout tmp/*.dribble tmp/whereis.hash loadups/ -cp -p tmp/exports.all tmp/RDSYS tmp/RDSYS.LCOM library/ +# was +# cp -p tmp/full.sysout tmp/lisp.sysout tmp/*.dribble tmp/whereis.hash loadups/ +# cp -p tmp/exports.all tmp/RDSYS tmp/RDSYS.LCOM library/ +# just copy the files that are released + +./scripts/cpv tmp/full.sysout loadups +./scripts/cpv tmp/lisp.sysout loadups +./scripts/cpv tmp/whereis.hash loadups +./scripts/cpv tmp/exports.all library diff --git a/scripts/cpv b/scripts/cpv new file mode 100755 index 00000000..29fc5604 --- /dev/null +++ b/scripts/cpv @@ -0,0 +1,61 @@ +#!/bin/sh + +# cpv file dest +# could extend with -r or copying multiple files +# could change from cp to ln + +file="$1" +dest="$2" + + +if [ ! -f "$file" ]; then + echo no such file "$file" + exit 1 +fi + +# if dest is a directory, add the source file name +if [ -d "$dest" ]; then + dest=$dest/`basename $file` +fi + +# if no such file $dest then just copy +if [ ! -f "$dest" ]; then + ln $file $dest #WAS cp -p $file $dest + exit 0 +fi + + +# find maximum version of dest +max=0 +for vf in "$dest".~[1-9]*~ +do vn=`echo $vf | sed -e 's/^.*\.~\([1-9][0-9]*\)~$/\1/'` + if [ -f $dest.~$vn~ ]; then + if [ $max -lt $vn ]; then + max=$vn + fi + fi +done + +if [ $max -eq 0 ]; then # no current versions + mv $dest $dest.~1~ # change version to version 1 + new=2 +else + if cmp -q $dest $dest.~$max~ >/dev/null 2>&1 + then # they're different + max=`expr $max + 1` # make newer version + mv $dest $dest.~$max~ + new=`expr $max + 1` + else # dest and dest.~nn~ are equal so + rm $dest # delete dest leave old version behind + new=`expr $max + 1` + fi +fi + +# make new version + +ln $file $dest.~$new~ # cp -p $file $dest.~$new~ +ln $dest.~$new~ $dest # and link it + + + + diff --git a/scripts/loadup-all.sh b/scripts/loadup-all.sh index 5db56ab4..a40df57e 100755 --- a/scripts/loadup-all.sh +++ b/scripts/loadup-all.sh @@ -12,7 +12,10 @@ fi ./scripts/loadup-lisp-from-mid.sh && \ ./scripts/loadup-full-from-lisp.sh && \ ./scripts/loadup-aux.sh && \ + ./scripts/copy-all.sh && \ + ls -l loadups/*.sysout loadups/whereis.hash library/exports.all && \ echo "**** DONE ****" + diff --git a/scripts/loadup-db.sh b/scripts/loadup-db.sh new file mode 100755 index 00000000..e5c6de8d --- /dev/null +++ b/scripts/loadup-db.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +export MEDLEYDIR=`pwd` + +if [ ! -f run-medley ] ; then + echo run from MEDLEYDIR + exit 1 +fi + +touch tmp/loadup.timestamp + +# Keep (GREET) from finding an init file +mkdir -p $MEDLEYDIR/tmp/logindir +export HOME=$MEDLEYDIR/tmp/logindir +export LOGINDIR=$MEDLEYDIR/tmp/logindir + +scr="-sc 1024x768 -g 1042x790" + +echo '" (IL:MEDLEY-INIT-VARS)(IL:FILESLOAD MEDLEY-UTILS)(IL:MAKE-FULLER-DB)(IL:LOGOUT T)"' > tmp/loadup-db.cm +./run-medley $scr -loadup "$MEDLEYDIR"/tmp/loadup-db.cm tmp/full.sysout + +if [ tmp/fuller.database -nt tmp/loadup.timestamp ]; then + + echo ---- made ---- + ls -l tmp/fuller* + echo -------------- + +else + echo XXXXX FAILURE XXXXX + ls -l tmp/fuller* + exit 1 +fi diff --git a/sources/UNIXCOMM b/sources/UNIXCOMM deleted file mode 100644 index 28c3c812..00000000 --- a/sources/UNIXCOMM +++ /dev/null @@ -1,460 +0,0 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) - -(FILECREATED "26-Jun-2022 14:27:33" {DSK}larry>medley>library>UNIXCOMM.;2 19997 - - :CHANGES-TO (FNS CREATE-PROCESS-STREAM) - - :PREVIOUS-DATE "25-Apr-2018 07:31:56" {DSK}larry>medley>library>UNIXCOMM.;1) - - -(* ; " -Copyright (c) 1988-1990, 2018 by Venue & Xerox Corporation. -") - -(PRETTYCOMPRINT UNIXCOMMCOMS) - -(RPAQQ UNIXCOMMCOMS - [ - (* ;; "streams to UNIX processes & pseudo terminals") - - - (* ;; "this stuff should really be implemented in terms of {SHELL} and {PTY} devices") - - (COMS (* ; "Forking stuff") - (FNS FORK-SHELL FORK-UNIX UNIX-KILL UNIX-WRITE CREATE-SHELL-STREAM - CREATE-PROCESS-STREAM UNIXCOMM-AROUNDEXITFN)) - [COMS (* ; "Operations on the shell device") - (FNS INITIALIZE-NEW-SHELL-DEVICE UNIX-GET-NEXT-BUFFER UNIX-BACKFILEPTR-NEW - UNIX-STREAM-EOFP-NEW UNIX-STREAM-OUT UNIX-STREAM-CLOSE) - (GLOBALVARS *NEW-SHELL-DEVICE*) - (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-NEW-SHELL-DEVICE)) - (ADDVARS (AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN] - (COMS (* ; - "Stuff for direct manipulation of Unix sockets") - (FNS CREATE-UNIX-SOCKET-STREAM ACCEPT-UNIX-SOCKET-STREAM)) - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-CHANNEL) - (P (CHECKIMPORTS '(FILEIO LLSUBRS) - T))) - [COMS - (* ;; "Obsolete stuff. This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device") - - (FNS UNIX-BACKFILEPTR UNIX-READ INITIALIZE-SHELL-DEVICE UNIX-STREAM-IN UNIX-STREAM-EOFP - UNIX-STREAM-PEEK) - (GLOBALVARS *SHELL-DEVICE*) - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-PEEKEDCHAR UNIX-LASTCHAR)) - (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-SHELL-DEVICE] - (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) - (NLAML) - (LAMA]) - - - -(* ;; "streams to UNIX processes & pseudo terminals") - - - - -(* ;; "this stuff should really be implemented in terms of {SHELL} and {PTY} devices") - - - - -(* ; "Forking stuff") - -(DEFINEQ - -(FORK-SHELL - [LAMBDA (TERMTYPE COMMAND) (* ; "Edited 14-Feb-90 14:27 by bvm") - (if (SUBRCALL UNIX-HANDLECOMM 8) - then (* ; - "Yes, lde supports this new version") - [SUBRCALL UNIX-HANDLECOMM 11 (if (NULL TERMTYPE) - then "" - elseif (TYPEP TERMTYPE 'ONED-ARRAY) - then TERMTYPE - else (\DTEST (LISP-TO-UNIX-TERMTYPE TERMTYPE) - 'ONED-ARRAY)) - (if (NULL COMMAND) - then "" - else (\DTEST COMMAND 'ONED-ARRAY] - elseif COMMAND - then (* ; - "have to use a different old call") - (FORK-UNIX COMMAND) - else (SUBRCALL UNIX-HANDLECOMM 4]) - -(FORK-UNIX - [LAMBDA (STR) (* ; "Edited 25-May-88 15:47 by drc:") - (SUBRCALL UNIX-HANDLECOMM 0 (\DTEST STR 'ONED-ARRAY]) - -(UNIX-KILL - [LAMBDA (CONN) (* ; "Edited 25-May-88 16:04 by drc:") - (if CONN - then (SUBRCALL UNIX-HANDLECOMM 3 CONN 0]) - -(UNIX-WRITE - [LAMBDA (CONN VAL) (* ; "Edited 24-Sep-90 11:27 by jds") - - (* ;; "Write a byte (VAL) to the outgoing pipe connection CONN. If the write fails for non-fatal reasons (i.e., would block), loop unitl it succeeds. If the write returns NIL (meaning total failure), pass that along to the caller.") - - (PROG (LENGTH-WRITTEN) - WRITE-LOOP - [SETQ LENGTH-WRITTEN (SUBRCALL UNIX-HANDLECOMM 1 (\DTEST CONN 'SMALLP) - (\DTEST VAL 'SMALLP] - (COND - ((AND LENGTH-WRITTEN (IEQP 0 LENGTH-WRITTEN)) - (BLOCK) - (GO WRITE-LOOP))) - (RETURN LENGTH-WRITTEN]) - -(CREATE-SHELL-STREAM - [LAMBDA (TERMTYPE COMMAND) (* ; "Edited 21-May-90 15:39 by jrb:") - (LET ((CHAN (FORK-SHELL TERMTYPE COMMAND)) - (SHELL-DEV (if (SUBRCALL UNIX-HANDLECOMM 8) - then (* ; - "SUBRCALL tests that this is supported") - *NEW-SHELL-DEVICE* - else *SHELL-DEVICE*))) - (COND - (CHAN (LET ((STR (create STREAM - ACCESS _ 'BOTH - DEVICE _ SHELL-DEV))) - (CL:SETF (UNIX-CHANNEL STR) - CHAN) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - STR) - (STREAMPROP STR 'SENDSCREENPARAMS (FUNCTION UNIX.SENDSCREENPARAMS)) - (STREAMPROP STR 'SETDISPLAYTYPE (FUNCTION UNIX.SETDISPLAYTYPE)) - STR]) - -(CREATE-PROCESS-STREAM - [LAMBDA (COMM) (* ; "Edited 26-Jun-2022 13:52 by larry") - (* ; - "Edited 26-Jun-2022 13:31 by lmm - set external format of shell stream to utf-8 ??") - (* ; "Edited 21-May-90 15:39 by jrb:") - (LET* ((SHELL-DEV (if (SUBRCALL UNIX-HANDLECOMM 8) - then (* ; - "SUBRCALL tests that this is supported") - *NEW-SHELL-DEVICE* - else *SHELL-DEVICE*)) - (STR (create STREAM - ACCESS _ 'BOTH - DEVICE _ SHELL-DEV - EOLCONVENTION _ LF.EOLC)) - (CHAN (FORK-UNIX COMM))) - (if CHAN - then (CL:SETF (UNIX-CHANNEL STR) - CHAN) - (\EXTERNALFORMAT STR ':UTF-8) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - STR) - STR - else NIL]) - -(UNIXCOMM-AROUNDEXITFN - [LAMBDA (EVENT) (* ; "Edited 2-Jul-90 16:35 by jrb:") - (CASE EVENT - ((AFTERLOGOUT AFTERMAKESYS AFTERSAVEVM AFTERSYSOUT) (for STREAM - in (fetch (FDEV OPENFILELST) - of *SHELL-DEVICE*) - do (CLOSEF STREAM))) - ((BEFORELOGOUT BEFOREMAKESYS BEFORESYSOUT) - - (* ;; - "Make sure any Unix sockets get closed here, so their file system handles get closed as well") - - (for STREAM in (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - when (EQ -3 (SUBRCALL UNIX-HANDLECOMM 14 (UNIX-CHANNEL STREAM))) - do (CLOSEF STREAM))))]) -) - - - -(* ; "Operations on the shell device") - -(DEFINEQ - -(INITIALIZE-NEW-SHELL-DEVICE - [LAMBDA NIL (* ; "Edited 12-Feb-90 17:00 by bvm") - (SETQ *NEW-SHELL-DEVICE* (create FDEV - FDBINABLE _ T - NODIRECTORIES _ T - DEVICENAME _ (FUNCTION UNIX-PTY-NEW) - BIN _ (FUNCTION \BUFFERED.BIN) - BOUT _ (FUNCTION UNIX-STREAM-OUT) - PEEKBIN _ (FUNCTION \BUFFERED.PEEKBIN) - CLOSEFILE _ (FUNCTION UNIX-STREAM-CLOSE) - GETFILEINFO _ (FUNCTION NILL) - SETFILEINFO _ (FUNCTION NILL) - EOFP _ (FUNCTION UNIX-STREAM-EOFP-NEW) - BACKFILEPTR _ (FUNCTION UNIX-BACKFILEPTR-NEW) - GETNEXTBUFFER _ (FUNCTION UNIX-GET-NEXT-BUFFER) - BLOCKIN _ (FUNCTION \BUFFERED.BINS]) - -(UNIX-GET-NEXT-BUFFER - [LAMBDA (STREAM WHATFOR NOERRORFLG) (* ; - "Edited 13-Jun-90 01:07 by mitani") - (CASE WHATFOR - (READ [PROG ([BUF (ffetch (STREAM CBUFPTR) of (\DTEST STREAM 'STREAM] - (CONN (UNIX-CHANNEL STREAM)) - LEN) - RETRY - (BLOCK) (* ; - "Just so other procs get to run when someone is pounding output at Chat") - (if [AND CONN (SETQ LEN (SUBRCALL UNIX-HANDLECOMM 9 (\DTEST CONN 'SMALLP) - (OR BUF (replace (STREAM CBUFPTR) - of STREAM - with (SETQ BUF - (NCREATE 'VMEMPAGEP] - then (if (EQ LEN T) - then (* ; - " no input available, but still alive") - (if NOERRORFLG - then (RETURN NIL) - else (* ; - "Called from BIN--wait and try again") - (GO RETRY)) - else (UNINTERRUPTABLY - (replace (STREAM COFFSET) of STREAM - with 0) - (replace (STREAM CBUFSIZE) of STREAM - with LEN)) - (RETURN T)) - else (RETURN (AND (NOT NOERRORFLG) - (\EOF.ACTION STREAM]) - (T (SHOULDNT)))]) - -(UNIX-BACKFILEPTR-NEW - [LAMBDA (STREAM) (* ; - "Edited 13-Jun-90 01:07 by mitani") - (COND - ((AND (fetch (STREAM CBUFPTR) of STREAM) - (> (fetch (STREAM COFFSET) of STREAM) - 0)) - (add (fetch (STREAM COFFSET) of STREAM) - -1)) - (T (ERROR "Can't back up this unix Stream" STREAM]) - -(UNIX-STREAM-EOFP-NEW - [LAMBDA (STREAM) (* ; - "Edited 13-Jun-90 01:07 by mitani") - -(* ;;; "true if bsp STREAM is at end of file, i.e. is at a mark") - - (COND - ((AND (ffetch (STREAM CBUFPTR) of (\DTEST STREAM 'STREAM)) - (< (ffetch (STREAM COFFSET) of STREAM) - (ffetch (STREAM CBUFSIZE) of STREAM))) - NIL) - (T (NOT (UNIX-GET-NEXT-BUFFER STREAM 'READ T]) - -(UNIX-STREAM-OUT - [LAMBDA (STREAM CHAR) (* ; "Edited 12-Jun-90 12:58 by jrb:") - (OR (UNIX-WRITE (UNIX-CHANNEL STREAM) - (\DTEST CHAR 'SMALLP)) - (CL:ERROR 'XCL:STREAM-NOT-OPEN STREAM]) - -(UNIX-STREAM-CLOSE - [LAMBDA (STREAM) (* ; "Edited 12-Aug-88 13:24 by drc:") - (PROG1 (UNIX-KILL (UNIX-CHANNEL STREAM)) - (CL:SETF (UNIX-CHANNEL STREAM) - NIL) - (CL:SETF (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - (REMOVE STREAM (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*))))]) -) -(DECLARE%: DOEVAL@COMPILE DONTCOPY - -(GLOBALVARS *NEW-SHELL-DEVICE*) -) -(DECLARE%: DONTEVAL@LOAD DOCOPY - -(INITIALIZE-NEW-SHELL-DEVICE) - - -(ADDTOVAR AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN) -) - - - -(* ; "Stuff for direct manipulation of Unix sockets") - -(DEFINEQ - -(CREATE-UNIX-SOCKET-STREAM - [LAMBDA (PATHNAME) (* ; "Edited 29-May-90 16:23 by jrb:") - (LET [(STR (create STREAM - ACCESS _ 'BOTH - DEVICE _ *NEW-SHELL-DEVICE* - EOLCONVENTION _ LF.EOLC)) - (CHAN (SUBRCALL UNIX-HANDLECOMM 12 (\DTEST PATHNAME 'ONED-ARRAY] - (if CHAN - then (CL:SETF (UNIX-CHANNEL STR) - CHAN) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - STR) - STR - else NIL]) - -(ACCEPT-UNIX-SOCKET-STREAM - [LAMBDA (SOCKSTREAM) (* ; "Edited 29-May-90 16:31 by jrb:") - (LET ((CHAN (UNIX-CHANNEL SOCKSTREAM)) - NEWCHAN) - (SELECTQ (SETQ NEWCHAN (SUBRCALL UNIX-HANDLECOMM 13 CHAN)) - ((-1 NIL) - NEWCHAN) - (LET ((NEWSTREAM (create STREAM - ACCESS _ 'BOTH - DEVICE _ *NEW-SHELL-DEVICE* - EOLCONVENTION _ LF.EOLC))) - (CL:SETF (UNIX-CHANNEL NEWSTREAM) - NEWCHAN) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - NEWSTREAM) - NEWSTREAM]) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(PUTPROPS UNIX-CHANNEL MACRO ((STR) - (fetch (STREAM F1) of STR))) -) - - -(CHECKIMPORTS '(FILEIO LLSUBRS) - T) -) - - - -(* ;; -"Obsolete stuff. This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device" -) - -(DEFINEQ - -(UNIX-BACKFILEPTR - [LAMBDA (STREAM) (* ; "Edited 14-Dec-88 09:52 by bane") - - (* ;; "The trick here is to use the existing mechanisms for UNIX-PEEKCHAR") - - (COND - ((UNIX-PEEKEDCHAR STREAM) - (ERROR "Can only back up one character" STREAM)) - ((NOT (UNIX-LASTCHAR STREAM)) - (ERROR "Can't back up past beginning of stream" STREAM)) - (T (CL:SETF (UNIX-PEEKEDCHAR STREAM) - (UNIX-LASTCHAR STREAM]) - -(UNIX-READ - [LAMBDA (STREAM NO-ERROR) (* ; "Edited 14-Dec-88 09:18 by bane") - (LET* [(CONN (UNIX-CHANNEL STREAM)) - (CH (AND CONN (SUBRCALL UNIX-HANDLECOMM 2 (\DTEST CONN 'SMALLP) - 0] - (COND - ((EQ CH T) - NIL) - [(EQ CH NIL) - (COND - (NO-ERROR NIL) - (T (\EOF.ACTION STREAM] - (T (CL:SETF (UNIX-LASTCHAR STREAM) - CH]) - -(INITIALIZE-SHELL-DEVICE - [LAMBDA NIL (* ; "Edited 14-Dec-88 10:45 by bane") - (SETQ *SHELL-DEVICE* (create FDEV - NODIRECTORIES _ T - DEVICENAME _ 'UNIX-PTY - BIN _ 'UNIX-STREAM-IN - BOUT _ 'UNIX-STREAM-OUT - PEEKBIN _ 'UNIX-STREAM-PEEK - CLOSEFILE _ 'UNIX-STREAM-CLOSE - GETFILEINFO _ 'NILL - SETFILEINFO _ 'NILL - EOFP _ 'UNIX-STREAM-EOFP - BACKFILEPTR _ 'UNIX-BACKFILEPTR]) - -(UNIX-STREAM-IN - [LAMBDA (STREAM) (* ; "Edited 9-May-88 15:05 by ") - (LET (CH) - (if (SETQ CH (UNIX-PEEKEDCHAR STREAM)) - then (CL:SETF (UNIX-PEEKEDCHAR STREAM) - NIL) - else (while (NOT (SETQ CH (UNIX-READ STREAM))) do (BLOCK))) - CH]) - -(UNIX-STREAM-EOFP - [LAMBDA (STREAM) (* ; "Edited 2-Apr-90 11:51 by jds") - - (* ;; "EOFP method for unix-shell streams. Notices when there are chars yet to read and doesn't set EOFP.") - - (AND (NOT (UNIX-PEEKEDCHAR STREAM)) - (LET* [(CONN (UNIX-CHANNEL STREAM)) - (CH (AND CONN (SUBRCALL UNIX-HANDLECOMM 2 (\DTEST CONN 'SMALLP) - 0] - (COND - ((EQ CH T) - NIL) - ((EQ CH NIL) - T) - (T (CL:SETF (UNIX-PEEKEDCHAR STREAM) - CH) - (CL:SETF (UNIX-LASTCHAR STREAM) - CH) - NIL]) - -(UNIX-STREAM-PEEK - [LAMBDA (STREAM NO-ERROR) (* ; "Edited 24-Jun-88 15:07 by drc:") - (OR (UNIX-PEEKEDCHAR STREAM) - (CL:SETF (UNIX-PEEKEDCHAR STREAM) - (UNIX-READ STREAM NO-ERROR]) -) -(DECLARE%: DOEVAL@COMPILE DONTCOPY - -(GLOBALVARS *SHELL-DEVICE*) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(PUTPROPS UNIX-PEEKEDCHAR MACRO ((STR) - (FETCH (STREAM F2) OF STR))) - -(PUTPROPS UNIX-LASTCHAR MACRO ((STR) - (FETCH (STREAM F3) OF STR))) -) -) -(DECLARE%: DONTEVAL@LOAD DOCOPY - -(INITIALIZE-SHELL-DEVICE) -) -(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS - -(ADDTOVAR NLAMA ) - -(ADDTOVAR NLAML ) - -(ADDTOVAR LAMA ) -) -(PUTPROPS UNIXCOMM COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 2018)) -(DECLARE%: DONTCOPY - (FILEMAP (NIL (2648 8649 (FORK-SHELL 2658 . 3855) (FORK-UNIX 3857 . 4033) (UNIX-KILL 4035 . 4224) ( -UNIX-WRITE 4226 . 4937) (CREATE-SHELL-STREAM 4939 . 6255) (CREATE-PROCESS-STREAM 6257 . 7746) ( -UNIXCOMM-AROUNDEXITFN 7748 . 8647)) (8697 13685 (INITIALIZE-NEW-SHELL-DEVICE 8707 . 9800) ( -UNIX-GET-NEXT-BUFFER 9802 . 12002) (UNIX-BACKFILEPTR-NEW 12004 . 12483) (UNIX-STREAM-EOFP-NEW 12485 . -13031) (UNIX-STREAM-OUT 13033 . 13289) (UNIX-STREAM-CLOSE 13291 . 13683)) (13941 15806 ( -CREATE-UNIX-SOCKET-STREAM 13951 . 14812) (ACCEPT-UNIX-SOCKET-STREAM 14814 . 15804)) (16155 19334 ( -UNIX-BACKFILEPTR 16165 . 16663) (UNIX-READ 16665 . 17187) (INITIALIZE-SHELL-DEVICE 17189 . 17928) ( -UNIX-STREAM-IN 17930 . 18306) (UNIX-STREAM-EOFP 18308 . 19082) (UNIX-STREAM-PEEK 19084 . 19332))))) -STOP diff --git a/sources/UNIXCOMM.LCOM b/sources/UNIXCOMM.LCOM deleted file mode 100644 index 28c3c812..00000000 --- a/sources/UNIXCOMM.LCOM +++ /dev/null @@ -1,460 +0,0 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) - -(FILECREATED "26-Jun-2022 14:27:33" {DSK}larry>medley>library>UNIXCOMM.;2 19997 - - :CHANGES-TO (FNS CREATE-PROCESS-STREAM) - - :PREVIOUS-DATE "25-Apr-2018 07:31:56" {DSK}larry>medley>library>UNIXCOMM.;1) - - -(* ; " -Copyright (c) 1988-1990, 2018 by Venue & Xerox Corporation. -") - -(PRETTYCOMPRINT UNIXCOMMCOMS) - -(RPAQQ UNIXCOMMCOMS - [ - (* ;; "streams to UNIX processes & pseudo terminals") - - - (* ;; "this stuff should really be implemented in terms of {SHELL} and {PTY} devices") - - (COMS (* ; "Forking stuff") - (FNS FORK-SHELL FORK-UNIX UNIX-KILL UNIX-WRITE CREATE-SHELL-STREAM - CREATE-PROCESS-STREAM UNIXCOMM-AROUNDEXITFN)) - [COMS (* ; "Operations on the shell device") - (FNS INITIALIZE-NEW-SHELL-DEVICE UNIX-GET-NEXT-BUFFER UNIX-BACKFILEPTR-NEW - UNIX-STREAM-EOFP-NEW UNIX-STREAM-OUT UNIX-STREAM-CLOSE) - (GLOBALVARS *NEW-SHELL-DEVICE*) - (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-NEW-SHELL-DEVICE)) - (ADDVARS (AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN] - (COMS (* ; - "Stuff for direct manipulation of Unix sockets") - (FNS CREATE-UNIX-SOCKET-STREAM ACCEPT-UNIX-SOCKET-STREAM)) - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-CHANNEL) - (P (CHECKIMPORTS '(FILEIO LLSUBRS) - T))) - [COMS - (* ;; "Obsolete stuff. This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device") - - (FNS UNIX-BACKFILEPTR UNIX-READ INITIALIZE-SHELL-DEVICE UNIX-STREAM-IN UNIX-STREAM-EOFP - UNIX-STREAM-PEEK) - (GLOBALVARS *SHELL-DEVICE*) - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-PEEKEDCHAR UNIX-LASTCHAR)) - (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-SHELL-DEVICE] - (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) - (NLAML) - (LAMA]) - - - -(* ;; "streams to UNIX processes & pseudo terminals") - - - - -(* ;; "this stuff should really be implemented in terms of {SHELL} and {PTY} devices") - - - - -(* ; "Forking stuff") - -(DEFINEQ - -(FORK-SHELL - [LAMBDA (TERMTYPE COMMAND) (* ; "Edited 14-Feb-90 14:27 by bvm") - (if (SUBRCALL UNIX-HANDLECOMM 8) - then (* ; - "Yes, lde supports this new version") - [SUBRCALL UNIX-HANDLECOMM 11 (if (NULL TERMTYPE) - then "" - elseif (TYPEP TERMTYPE 'ONED-ARRAY) - then TERMTYPE - else (\DTEST (LISP-TO-UNIX-TERMTYPE TERMTYPE) - 'ONED-ARRAY)) - (if (NULL COMMAND) - then "" - else (\DTEST COMMAND 'ONED-ARRAY] - elseif COMMAND - then (* ; - "have to use a different old call") - (FORK-UNIX COMMAND) - else (SUBRCALL UNIX-HANDLECOMM 4]) - -(FORK-UNIX - [LAMBDA (STR) (* ; "Edited 25-May-88 15:47 by drc:") - (SUBRCALL UNIX-HANDLECOMM 0 (\DTEST STR 'ONED-ARRAY]) - -(UNIX-KILL - [LAMBDA (CONN) (* ; "Edited 25-May-88 16:04 by drc:") - (if CONN - then (SUBRCALL UNIX-HANDLECOMM 3 CONN 0]) - -(UNIX-WRITE - [LAMBDA (CONN VAL) (* ; "Edited 24-Sep-90 11:27 by jds") - - (* ;; "Write a byte (VAL) to the outgoing pipe connection CONN. If the write fails for non-fatal reasons (i.e., would block), loop unitl it succeeds. If the write returns NIL (meaning total failure), pass that along to the caller.") - - (PROG (LENGTH-WRITTEN) - WRITE-LOOP - [SETQ LENGTH-WRITTEN (SUBRCALL UNIX-HANDLECOMM 1 (\DTEST CONN 'SMALLP) - (\DTEST VAL 'SMALLP] - (COND - ((AND LENGTH-WRITTEN (IEQP 0 LENGTH-WRITTEN)) - (BLOCK) - (GO WRITE-LOOP))) - (RETURN LENGTH-WRITTEN]) - -(CREATE-SHELL-STREAM - [LAMBDA (TERMTYPE COMMAND) (* ; "Edited 21-May-90 15:39 by jrb:") - (LET ((CHAN (FORK-SHELL TERMTYPE COMMAND)) - (SHELL-DEV (if (SUBRCALL UNIX-HANDLECOMM 8) - then (* ; - "SUBRCALL tests that this is supported") - *NEW-SHELL-DEVICE* - else *SHELL-DEVICE*))) - (COND - (CHAN (LET ((STR (create STREAM - ACCESS _ 'BOTH - DEVICE _ SHELL-DEV))) - (CL:SETF (UNIX-CHANNEL STR) - CHAN) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - STR) - (STREAMPROP STR 'SENDSCREENPARAMS (FUNCTION UNIX.SENDSCREENPARAMS)) - (STREAMPROP STR 'SETDISPLAYTYPE (FUNCTION UNIX.SETDISPLAYTYPE)) - STR]) - -(CREATE-PROCESS-STREAM - [LAMBDA (COMM) (* ; "Edited 26-Jun-2022 13:52 by larry") - (* ; - "Edited 26-Jun-2022 13:31 by lmm - set external format of shell stream to utf-8 ??") - (* ; "Edited 21-May-90 15:39 by jrb:") - (LET* ((SHELL-DEV (if (SUBRCALL UNIX-HANDLECOMM 8) - then (* ; - "SUBRCALL tests that this is supported") - *NEW-SHELL-DEVICE* - else *SHELL-DEVICE*)) - (STR (create STREAM - ACCESS _ 'BOTH - DEVICE _ SHELL-DEV - EOLCONVENTION _ LF.EOLC)) - (CHAN (FORK-UNIX COMM))) - (if CHAN - then (CL:SETF (UNIX-CHANNEL STR) - CHAN) - (\EXTERNALFORMAT STR ':UTF-8) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - STR) - STR - else NIL]) - -(UNIXCOMM-AROUNDEXITFN - [LAMBDA (EVENT) (* ; "Edited 2-Jul-90 16:35 by jrb:") - (CASE EVENT - ((AFTERLOGOUT AFTERMAKESYS AFTERSAVEVM AFTERSYSOUT) (for STREAM - in (fetch (FDEV OPENFILELST) - of *SHELL-DEVICE*) - do (CLOSEF STREAM))) - ((BEFORELOGOUT BEFOREMAKESYS BEFORESYSOUT) - - (* ;; - "Make sure any Unix sockets get closed here, so their file system handles get closed as well") - - (for STREAM in (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - when (EQ -3 (SUBRCALL UNIX-HANDLECOMM 14 (UNIX-CHANNEL STREAM))) - do (CLOSEF STREAM))))]) -) - - - -(* ; "Operations on the shell device") - -(DEFINEQ - -(INITIALIZE-NEW-SHELL-DEVICE - [LAMBDA NIL (* ; "Edited 12-Feb-90 17:00 by bvm") - (SETQ *NEW-SHELL-DEVICE* (create FDEV - FDBINABLE _ T - NODIRECTORIES _ T - DEVICENAME _ (FUNCTION UNIX-PTY-NEW) - BIN _ (FUNCTION \BUFFERED.BIN) - BOUT _ (FUNCTION UNIX-STREAM-OUT) - PEEKBIN _ (FUNCTION \BUFFERED.PEEKBIN) - CLOSEFILE _ (FUNCTION UNIX-STREAM-CLOSE) - GETFILEINFO _ (FUNCTION NILL) - SETFILEINFO _ (FUNCTION NILL) - EOFP _ (FUNCTION UNIX-STREAM-EOFP-NEW) - BACKFILEPTR _ (FUNCTION UNIX-BACKFILEPTR-NEW) - GETNEXTBUFFER _ (FUNCTION UNIX-GET-NEXT-BUFFER) - BLOCKIN _ (FUNCTION \BUFFERED.BINS]) - -(UNIX-GET-NEXT-BUFFER - [LAMBDA (STREAM WHATFOR NOERRORFLG) (* ; - "Edited 13-Jun-90 01:07 by mitani") - (CASE WHATFOR - (READ [PROG ([BUF (ffetch (STREAM CBUFPTR) of (\DTEST STREAM 'STREAM] - (CONN (UNIX-CHANNEL STREAM)) - LEN) - RETRY - (BLOCK) (* ; - "Just so other procs get to run when someone is pounding output at Chat") - (if [AND CONN (SETQ LEN (SUBRCALL UNIX-HANDLECOMM 9 (\DTEST CONN 'SMALLP) - (OR BUF (replace (STREAM CBUFPTR) - of STREAM - with (SETQ BUF - (NCREATE 'VMEMPAGEP] - then (if (EQ LEN T) - then (* ; - " no input available, but still alive") - (if NOERRORFLG - then (RETURN NIL) - else (* ; - "Called from BIN--wait and try again") - (GO RETRY)) - else (UNINTERRUPTABLY - (replace (STREAM COFFSET) of STREAM - with 0) - (replace (STREAM CBUFSIZE) of STREAM - with LEN)) - (RETURN T)) - else (RETURN (AND (NOT NOERRORFLG) - (\EOF.ACTION STREAM]) - (T (SHOULDNT)))]) - -(UNIX-BACKFILEPTR-NEW - [LAMBDA (STREAM) (* ; - "Edited 13-Jun-90 01:07 by mitani") - (COND - ((AND (fetch (STREAM CBUFPTR) of STREAM) - (> (fetch (STREAM COFFSET) of STREAM) - 0)) - (add (fetch (STREAM COFFSET) of STREAM) - -1)) - (T (ERROR "Can't back up this unix Stream" STREAM]) - -(UNIX-STREAM-EOFP-NEW - [LAMBDA (STREAM) (* ; - "Edited 13-Jun-90 01:07 by mitani") - -(* ;;; "true if bsp STREAM is at end of file, i.e. is at a mark") - - (COND - ((AND (ffetch (STREAM CBUFPTR) of (\DTEST STREAM 'STREAM)) - (< (ffetch (STREAM COFFSET) of STREAM) - (ffetch (STREAM CBUFSIZE) of STREAM))) - NIL) - (T (NOT (UNIX-GET-NEXT-BUFFER STREAM 'READ T]) - -(UNIX-STREAM-OUT - [LAMBDA (STREAM CHAR) (* ; "Edited 12-Jun-90 12:58 by jrb:") - (OR (UNIX-WRITE (UNIX-CHANNEL STREAM) - (\DTEST CHAR 'SMALLP)) - (CL:ERROR 'XCL:STREAM-NOT-OPEN STREAM]) - -(UNIX-STREAM-CLOSE - [LAMBDA (STREAM) (* ; "Edited 12-Aug-88 13:24 by drc:") - (PROG1 (UNIX-KILL (UNIX-CHANNEL STREAM)) - (CL:SETF (UNIX-CHANNEL STREAM) - NIL) - (CL:SETF (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - (REMOVE STREAM (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*))))]) -) -(DECLARE%: DOEVAL@COMPILE DONTCOPY - -(GLOBALVARS *NEW-SHELL-DEVICE*) -) -(DECLARE%: DONTEVAL@LOAD DOCOPY - -(INITIALIZE-NEW-SHELL-DEVICE) - - -(ADDTOVAR AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN) -) - - - -(* ; "Stuff for direct manipulation of Unix sockets") - -(DEFINEQ - -(CREATE-UNIX-SOCKET-STREAM - [LAMBDA (PATHNAME) (* ; "Edited 29-May-90 16:23 by jrb:") - (LET [(STR (create STREAM - ACCESS _ 'BOTH - DEVICE _ *NEW-SHELL-DEVICE* - EOLCONVENTION _ LF.EOLC)) - (CHAN (SUBRCALL UNIX-HANDLECOMM 12 (\DTEST PATHNAME 'ONED-ARRAY] - (if CHAN - then (CL:SETF (UNIX-CHANNEL STR) - CHAN) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - STR) - STR - else NIL]) - -(ACCEPT-UNIX-SOCKET-STREAM - [LAMBDA (SOCKSTREAM) (* ; "Edited 29-May-90 16:31 by jrb:") - (LET ((CHAN (UNIX-CHANNEL SOCKSTREAM)) - NEWCHAN) - (SELECTQ (SETQ NEWCHAN (SUBRCALL UNIX-HANDLECOMM 13 CHAN)) - ((-1 NIL) - NEWCHAN) - (LET ((NEWSTREAM (create STREAM - ACCESS _ 'BOTH - DEVICE _ *NEW-SHELL-DEVICE* - EOLCONVENTION _ LF.EOLC))) - (CL:SETF (UNIX-CHANNEL NEWSTREAM) - NEWCHAN) - - (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether. Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.") - - (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*) - NEWSTREAM) - NEWSTREAM]) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(PUTPROPS UNIX-CHANNEL MACRO ((STR) - (fetch (STREAM F1) of STR))) -) - - -(CHECKIMPORTS '(FILEIO LLSUBRS) - T) -) - - - -(* ;; -"Obsolete stuff. This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device" -) - -(DEFINEQ - -(UNIX-BACKFILEPTR - [LAMBDA (STREAM) (* ; "Edited 14-Dec-88 09:52 by bane") - - (* ;; "The trick here is to use the existing mechanisms for UNIX-PEEKCHAR") - - (COND - ((UNIX-PEEKEDCHAR STREAM) - (ERROR "Can only back up one character" STREAM)) - ((NOT (UNIX-LASTCHAR STREAM)) - (ERROR "Can't back up past beginning of stream" STREAM)) - (T (CL:SETF (UNIX-PEEKEDCHAR STREAM) - (UNIX-LASTCHAR STREAM]) - -(UNIX-READ - [LAMBDA (STREAM NO-ERROR) (* ; "Edited 14-Dec-88 09:18 by bane") - (LET* [(CONN (UNIX-CHANNEL STREAM)) - (CH (AND CONN (SUBRCALL UNIX-HANDLECOMM 2 (\DTEST CONN 'SMALLP) - 0] - (COND - ((EQ CH T) - NIL) - [(EQ CH NIL) - (COND - (NO-ERROR NIL) - (T (\EOF.ACTION STREAM] - (T (CL:SETF (UNIX-LASTCHAR STREAM) - CH]) - -(INITIALIZE-SHELL-DEVICE - [LAMBDA NIL (* ; "Edited 14-Dec-88 10:45 by bane") - (SETQ *SHELL-DEVICE* (create FDEV - NODIRECTORIES _ T - DEVICENAME _ 'UNIX-PTY - BIN _ 'UNIX-STREAM-IN - BOUT _ 'UNIX-STREAM-OUT - PEEKBIN _ 'UNIX-STREAM-PEEK - CLOSEFILE _ 'UNIX-STREAM-CLOSE - GETFILEINFO _ 'NILL - SETFILEINFO _ 'NILL - EOFP _ 'UNIX-STREAM-EOFP - BACKFILEPTR _ 'UNIX-BACKFILEPTR]) - -(UNIX-STREAM-IN - [LAMBDA (STREAM) (* ; "Edited 9-May-88 15:05 by ") - (LET (CH) - (if (SETQ CH (UNIX-PEEKEDCHAR STREAM)) - then (CL:SETF (UNIX-PEEKEDCHAR STREAM) - NIL) - else (while (NOT (SETQ CH (UNIX-READ STREAM))) do (BLOCK))) - CH]) - -(UNIX-STREAM-EOFP - [LAMBDA (STREAM) (* ; "Edited 2-Apr-90 11:51 by jds") - - (* ;; "EOFP method for unix-shell streams. Notices when there are chars yet to read and doesn't set EOFP.") - - (AND (NOT (UNIX-PEEKEDCHAR STREAM)) - (LET* [(CONN (UNIX-CHANNEL STREAM)) - (CH (AND CONN (SUBRCALL UNIX-HANDLECOMM 2 (\DTEST CONN 'SMALLP) - 0] - (COND - ((EQ CH T) - NIL) - ((EQ CH NIL) - T) - (T (CL:SETF (UNIX-PEEKEDCHAR STREAM) - CH) - (CL:SETF (UNIX-LASTCHAR STREAM) - CH) - NIL]) - -(UNIX-STREAM-PEEK - [LAMBDA (STREAM NO-ERROR) (* ; "Edited 24-Jun-88 15:07 by drc:") - (OR (UNIX-PEEKEDCHAR STREAM) - (CL:SETF (UNIX-PEEKEDCHAR STREAM) - (UNIX-READ STREAM NO-ERROR]) -) -(DECLARE%: DOEVAL@COMPILE DONTCOPY - -(GLOBALVARS *SHELL-DEVICE*) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(PUTPROPS UNIX-PEEKEDCHAR MACRO ((STR) - (FETCH (STREAM F2) OF STR))) - -(PUTPROPS UNIX-LASTCHAR MACRO ((STR) - (FETCH (STREAM F3) OF STR))) -) -) -(DECLARE%: DONTEVAL@LOAD DOCOPY - -(INITIALIZE-SHELL-DEVICE) -) -(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS - -(ADDTOVAR NLAMA ) - -(ADDTOVAR NLAML ) - -(ADDTOVAR LAMA ) -) -(PUTPROPS UNIXCOMM COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 2018)) -(DECLARE%: DONTCOPY - (FILEMAP (NIL (2648 8649 (FORK-SHELL 2658 . 3855) (FORK-UNIX 3857 . 4033) (UNIX-KILL 4035 . 4224) ( -UNIX-WRITE 4226 . 4937) (CREATE-SHELL-STREAM 4939 . 6255) (CREATE-PROCESS-STREAM 6257 . 7746) ( -UNIXCOMM-AROUNDEXITFN 7748 . 8647)) (8697 13685 (INITIALIZE-NEW-SHELL-DEVICE 8707 . 9800) ( -UNIX-GET-NEXT-BUFFER 9802 . 12002) (UNIX-BACKFILEPTR-NEW 12004 . 12483) (UNIX-STREAM-EOFP-NEW 12485 . -13031) (UNIX-STREAM-OUT 13033 . 13289) (UNIX-STREAM-CLOSE 13291 . 13683)) (13941 15806 ( -CREATE-UNIX-SOCKET-STREAM 13951 . 14812) (ACCEPT-UNIX-SOCKET-STREAM 14814 . 15804)) (16155 19334 ( -UNIX-BACKFILEPTR 16165 . 16663) (UNIX-READ 16665 . 17187) (INITIALIZE-SHELL-DEVICE 17189 . 17928) ( -UNIX-STREAM-IN 17930 . 18306) (UNIX-STREAM-EOFP 18308 . 19082) (UNIX-STREAM-PEEK 19084 . 19332))))) -STOP