From c93e620624decd95278aedc8240c65956a64fb27 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Sat, 9 Jul 2022 17:12:27 -0700 Subject: [PATCH] Rmk53 added system externalformat (#823) * CLSTREAMS: Fix EOL/external format on error stream (synonym and 2-way) #815 * CMLFORMAT: makefile NEW to get functions in filemap * CLSTREAMS: cleanup formats for more types * FILEIO: Add readonly bit in streams for external-format * UNIXCOMM, EXTERNALFORMAT: Introduce STREAM-EXTERNALFORMAT --- library/UNIXCOMM | 33 ++++++++++++++++----------------- library/UNIXCOMM.LCOM | Bin 9174 -> 9183 bytes sources/EXTERNALFORMAT | 35 ++++++++++++++++++++++------------- sources/EXTERNALFORMAT.LCOM | Bin 10750 -> 10928 bytes 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/library/UNIXCOMM b/library/UNIXCOMM index 2e3c2efb..13153311 100644 --- a/library/UNIXCOMM +++ b/library/UNIXCOMM @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 3-Jul-2022 16:16:31"  -{DSK}kaplan>Local>medley3.5>working-medley>library>UNIXCOMM.;5 20396 +(FILECREATED " 7-Jul-2022 10:42:46"  +{DSK}kaplan>local>medley3.5>working-medley>library>UNIXCOMM.;6 20326 - :CHANGES-TO (FNS INITIALIZE-SHELL-DEVICE) + :CHANGES-TO (FNS INITIALIZE-NEW-SHELL-DEVICE) - :PREVIOUS-DATE " 3-Jul-2022 16:05:06" -{DSK}kaplan>Local>medley3.5>working-medley>library>UNIXCOMM.;3) + :PREVIOUS-DATE " 3-Jul-2022 16:16:31" +{DSK}kaplan>local>medley3.5>working-medley>library>UNIXCOMM.;5) (* ; " @@ -187,7 +187,8 @@ Copyright (c) 1988-1990, 2018, 2022 by Venue & Xerox Corporation. (DEFINEQ (INITIALIZE-NEW-SHELL-DEVICE - [LAMBDA NIL (* ; "Edited 3-Jul-2022 16:04 by rmk") + [LAMBDA NIL (* ; "Edited 7-Jul-2022 10:41 by rmk") + (* ; "Edited 3-Jul-2022 16:04 by rmk") (* ; "Edited 12-Feb-90 17:00 by bvm") (SETQ *NEW-SHELL-DEVICE* (create FDEV FDBINABLE _ T @@ -203,9 +204,7 @@ Copyright (c) 1988-1990, 2018, 2022 by Venue & Xerox Corporation. BACKFILEPTR _ (FUNCTION UNIX-BACKFILEPTR-NEW) GETNEXTBUFFER _ (FUNCTION UNIX-GET-NEXT-BUFFER) BLOCKIN _ (FUNCTION \BUFFERED.BINS) - DEFAULTEXTERNALFORMAT _ (AND (STRPOS ".UTF-8" (UNIX-GETENV "LANG" - )) - :UTF-8]) + DEFAULTEXTERNALFORMAT _ (SYSTEM-EXTERNALFORMAT]) (UNIX-GET-NEXT-BUFFER [LAMBDA (STREAM WHATFOR NOERRORFLG) (* ; @@ -456,12 +455,12 @@ Copyright (c) 1988-1990, 2018, 2022 by Venue & Xerox Corporation. (PUTPROPS UNIXCOMM FILETYPE FAKE-COMPILE-FILE) (PUTPROPS UNIXCOMM COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 2018 2022)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (2488 8459 (FORK-SHELL 2498 . 3695) (FORK-UNIX 3697 . 3873) (UNIX-KILL 3875 . 4064) ( -UNIX-WRITE 4066 . 4777) (CREATE-SHELL-STREAM 4779 . 6095) (CREATE-PROCESS-STREAM 6097 . 7556) ( -UNIXCOMM-AROUNDEXITFN 7558 . 8457)) (8507 13875 (INITIALIZE-NEW-SHELL-DEVICE 8517 . 9990) ( -UNIX-GET-NEXT-BUFFER 9992 . 12192) (UNIX-BACKFILEPTR-NEW 12194 . 12673) (UNIX-STREAM-EOFP-NEW 12675 . -13221) (UNIX-STREAM-OUT 13223 . 13479) (UNIX-STREAM-CLOSE 13481 . 13873)) (14131 15996 ( -CREATE-UNIX-SOCKET-STREAM 14141 . 15002) (ACCEPT-UNIX-SOCKET-STREAM 15004 . 15994)) (16345 19805 ( -UNIX-BACKFILEPTR 16355 . 16853) (UNIX-READ 16855 . 17377) (INITIALIZE-SHELL-DEVICE 17379 . 18399) ( -UNIX-STREAM-IN 18401 . 18777) (UNIX-STREAM-EOFP 18779 . 19553) (UNIX-STREAM-PEEK 19555 . 19803))))) + (FILEMAP (NIL (2492 8463 (FORK-SHELL 2502 . 3699) (FORK-UNIX 3701 . 3877) (UNIX-KILL 3879 . 4068) ( +UNIX-WRITE 4070 . 4781) (CREATE-SHELL-STREAM 4783 . 6099) (CREATE-PROCESS-STREAM 6101 . 7560) ( +UNIXCOMM-AROUNDEXITFN 7562 . 8461)) (8511 13805 (INITIALIZE-NEW-SHELL-DEVICE 8521 . 9920) ( +UNIX-GET-NEXT-BUFFER 9922 . 12122) (UNIX-BACKFILEPTR-NEW 12124 . 12603) (UNIX-STREAM-EOFP-NEW 12605 . +13151) (UNIX-STREAM-OUT 13153 . 13409) (UNIX-STREAM-CLOSE 13411 . 13803)) (14061 15926 ( +CREATE-UNIX-SOCKET-STREAM 14071 . 14932) (ACCEPT-UNIX-SOCKET-STREAM 14934 . 15924)) (16275 19735 ( +UNIX-BACKFILEPTR 16285 . 16783) (UNIX-READ 16785 . 17307) (INITIALIZE-SHELL-DEVICE 17309 . 18329) ( +UNIX-STREAM-IN 18331 . 18707) (UNIX-STREAM-EOFP 18709 . 19483) (UNIX-STREAM-PEEK 19485 . 19733))))) STOP diff --git a/library/UNIXCOMM.LCOM b/library/UNIXCOMM.LCOM index 42200f18ec459d123161b16f604d01e2ef6277ae..a60a6296d9245ed371bcecacccdd874c147c6680 100644 GIT binary patch delta 517 zcmZus%Syvg5Tz}mRs^+Z7lMot!6J#dH_5HZE~d9Jl1E8ywS_Kxbs;|S0g8yO1wpy^ z9SU8!67e70xbO%31Q%YhVi6a^oS8Xi=FE%x=3duwMS0<9OU5e3fK*GzmQHRqmu5%- zBp@9#)54}@5DBuY`^~l8?Y)hy<~lTw_x2AaE#UY0(FSbnfK;yfK6EM-MUh~AMADMe-Cg`HAEc)E@>rhx6PKTJ~~<+S?cJWklHcL|1O%d zxEUGqY3KQ9<8n1Q-a9(Z9n=mRwPwy|3u!z6M3PN*pPFahVwSz6U{+EsN&8@IW0E~a-74StU(lqm2w1F#*hTwmf+Hu232m87z(TebW@0m)c1uv zt$Ge!0itUVcsw@I^d3+R*mh|^L(dUI8rUV;i3mh7dj*Qr1AItV%fFq29o_}Y-^F&m z!UHN_Piy5Q=I%_jE5wHO#W_VgjA#s4*I}DmqOR?WU7zI&U#r1d*~zqOcCKMX1}ljR vg2C>yPg8)22FSMq7jcLIiJu&5-;Vb6vv*V)>~4s?Pt3F*#-=hXx7hjsflHN2 diff --git a/sources/EXTERNALFORMAT b/sources/EXTERNALFORMAT index 21c94bce..d9cb86fc 100644 --- a/sources/EXTERNALFORMAT +++ b/sources/EXTERNALFORMAT @@ -1,12 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 3-Jul-2022 08:55:41"  -{DSK}kaplan>local>medley3.5>working-medley>sources>EXTERNALFORMAT.;56 36413 +(FILECREATED " 7-Jul-2022 10:42:34"  +{DSK}kaplan>local>medley3.5>working-medley>sources>EXTERNALFORMAT.;57 36715 :CHANGES-TO (VARS EXTERNALFORMATCOMS) + (FNS SYSTEM-EXTERNALFORMAT) - :PREVIOUS-DATE " 3-Jul-2022 00:35:47" -{DSK}kaplan>local>medley3.5>working-medley>sources>EXTERNALFORMAT.;55) + :PREVIOUS-DATE " 3-Jul-2022 08:55:41" +{DSK}kaplan>local>medley3.5>working-medley>sources>EXTERNALFORMAT.;56) (PRETTYCOMPRINT EXTERNALFORMATCOMS) @@ -19,6 +20,7 @@ (SYSRECORDS EXTERNALFORMAT) (FNS \EXTERNALFORMAT MAKE-EXTERNALFORMAT \EXTERNALFORMAT.DEFPRINT) (FNS \INSTALL.EXTERNALFORMAT \REMOVE.EXTERNALFORMAT FIND-FORMAT) + (FNS SYSTEM-EXTERNALFORMAT) (GLOBALVARS *EXTERNALFORMATS* *DEFAULT-EXTERNALFORMAT*) (INITVARS (*EXTERNALFORMATS* NIL) (*DEFAULT-EXTERNALFORMAT* :XCCS)) @@ -288,6 +290,13 @@ OF EF))) (CL:UNLESS NOERROR (ERROR NAME "is not an external format"]) ) +(DEFINEQ + +(SYSTEM-EXTERNALFORMAT + [LAMBDA NIL (* ; "Edited 7-Jul-2022 10:41 by rmk") + (AND (STRPOS ".UTF-8" (UNIX-GETENV "LANG")) + :UTF-8]) +) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS *EXTERNALFORMATS* *DEFAULT-EXTERNALFORMAT*) @@ -695,13 +704,13 @@ (\CREATE.THROUGH.EXTERNALFORMAT) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (6535 13170 (\EXTERNALFORMAT 6545 . 10323) (MAKE-EXTERNALFORMAT 10325 . 12697) ( -\EXTERNALFORMAT.DEFPRINT 12699 . 13168)) (13171 16212 (\INSTALL.EXTERNALFORMAT 13181 . 14630) ( -\REMOVE.EXTERNALFORMAT 14632 . 15463) (FIND-FORMAT 15465 . 16210)) (16561 30496 (\OUTCHAR 16571 . -17788) (\INCCODE 17790 . 18943) (\BACKCCODE 18945 . 19808) (\BACKCCODE.EOLC 19810 . 22397) (\PEEKCCODE - 22399 . 22773) (\PEEKCCODE.NOEOLC 22775 . 23107) (\INCCODE.EOLC 23109 . 24789) (\FORMATBYTESTREAM -24791 . 26424) (\FORMATBYTESTRING 26426 . 27928) (\CHECKEOLC.CRLF 27930 . 30494)) (32098 34334 ( -\NULLDEVICE 32108 . 34010) (\NULL.OPENFILE 34012 . 34332)) (34474 36317 ( -\CREATE.THROUGH.EXTERNALFORMAT 34484 . 35286) (\THROUGHIN 35288 . 35708) (\THROUGHBACKCCODE 35710 . -35977) (\THROUGHOUTCHARFN 35979 . 36315))))) + (FILEMAP (NIL (6623 13258 (\EXTERNALFORMAT 6633 . 10411) (MAKE-EXTERNALFORMAT 10413 . 12785) ( +\EXTERNALFORMAT.DEFPRINT 12787 . 13256)) (13259 16300 (\INSTALL.EXTERNALFORMAT 13269 . 14718) ( +\REMOVE.EXTERNALFORMAT 14720 . 15551) (FIND-FORMAT 15553 . 16298)) (16301 16514 (SYSTEM-EXTERNALFORMAT + 16311 . 16512)) (16863 30798 (\OUTCHAR 16873 . 18090) (\INCCODE 18092 . 19245) (\BACKCCODE 19247 . +20110) (\BACKCCODE.EOLC 20112 . 22699) (\PEEKCCODE 22701 . 23075) (\PEEKCCODE.NOEOLC 23077 . 23409) ( +\INCCODE.EOLC 23411 . 25091) (\FORMATBYTESTREAM 25093 . 26726) (\FORMATBYTESTRING 26728 . 28230) ( +\CHECKEOLC.CRLF 28232 . 30796)) (32400 34636 (\NULLDEVICE 32410 . 34312) (\NULL.OPENFILE 34314 . 34634 +)) (34776 36619 (\CREATE.THROUGH.EXTERNALFORMAT 34786 . 35588) (\THROUGHIN 35590 . 36010) ( +\THROUGHBACKCCODE 36012 . 36279) (\THROUGHOUTCHARFN 36281 . 36617))))) STOP diff --git a/sources/EXTERNALFORMAT.LCOM b/sources/EXTERNALFORMAT.LCOM index 3dfcd7fa53fa1a6ef18fcd67205822f010e15a01..3584bd0e6e0de7fccea8125333750cda77508e8e 100644 GIT binary patch delta 457 zcmZutJx{_=6s1H&3Nc2Epow^WASos_Z7GzNsgzezEQPeM2niS`jghE}i@!qhMkoJ) z2@bkCySqBN`45am5~B%sxcA)8b8^4D2miL0RQTrgh?fLO0#VRpNh`|Z^P`kf00iYf zJynxbtu%g5?|6NW;1-X21iOxIn{BtH6F9p7Wcs!ZP^K9sRr$YL6f{9X1(q`{8yhax z39bhObI9p(*oi7oEGuG(zA)S-XF49t<)k0XHa%gwlVMnoEzU;h{lXeO&P0Y=p};PG zU2KZjse6o`PQyxw6IJkt+i80s%HTUzk8fatoo*mgDud<|ldl9AR6w@wG!V#u_J69A zyZFs|a*i;XKzW9xS13)JC_xWVHOQWF*`+!*JFevr`nkJ7-w;}53xNS=v|Aoz$WlA3}|v!S7qCYOerr;n?1kgH>etIK45rc^csV>1&&s& zH6}AM$+82jF|{%=pIGh3Vyej%GkGJY#O8h`HO|c@Jmq4Ok1NSe&SjOF{9lQSk!v!i zvi0OFRb@^WSGRy5PrneZ$qUsaCwD3<326d>f`+rdZ?J-fmV&jl0@vid%Aq_lPL9sr z&d&ZWu0R1f6<^^PH~%1C#}KE;5ZB-kpb_ps@j8_t?jYA-|Ii?3*I*!jfw;ux&nkOa E0l@Q2>i_@%