1
0
mirror of synced 2026-04-27 12:39:46 +00:00

FILEIO, MACHINEINDEPENDENT

\EXTERNALFORMAT extracts the format from a reader-environment
WRITEFILE uses the format in *OLD-IINTERLISP-READ-ENVIRONMENT* (now :XCCS)
This commit is contained in:
rmkaplan
2021-08-05 21:08:05 -07:00
parent c2cff44a64
commit b1d209484a
4 changed files with 96 additions and 90 deletions

View File

@@ -1,11 +1,11 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT XCCS)
(FILECREATED " 5-Aug-2021 14:42:41" 
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;72 180878
(FILECREATED " 5-Aug-2021 20:39:21" 
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;73 181010
changes to%: (FNS \INSTALL.EXTERNALFORMAT)
changes to%: (FNS \EXTERNALFORMAT)
previous date%: " 2-Aug-2021 10:13:47"
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;71)
previous date%: " 5-Aug-2021 14:42:41"
{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;72)
(* ; "
@@ -1326,7 +1326,7 @@ Copyright (c) 1981-1993, 1999, 2020-2021 by Venue & Xerox Corporation.
(CL:UNLESS NOERROR (ERROR NAME "is not an external format"])
(\EXTERNALFORMAT
[LAMBDA (STREAM NEWFORMAT/NAME) (* ; "Edited 2-Aug-2021 10:11 by rmk:")
[LAMBDA (STREAM NEWFORMAT/NAME) (* ; "Edited 5-Aug-2021 20:39 by rmk:")
(* ; "Edited 26-Feb-91 13:20 by nm")
(* ;;; ";;; RMK July 2020: Added interface for per-device default external format. \DO.PARAMS.AT.OPEN will make that call even if it is not specified from the open. STREAMPROP is fixed to call \EXTERNALFORMAT to set the property EXTERNALFORMAT, to export a user-level way of manipulating this.")
@@ -1344,21 +1344,24 @@ Copyright (c) 1981-1993, 1999, 2020-2021 by Venue & Xerox Corporation.
(\DTEST STREAM 'STREAM)
(CL:WHEN NEWFORMAT/NAME
[LET (EXTFORMAT)
(if (type? EXTERNALFORMAT NEWFORMAT/NAME)
then (SETQ EXTFORMAT NEWFORMAT/NAME)
else (CL:WHEN (EQ NEWFORMAT/NAME :DEFAULT)
(SETQ NEWFORMAT/NAME (OR (CADR (ASSOC (fetch DEVICENAME
of (fetch DEVICE
of STREAM))
*DEFAULT-EXTERNALFORMATS*))
(FETCH (FDEV DEFAULTEXTERNALFORMAT)
OF (fetch DEVICE of STREAM))
*DEFAULT-EXTERNALFORMAT*)))
(SETQ EXTFORMAT (FIND-FORMAT NEWFORMAT/NAME))
(CL:UNLESS EXTFORMAT (ERROR NEWFORMAT/NAME
"is not a registered external format name"))
(CL:UNLESS (type? EXTERNALFORMAT EXTFORMAT)
(ERROR "INVALID EXTERNALFORMAT " EXTFORMAT)))
[COND
((type? EXTERNALFORMAT NEWFORMAT/NAME)
(SETQ EXTFORMAT NEWFORMAT/NAME))
[(AND (TYPE? READER-ENVIRONMENT NEWFORMAT/NAME)
(SETQ EXTFORMAT (FETCH (READER-ENVIRONMENT REFORMAT) OF NEWFORMAT/NAME]
(T (CL:WHEN (EQ NEWFORMAT/NAME :DEFAULT)
(SETQ NEWFORMAT/NAME (OR (CADR (ASSOC (fetch DEVICENAME
of (fetch DEVICE of
STREAM))
*DEFAULT-EXTERNALFORMATS*))
(FETCH (FDEV DEFAULTEXTERNALFORMAT)
OF (fetch DEVICE of STREAM))
*DEFAULT-EXTERNALFORMAT*)))
(SETQ EXTFORMAT (FIND-FORMAT NEWFORMAT/NAME))
(CL:UNLESS EXTFORMAT (ERROR NEWFORMAT/NAME
"is not a registered external format name"))
(CL:UNLESS (type? EXTERNALFORMAT EXTFORMAT)
(ERROR "INVALID EXTERNALFORMAT " EXTFORMAT]
(UNINTERRUPTABLY
(freplace (STREAM EXTERNALFORMAT) of STREAM with EXTFORMAT)
(CL:WHEN (ffetch (EXTERNALFORMAT EOLVALID) of EXTFORMAT)
@@ -3415,44 +3418,44 @@ update the map")
(PUTPROPS FILEIO COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1989
1990 1991 1992 1993 1999 2020 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (28425 31915 (STREAMPROP 28435 . 28869) (GETSTREAMPROP 28871 . 29344) (PUTSTREAMPROP
29346 . 31763) (STREAMP 31765 . 31913)) (31958 34477 (\DEFPRINT.BY.NAME 31968 . 33120) (
\STREAM.DEFPRINT 33122 . 34170) (\FDEV.DEFPRINT 34172 . 34475)) (34735 39776 (\GETACCESS 34745 . 35199
) (\SETACCESS 35201 . 39774)) (62780 64033 (MAKE-EXTERNALFORMAT 62790 . 64031)) (65219 72650 (
\INSTALL.EXTERNALFORMAT 65229 . 66678) (\REMOVE.EXTERNALFORMAT 66680 . 67511) (FIND-FORMAT 67513 .
68064) (\EXTERNALFORMAT 68066 . 72648)) (72973 74792 (\CREATE.THROUGH.EXTERNALFORMAT 72983 . 73785) (
\THROUGHIN 73787 . 74193) (\THROUGHBACKCCODE 74195 . 74440) (\THROUGHOUTCHARFN 74442 . 74790)) (74900
80869 (\DEFINEDEVICE 74910 . 77226) (\GETDEVICEFROMNAME 77228 . 77701) (\GETDEVICEFROMHOSTNAME 77703
. 78747) (\REMOVEDEVICE 78749 . 79872) (\REMOVEDEVICE.NAMES 79874 . 80867)) (80909 105569 (\CLOSEFILE
80919 . 81744) (\DELETEFILE 81746 . 82040) (\DEVICEEVENT 82042 . 83812) (\GENERATEFILES 83814 . 84292
) (\GENERATENEXTFILE 84294 . 84945) (\GENERATEFILEINFO 84947 . 85408) (\GETFILENAME 85410 . 85799) (
\GENERIC.OUTFILEP 85801 . 86271) (\OPENFILE 86273 . 88851) (\DO.PARAMS.AT.OPEN 88853 . 91406) (
\RENAMEFILE 91408 . 91832) (\REVALIDATEFILE 91834 . 94436) (\PAGED.REVALIDATEFILELST 94438 . 95996) (
\PAGED.REVALIDATEFILES 95998 . 97717) (\PAGED.REVALIDATEFILE 97719 . 100002) (\BUFFERED.REVALIDATEFILE
100004 . 102290) (\BUFFERED.REVALIDATEFILELST 102292 . 103476) (\PRINT-REVALIDATION-RESULT 103478 .
103893) (\TRUNCATEFILE 103895 . 104286) (\FILE-CONFLICT 104288 . 105567)) (105605 110268 (
\GENERATENOFILES 105615 . 107711) (\NULLFILEGENERATOR 107713 . 107957) (\NOFILESNEXTFILEFN 107959 .
109950) (\NOFILESINFOFN 109952 . 110266)) (110387 112295 (\FILE.NOT.OPEN 110397 . 110910) (
\FILE.WONT.OPEN 110912 . 111240) (\ILLEGAL.DEVICEOP 111242 . 111524) (\IS.NOT.RANDACCESSP 111526 .
111972) (\STREAM.NOT.OPEN 111974 . 112293)) (112430 114728 (\FDEVINSTANCE 112440 . 114726)) (116278
123652 (CNDIR 116288 . 117593) (DIRECTORYNAME 117595 . 121778) (DIRECTORYNAMEP 121780 . 122396) (
HOSTNAMEP 122398 . 123205) (\ADD.CONNECTED.DIR 123207 . 123650)) (123697 154340 (\BACKFILEPTR 123707
. 123895) (\BACKPEEKBIN 123897 . 124258) (\BACKBIN 124260 . 124611) (BIN 124613 . 124830) (\BIN
124832 . 125109) (\BINS 125111 . 125397) (BOUT 125399 . 125761) (\BOUT 125763 . 126078) (\BOUTS 126080
. 126391) (COPYBYTES 126393 . 129725) (COPYCHARS 129727 . 136649) (COPYFILE 136651 . 137448) (
\COPYOPENFILE 137450 . 140523) (\INFER.FILE.TYPE 140525 . 141479) (EOFP 141481 . 141778) (FORCEOUTPUT
141780 . 142027) (\FLUSH.OPEN.STREAMS 142029 . 142385) (CHARSET 142387 . 144051) (ACCESS-CHARSET
144053 . 144270) (GETEOFPTR 144272 . 144522) (GETFILEINFO 144524 . 147717) (\TYPE.FROM.FILETYPE 147719
. 148189) (\FILETYPE.FROM.TYPE 148191 . 148370) (GETFILEPTR 148372 . 148624) (SETFILEINFO 148626 .
152239) (SETFILEPTR 152241 . 153960) (BOUT16 153962 . 154147) (BIN16 154149 . 154338)) (154443 159648
(\GENERIC.BINS 154453 . 154733) (\GENERIC.BOUTS 154735 . 155000) (\GENERIC.RENAMEFILE 155002 . 156833)
(\GENERIC.OPENP 156835 . 158150) (\GENERIC.READP 158152 . 159193) (\GENERIC.CHARSET 159195 . 159646))
(159649 159988 (\MAP-OPEN-STREAMS 159659 . 159986)) (161858 163938 (\EOF.ACTION 161868 . 162119) (
\EOSERROR 162121 . 162314) (\GETEOFPTR 162316 . 162498) (\INCFILEPTR 162500 . 162850) (\PEEKBIN 162852
. 163043) (\SETCLOSEDFILELENGTH 163045 . 163379) (\SETEOFPTR 163381 . 163569) (\SETFILEPTR 163571 .
163936)) (163939 164481 (\FIXPOUT 163949 . 164249) (\FIXPIN 164251 . 164479)) (164482 165090 (\BOUTEOL
164492 . 165088)) (168182 178046 (\BUFFERED.BIN 168192 . 169044) (\BUFFERED.PEEKBIN 169046 . 169828)
(\BUFFERED.BOUT 169830 . 170690) (\BUFFERED.BINS 170692 . 174377) (\BUFFERED.BOUTS 174379 . 176180) (
\BUFFERED.COPYBYTES 176182 . 178044)) (178075 180427 (\NULLDEVICE 178085 . 180103) (\NULL.OPENFILE
180105 . 180425)))))
(FILEMAP (NIL (28417 31907 (STREAMPROP 28427 . 28861) (GETSTREAMPROP 28863 . 29336) (PUTSTREAMPROP
29338 . 31755) (STREAMP 31757 . 31905)) (31950 34469 (\DEFPRINT.BY.NAME 31960 . 33112) (
\STREAM.DEFPRINT 33114 . 34162) (\FDEV.DEFPRINT 34164 . 34467)) (34727 39768 (\GETACCESS 34737 . 35191
) (\SETACCESS 35193 . 39766)) (62772 64025 (MAKE-EXTERNALFORMAT 62782 . 64023)) (65211 72782 (
\INSTALL.EXTERNALFORMAT 65221 . 66670) (\REMOVE.EXTERNALFORMAT 66672 . 67503) (FIND-FORMAT 67505 .
68056) (\EXTERNALFORMAT 68058 . 72780)) (73105 74924 (\CREATE.THROUGH.EXTERNALFORMAT 73115 . 73917) (
\THROUGHIN 73919 . 74325) (\THROUGHBACKCCODE 74327 . 74572) (\THROUGHOUTCHARFN 74574 . 74922)) (75032
81001 (\DEFINEDEVICE 75042 . 77358) (\GETDEVICEFROMNAME 77360 . 77833) (\GETDEVICEFROMHOSTNAME 77835
. 78879) (\REMOVEDEVICE 78881 . 80004) (\REMOVEDEVICE.NAMES 80006 . 80999)) (81041 105701 (\CLOSEFILE
81051 . 81876) (\DELETEFILE 81878 . 82172) (\DEVICEEVENT 82174 . 83944) (\GENERATEFILES 83946 . 84424
) (\GENERATENEXTFILE 84426 . 85077) (\GENERATEFILEINFO 85079 . 85540) (\GETFILENAME 85542 . 85931) (
\GENERIC.OUTFILEP 85933 . 86403) (\OPENFILE 86405 . 88983) (\DO.PARAMS.AT.OPEN 88985 . 91538) (
\RENAMEFILE 91540 . 91964) (\REVALIDATEFILE 91966 . 94568) (\PAGED.REVALIDATEFILELST 94570 . 96128) (
\PAGED.REVALIDATEFILES 96130 . 97849) (\PAGED.REVALIDATEFILE 97851 . 100134) (\BUFFERED.REVALIDATEFILE
100136 . 102422) (\BUFFERED.REVALIDATEFILELST 102424 . 103608) (\PRINT-REVALIDATION-RESULT 103610 .
104025) (\TRUNCATEFILE 104027 . 104418) (\FILE-CONFLICT 104420 . 105699)) (105737 110400 (
\GENERATENOFILES 105747 . 107843) (\NULLFILEGENERATOR 107845 . 108089) (\NOFILESNEXTFILEFN 108091 .
110082) (\NOFILESINFOFN 110084 . 110398)) (110519 112427 (\FILE.NOT.OPEN 110529 . 111042) (
\FILE.WONT.OPEN 111044 . 111372) (\ILLEGAL.DEVICEOP 111374 . 111656) (\IS.NOT.RANDACCESSP 111658 .
112104) (\STREAM.NOT.OPEN 112106 . 112425)) (112562 114860 (\FDEVINSTANCE 112572 . 114858)) (116410
123784 (CNDIR 116420 . 117725) (DIRECTORYNAME 117727 . 121910) (DIRECTORYNAMEP 121912 . 122528) (
HOSTNAMEP 122530 . 123337) (\ADD.CONNECTED.DIR 123339 . 123782)) (123829 154472 (\BACKFILEPTR 123839
. 124027) (\BACKPEEKBIN 124029 . 124390) (\BACKBIN 124392 . 124743) (BIN 124745 . 124962) (\BIN
124964 . 125241) (\BINS 125243 . 125529) (BOUT 125531 . 125893) (\BOUT 125895 . 126210) (\BOUTS 126212
. 126523) (COPYBYTES 126525 . 129857) (COPYCHARS 129859 . 136781) (COPYFILE 136783 . 137580) (
\COPYOPENFILE 137582 . 140655) (\INFER.FILE.TYPE 140657 . 141611) (EOFP 141613 . 141910) (FORCEOUTPUT
141912 . 142159) (\FLUSH.OPEN.STREAMS 142161 . 142517) (CHARSET 142519 . 144183) (ACCESS-CHARSET
144185 . 144402) (GETEOFPTR 144404 . 144654) (GETFILEINFO 144656 . 147849) (\TYPE.FROM.FILETYPE 147851
. 148321) (\FILETYPE.FROM.TYPE 148323 . 148502) (GETFILEPTR 148504 . 148756) (SETFILEINFO 148758 .
152371) (SETFILEPTR 152373 . 154092) (BOUT16 154094 . 154279) (BIN16 154281 . 154470)) (154575 159780
(\GENERIC.BINS 154585 . 154865) (\GENERIC.BOUTS 154867 . 155132) (\GENERIC.RENAMEFILE 155134 . 156965)
(\GENERIC.OPENP 156967 . 158282) (\GENERIC.READP 158284 . 159325) (\GENERIC.CHARSET 159327 . 159778))
(159781 160120 (\MAP-OPEN-STREAMS 159791 . 160118)) (161990 164070 (\EOF.ACTION 162000 . 162251) (
\EOSERROR 162253 . 162446) (\GETEOFPTR 162448 . 162630) (\INCFILEPTR 162632 . 162982) (\PEEKBIN 162984
. 163175) (\SETCLOSEDFILELENGTH 163177 . 163511) (\SETEOFPTR 163513 . 163701) (\SETFILEPTR 163703 .
164068)) (164071 164613 (\FIXPOUT 164081 . 164381) (\FIXPIN 164383 . 164611)) (164614 165222 (\BOUTEOL
164624 . 165220)) (168314 178178 (\BUFFERED.BIN 168324 . 169176) (\BUFFERED.PEEKBIN 169178 . 169960)
(\BUFFERED.BOUT 169962 . 170822) (\BUFFERED.BINS 170824 . 174509) (\BUFFERED.BOUTS 174511 . 176312) (
\BUFFERED.COPYBYTES 176314 . 178176)) (178207 180559 (\NULLDEVICE 178217 . 180235) (\NULL.OPENFILE
180237 . 180557)))))
STOP