From 1d2292aa62817308ac865de84de2e86d0aeff27d Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Mon, 27 Apr 2026 12:16:26 -0700 Subject: [PATCH] Fixing \DO.PARAMS.AT.OPEN take two (#2581) --- sources/FILEIO | 116 ++++++++++++++++++++------------------------ sources/FILEIO.LCOM | Bin 45838 -> 45848 bytes 2 files changed, 52 insertions(+), 64 deletions(-) diff --git a/sources/FILEIO b/sources/FILEIO index 115d7836..45dab841 100644 --- a/sources/FILEIO +++ b/sources/FILEIO @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10) -(FILECREATED "21-Apr-2026 20:57:55" {DSK}matt>Interlisp>medley>sources>FILEIO.;17 166496 +(FILECREATED "26-Apr-2026 23:27:40" {WMEDLEY}FILEIO.;146 165936 - :EDIT-BY "mth" + :EDIT-BY rmk :CHANGES-TO (FNS \DO.PARAMS.AT.OPEN) - :PREVIOUS-DATE "21-Apr-2026 20:24:53" {DSK}matt>Interlisp>medley>sources>FILEIO.;15) + :PREVIOUS-DATE "26-Apr-2026 21:00:55" {WMEDLEY}FILEIO.;145) (PRETTYCOMPRINT FILEIOCOMS) @@ -1446,7 +1446,8 @@ (GO RETRY]) (\DO.PARAMS.AT.OPEN - [LAMBDA (STREAM ACCESS PARAMETERS) (* ; "Edited 21-Apr-2026 20:57 by mth") + [LAMBDA (STREAM ACCESS PARAMETERS) (* ; "Edited 26-Apr-2026 23:27 by rmk") + (* ; "Edited 21-Apr-2026 20:57 by mth") (* ; "Edited 20-Apr-2026 17:36 by mth") (* ; "Edited 25-Dec-2024 10:54 by rmk") (* ; "Edited 15-Jul-2024 22:29 by rmk") @@ -1484,40 +1485,27 @@ (CHARSET (CHARSET STREAM VAL)) ((FORMAT EXTERNALFORMAT :EXTERNAL-FORMAT) (* ;; - "Ignore the case of the non-LISTP X setting VAL to T") + "This allows an EOL and format to be intermixed, the last ones of each are installed") - [if (LISTP X) - then - (* ;; - "VAL can be :UTF-8, CR, (UTF:8 CR), i.e. specify either one or both") - - (for V in (MKLIST VAL) do - (* ;; - "FIND-FORMAT doesn't know about :DEFAULT, so...") - - (if (OR (EQ V :DEFAULT) - (FIND-FORMAT V T)) - then (\EXTERNALFORMAT STREAM V) - else (SETQ EOL V]) + (for V inside VAL do (if (MEMB V '(LF CR CRLF ANY)) + then (SETQ EOL V) + else (\EXTERNALFORMAT STREAM V)))) (CONVHANKAKU (CONVHANKAKU STREAM VAL)) ((EOL EOLCONVENTION EOLC) (SETQ EOL VAL)) NIL) finally - (* ;; - "If not specified, default EOL to ANY--SETFILEINFO checks for output streams") + (* ;; "If EOL is not specified, default input streams to ANY. ") - (* ;; - " Cannot depend on SETFILEINFO checking for ANY on output stream, because it ERRORs!") - - (CL:WHEN (OR (NEQ (SETQ EOL (OR EOL 'ANY)) - 'ANY) - (EQ ACCESS 'INPUT)) + (CL:UNLESS (OR EOL (\GETSTREAM STREAM 'OUTPUT T)) + (SETQ EOL 'ANY)) + (CL:WHEN EOL (SETFILEINFO STREAM 'EOL EOL))) - (FOR FN IN STREAM-AFTER-OPEN-FNS DO (APPLY* FN STREAM ACCESS PARAMETERS]) + (for FN in STREAM-AFTER-OPEN-FNS do (APPLY* FN STREAM ACCESS PARAMETERS]) (\RENAMEFILE - [LAMBDA (OLDFILE NEWFILE) (* ; "Edited 25-Dec-2024 10:14 by rmk") + [LAMBDA (OLDFILE NEWFILE) (* ; "Edited 25-Apr-2026 16:03 by rmk") + (* ; "Edited 25-Dec-2024 10:14 by rmk") (* ; "Edited 16-Dec-2024 21:07 by rmk") (* hdj " 7-May-86 12:22") (SETQ OLDFILE (\ADD.CONNECTED.DIR OLDFILE)) @@ -1532,7 +1520,7 @@ NEW-DEVICE (TRUEFILENAME NEWFILE))) (CL:IF (PSEUDOHOSTP NEWFILE) - (PSEUDOFILENAME NEWFULLNAME) + (PSEUDOFILENAME NEWFULLNAME (FILENAMEFIELD NEWFILE 'HOST)) NEWFULLNAME))]) (\REVALIDATEFILE @@ -3172,39 +3160,39 @@ update the map") (ADDTOVAR LAMA \IS.NOT.RANDACCESSP \ILLEGAL.DEVICEOP STREAMPROP) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (27757 31873 (STREAMPROP 27767 . 28201) (GETSTREAMPROP 28203 . 28952) (PUTSTREAMPROP -28954 . 31721) (STREAMP 31723 . 31871)) (31916 35295 (\DEFPRINT.BY.NAME 31926 . 33078) ( -\STREAM.DEFPRINT 33080 . 34988) (\FDEV.DEFPRINT 34990 . 35293)) (35553 40594 (\GETACCESS 35563 . 36017 -) (\SETACCESS 36019 . 40592)) (60820 66789 (\DEFINEDEVICE 60830 . 63146) (\GETDEVICEFROMNAME 63148 . -63621) (\GETDEVICEFROMHOSTNAME 63623 . 64667) (\REMOVEDEVICE 64669 . 65792) (\REMOVEDEVICE.NAMES 65794 - . 66787)) (66829 94486 (\CLOSEFILE 66839 . 67664) (\DELETEFILE 67666 . 67960) (\DEVICEEVENT 67962 . -69732) (\GENERATEFILES 69734 . 70681) (\GENERATENEXTFILE 70683 . 71334) (\GENERATEFILEINFO 71336 . -71797) (\GETFILENAME 71799 . 72188) (\GENERIC.OUTFILEP 72190 . 72660) (\OPENFILE 72662 . 75240) ( -\DO.PARAMS.AT.OPEN 75242 . 79364) (\RENAMEFILE 79366 . 80322) (\REVALIDATEFILE 80324 . 82926) ( -\PAGED.REVALIDATEFILELST 82928 . 84486) (\PAGED.REVALIDATEFILES 84488 . 86207) (\PAGED.REVALIDATEFILE -86209 . 88492) (\BUFFERED.REVALIDATEFILE 88494 . 90780) (\BUFFERED.REVALIDATEFILELST 90782 . 91966) ( -\PRINT-REVALIDATION-RESULT 91968 . 92810) (\TRUNCATEFILE 92812 . 93203) (\FILE-CONFLICT 93205 . 94484) -) (94522 99185 (\GENERATENOFILES 94532 . 96628) (\NULLFILEGENERATOR 96630 . 96874) (\NOFILESNEXTFILEFN - 96876 . 98867) (\NOFILESINFOFN 98869 . 99183)) (99304 101212 (\FILE.NOT.OPEN 99314 . 99827) ( -\FILE.WONT.OPEN 99829 . 100157) (\ILLEGAL.DEVICEOP 100159 . 100441) (\IS.NOT.RANDACCESSP 100443 . -100889) (\STREAM.NOT.OPEN 100891 . 101210)) (101347 103645 (\FDEVINSTANCE 101357 . 103643)) (104847 -111818 (CNDIR 104857 . 106162) (DIRECTORYNAME 106164 . 109944) (DIRECTORYNAMEP 109946 . 110562) ( -HOSTNAMEP 110564 . 111371) (\ADD.CONNECTED.DIR 111373 . 111816)) (111863 140810 (\BACKFILEPTR 111873 - . 112061) (\BACKPEEKBIN 112063 . 112424) (\BACKBIN 112426 . 112777) (BIN 112779 . 112996) (\BIN -112998 . 113275) (\BINS 113277 . 113563) (BOUT 113565 . 113927) (\BOUT 113929 . 114244) (\BOUTS 114246 - . 114557) (COPYBYTES 114559 . 117891) (COPYCHARS 117893 . 121691) (COPYFILE 121693 . 123053) ( -\COPYOPENFILE 123055 . 126254) (\INFER.FILE.TYPE 126256 . 127210) (EOFP 127212 . 127509) (FORCEOUTPUT -127511 . 127758) (\FLUSH.OPEN.STREAMS 127760 . 128116) (CHARSET 128118 . 129477) (ACCESS-CHARSET -129479 . 130116) (GETEOFPTR 130118 . 130368) (GETFILEINFO 130370 . 133563) (\TYPE.FROM.FILETYPE 133565 - . 134035) (\FILETYPE.FROM.TYPE 134037 . 134216) (GETFILEPTR 134218 . 134470) (SETFILEINFO 134472 . -138709) (SETFILEPTR 138711 . 140430) (BOUT16 140432 . 140617) (BIN16 140619 . 140808)) (140913 148093 -(\GENERIC.BINS 140923 . 141203) (\GENERIC.BOUTS 141205 . 141470) (\GENERIC.RENAMEFILE 141472 . 143720) - (\GENERIC.OPENP 143722 . 145037) (\GENERIC.READP 145039 . 146191) (\GENERIC.CHARSET 146193 . 148091)) - (148094 148433 (\MAP-OPEN-STREAMS 148104 . 148431)) (150288 152368 (\EOF.ACTION 150298 . 150549) ( -\EOSERROR 150551 . 150744) (\GETEOFPTR 150746 . 150928) (\INCFILEPTR 150930 . 151280) (\PEEKBIN 151282 - . 151473) (\SETCLOSEDFILELENGTH 151475 . 151809) (\SETEOFPTR 151811 . 151999) (\SETFILEPTR 152001 . -152366)) (152369 152911 (\FIXPOUT 152379 . 152679) (\FIXPIN 152681 . 152909)) (152912 153478 (\BOUTEOL - 152922 . 153476)) (156374 166238 (\BUFFERED.BIN 156384 . 157236) (\BUFFERED.PEEKBIN 157238 . 158020) -(\BUFFERED.BOUT 158022 . 158882) (\BUFFERED.BINS 158884 . 162569) (\BUFFERED.BOUTS 162571 . 164372) ( -\BUFFERED.COPYBYTES 164374 . 166236))))) + (FILEMAP (NIL (27711 31827 (STREAMPROP 27721 . 28155) (GETSTREAMPROP 28157 . 28906) (PUTSTREAMPROP +28908 . 31675) (STREAMP 31677 . 31825)) (31870 35249 (\DEFPRINT.BY.NAME 31880 . 33032) ( +\STREAM.DEFPRINT 33034 . 34942) (\FDEV.DEFPRINT 34944 . 35247)) (35507 40548 (\GETACCESS 35517 . 35971 +) (\SETACCESS 35973 . 40546)) (60774 66743 (\DEFINEDEVICE 60784 . 63100) (\GETDEVICEFROMNAME 63102 . +63575) (\GETDEVICEFROMHOSTNAME 63577 . 64621) (\REMOVEDEVICE 64623 . 65746) (\REMOVEDEVICE.NAMES 65748 + . 66741)) (66783 93926 (\CLOSEFILE 66793 . 67618) (\DELETEFILE 67620 . 67914) (\DEVICEEVENT 67916 . +69686) (\GENERATEFILES 69688 . 70635) (\GENERATENEXTFILE 70637 . 71288) (\GENERATEFILEINFO 71290 . +71751) (\GETFILENAME 71753 . 72142) (\GENERIC.OUTFILEP 72144 . 72614) (\OPENFILE 72616 . 75194) ( +\DO.PARAMS.AT.OPEN 75196 . 78665) (\RENAMEFILE 78667 . 79762) (\REVALIDATEFILE 79764 . 82366) ( +\PAGED.REVALIDATEFILELST 82368 . 83926) (\PAGED.REVALIDATEFILES 83928 . 85647) (\PAGED.REVALIDATEFILE +85649 . 87932) (\BUFFERED.REVALIDATEFILE 87934 . 90220) (\BUFFERED.REVALIDATEFILELST 90222 . 91406) ( +\PRINT-REVALIDATION-RESULT 91408 . 92250) (\TRUNCATEFILE 92252 . 92643) (\FILE-CONFLICT 92645 . 93924) +) (93962 98625 (\GENERATENOFILES 93972 . 96068) (\NULLFILEGENERATOR 96070 . 96314) (\NOFILESNEXTFILEFN + 96316 . 98307) (\NOFILESINFOFN 98309 . 98623)) (98744 100652 (\FILE.NOT.OPEN 98754 . 99267) ( +\FILE.WONT.OPEN 99269 . 99597) (\ILLEGAL.DEVICEOP 99599 . 99881) (\IS.NOT.RANDACCESSP 99883 . 100329) +(\STREAM.NOT.OPEN 100331 . 100650)) (100787 103085 (\FDEVINSTANCE 100797 . 103083)) (104287 111258 ( +CNDIR 104297 . 105602) (DIRECTORYNAME 105604 . 109384) (DIRECTORYNAMEP 109386 . 110002) (HOSTNAMEP +110004 . 110811) (\ADD.CONNECTED.DIR 110813 . 111256)) (111303 140250 (\BACKFILEPTR 111313 . 111501) ( +\BACKPEEKBIN 111503 . 111864) (\BACKBIN 111866 . 112217) (BIN 112219 . 112436) (\BIN 112438 . 112715) +(\BINS 112717 . 113003) (BOUT 113005 . 113367) (\BOUT 113369 . 113684) (\BOUTS 113686 . 113997) ( +COPYBYTES 113999 . 117331) (COPYCHARS 117333 . 121131) (COPYFILE 121133 . 122493) (\COPYOPENFILE +122495 . 125694) (\INFER.FILE.TYPE 125696 . 126650) (EOFP 126652 . 126949) (FORCEOUTPUT 126951 . +127198) (\FLUSH.OPEN.STREAMS 127200 . 127556) (CHARSET 127558 . 128917) (ACCESS-CHARSET 128919 . +129556) (GETEOFPTR 129558 . 129808) (GETFILEINFO 129810 . 133003) (\TYPE.FROM.FILETYPE 133005 . 133475 +) (\FILETYPE.FROM.TYPE 133477 . 133656) (GETFILEPTR 133658 . 133910) (SETFILEINFO 133912 . 138149) ( +SETFILEPTR 138151 . 139870) (BOUT16 139872 . 140057) (BIN16 140059 . 140248)) (140353 147533 ( +\GENERIC.BINS 140363 . 140643) (\GENERIC.BOUTS 140645 . 140910) (\GENERIC.RENAMEFILE 140912 . 143160) +(\GENERIC.OPENP 143162 . 144477) (\GENERIC.READP 144479 . 145631) (\GENERIC.CHARSET 145633 . 147531)) +(147534 147873 (\MAP-OPEN-STREAMS 147544 . 147871)) (149728 151808 (\EOF.ACTION 149738 . 149989) ( +\EOSERROR 149991 . 150184) (\GETEOFPTR 150186 . 150368) (\INCFILEPTR 150370 . 150720) (\PEEKBIN 150722 + . 150913) (\SETCLOSEDFILELENGTH 150915 . 151249) (\SETEOFPTR 151251 . 151439) (\SETFILEPTR 151441 . +151806)) (151809 152351 (\FIXPOUT 151819 . 152119) (\FIXPIN 152121 . 152349)) (152352 152918 (\BOUTEOL + 152362 . 152916)) (155814 165678 (\BUFFERED.BIN 155824 . 156676) (\BUFFERED.PEEKBIN 156678 . 157460) +(\BUFFERED.BOUT 157462 . 158322) (\BUFFERED.BINS 158324 . 162009) (\BUFFERED.BOUTS 162011 . 163812) ( +\BUFFERED.COPYBYTES 163814 . 165676))))) STOP diff --git a/sources/FILEIO.LCOM b/sources/FILEIO.LCOM index 102917fc17bb67b05a47ac457c7809cb00778ffa..e53409e67143b77bc55c98a3f6f4864e45adacd6 100644 GIT binary patch delta 995 zcmaJ=OK;Oa5RTi5M~bQHv z%7qIcRe&!b0Yc&j&{Fl-<}YxA8=QLJ#1U?+9TFOZYFXZy-EY46c4oY`JMeOM;Mq(| zO5&Af5^+cZlva_f3S11>*nDGoW$9LZ0UEa<1`no9q8ViN;lg2umt%0PS?}@G@2xafCse3ucB+CMY`Q7zrEEWYc4&Bs=FqE#0Z4lO z^?2)lbV!ONqHK^g?-1+}4f=ETr0**gcu7>!5~xHgddb`@G?#CJnlE5$invM723EIR zCh9+B;(Y&&I8GJC{R^@Ai&;Fw$o}~c<4OXUiGxgJFnc3HpJ?#O9ld&>Ft`QAi;c+l z&i>MHa6tVpA*{9$`Q&d;OrCoexIK`rbpKNwfKpa zB!Nr3u)&sY1L9@K+ty`Tq%tm70dYLk$c#rE3mdxanAih8qku`w9Po&O3)rCqz;kjR zQAX@@(<0QSi068=pC$!&N&QokM_LjG#HRBg@WGm=qnQp3s)JZw(Y62~u>;{Uee!q_ z(f0n4m+a~jX!t*p(*kr)gB$il(~Q=2&DJ}@> srO^mWYgchem8zhBfQ3y084kL(UL=O*zhUnml0_)kt_PdriJy;u14@Jb&j0`b delta 1015 zcmbW0&ui0A9Kf5EDR$sCcAA2G&Fq$mDa}h>+GbLkwl6Mg`ZAkzY_JJ)DYnqAW2=WT zqfSvw|0HXgW5Vo+PqP=EI6MTi^X{G zR$FZIOBIruBJtA^p}S44M0A(rFD2oGhA|KShK&1|K~hyEr9wm_dD9iMOTaf;RUWk5 ztWF;gM|5ov4C?qh+@yKoaEgZI|LPR>kH6eJ{KZ)loa)a+$FmbxxKKFrB*eZ*cgc=E z9Gndw-LsCa2F~SRJ$bM9EKLJ-~$y_xfR{tul@ zAt=AMP4;*?M?(`1%-&oK#0b0+JQT*>r*RuAmpn?2;u|CW|g9QQb1^Qc-u=%povL znio%PNlpQ4cF7?wNKy)z3`U9?Hlz}LCRR?(N5t%grTE3_Y)}wR00~JhTji=551q*?bo5dB(;5 z?enB0$d(O*lpIK+GgS#lL5YJ&=gTh02z0sx>|yG3cnRM}@d+8`9a3fx?3qx#Nc_*j_90CFe)$LbDh>w#