1 ; "For now, I$DEF-CHANNEL is just a PUT FOO DECL hack."
2 %<NEWSTRUC I$DEF-CHANNEL (VECTOR)
4 DC-DEV <OR ATOM STRING FALSE>
5 DC-SNM <OR ATOM STRING FALSE>
6 DC-NM1 <OR STRING FALSE>
7 DC-NM2 <OR STRING FALSE>
8 DC-DSN <OR STRING FALSE>
11 DC-IBUF <OR STRING FALSE>
14 <DEFINE X$DEF-GET-MODE (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>)
15 (STS <DC-STATUS .DATA>))
16 #DECL ((CHANNEL) T$CHANNEL (DATA) I$DEF-CHANNEL)
17 <COND (<NOT <0? <ANDB .STS ,STATUS-WRITE>>>
18 <COND (<0? <ANDB .STS ,STATUS-RACC>>
25 <DEFINE X$DEF-GET-BYTE-SIZE (CHANNEL OPER "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>)
26 (BSZ <LHW <DC-STATUS .DATA>>))
27 #DECL ((CHANNEL) T$CHANNEL (DATA) I$DEF-CHANNEL)
28 <COND (<==? .BSZ ,BS-ASCII> "ASCII")
29 (<==? .BSZ ,BS-8BIT> "8BIT")
30 (<==? .BSZ ,BS-BINARY> "BINARY")>>
32 <DEFINE X$DEF-HACK-DATE (CHANNEL OPER "OPTIONAL" NEW
33 "AUX" (DATA <T$CHANNEL-DATA .CHANNEL>)
35 #DECL ((CHANNEL) T$CHANNEL (DATA) I$DEF-CHANNEL (OPER) T$ATOM
36 (NEW) FIX (UV) <UVECTOR [REST FIX]>)
37 <COND (<NOT <ASSIGNED? NEW>>
38 <COND (<==? <DC-IJFN .DATA> -1>
39 <SET NM <T$STANDARD-NAME <T$CHANNEL-OP .CHANNEL T$NAME>>>
40 <SET ST <T$FILE-STAT .NM>>)
42 <SET ST <T$FILE-STAT <DC-IJFN .DATA>>>)>
43 <COND (<==? .OPER T$READ-DATE>
44 <T$STAT-FIELD .ST ,ATIME-OFFS ,ATIME-SIZE>)
46 <T$STAT-FIELD .ST ,MTIME-OFFS ,MTIME-SIZE>)>)
48 <COND (<NOT <GASSIGNED? TIMEU>> <SETG TIMEU <UVECTOR 0 0>>)>
50 <COND (<==? .OPER T$READ-DATE>
52 <2 .UV <X$DEF-HACK-DATE .CHANNEL T$WRITE-DATE>>)
55 <1 .UV <X$DEF-HACK-DATE .CHANNEL T$READ-DATE>>)>
56 <SET NM <T$STANDARD-NAME <T$CHANNEL-OP .CHANNEL T$NAME>>>
57 <COND (<CALL SYSCALL UTIMES .NM .UV>
60 <DEFINE I$DEF-SHORT-NAME (CHN OPER "AUX" (DAT <T$CHANNEL-DATA .CHN>)
61 (NM1 <DC-NM1 .DAT>) (NM2 <DC-NM2 .DAT>))
62 #DECL ((CHN) T$CHANNEL (DAT) I$DEF-CHANNEL)
63 <COND (<AND .NM1 .NM2>
64 <STRING .NM1 !\. .NM2>)
68 (<I$DEF-NAME .CHN .OPER>)>>
70 <DEFINE I$DEF-FILE-HANDLE (CHN OPER "AUX" (DAT <T$CHANNEL-DATA .CHN>))
71 #DECL ((CHN) T$CHANNEL (DAT) I$DEF-CHANNEL)
74 <DEFINE I$DEF-DEV (CHN OPER "AUX" (DAT <T$CHANNEL-DATA .CHN>)
76 #DECL ((CHN) T$CHANNEL (DAT) I$DEF-CHANNEL)
77 <COND (<TYPE? .STR ATOM>
78 <T$PARSE-DIR <> <> <REST .DAT 1> <> <>>
82 <DEFINE I$DEF-SNM (CHN OPER "AUX" (DAT <T$CHANNEL-DATA .CHN>)
84 #DECL ((CHN) T$CHANNEL (DAT) I$DEF-CHANNEL)
85 <COND (<TYPE? .STR ATOM>
86 <T$PARSE-DIR <> <> <REST .DAT 1> <> <>>
90 <DEFINE I$DEF-NM1 (CHN OPER "AUX" (DAT <T$CHANNEL-DATA .CHN>))
91 #DECL ((CHN) T$CHANNEL (DAT) I$DEF-CHANNEL)
94 <DEFINE I$DEF-NM2 (CHN OPER "AUX" (DAT <T$CHANNEL-DATA .CHN>))
95 #DECL ((CHN) T$CHANNEL (DAT) I$DEF-CHANNEL)
98 <DEFINE I$DEF-NAME (CHN OPER "OPT" (BITS *37*) "AUX" (DAT <T$CHANNEL-DATA .CHN>)
100 #DECL ((CHN) T$CHANNEL (DAT) I$DEF-CHANNEL (STOR) TUPLE)
101 <1 .STOR <DC-DEV .DAT>>
102 <2 .STOR <DC-SNM .DAT>>
103 <3 .STOR <DC-NM1 .DAT>>
104 <4 .STOR <DC-NM2 .DAT>>
105 <5 .STOR <DC-DSN .DAT>>
106 <I$UNPARSE-SPEC .STOR .BITS>>