5 #if defined (MSDOS) && !defined (GO32)
20 f__fatal (131, "I/O recursion");
21 if (a
->infile
!= NULL
)
24 g_char (a
->infile
, a
->infilen
, buf
);
26 x
= access (buf
, 0) ? -1 : 0;
27 for (i
= 0, p
= NULL
; i
< MXUNIT
; i
++)
28 if (f__units
[i
].ufd
!= NULL
29 && f__units
[i
].ufnm
!= NULL
&& !strcmp (f__units
[i
].ufnm
, buf
))
35 x
= f__inode (buf
, &n
);
36 for (i
= 0, p
= NULL
; i
< MXUNIT
; i
++)
37 if (f__units
[i
].uinode
== x
38 && f__units
[i
].ufd
!= NULL
&& f__units
[i
].udev
== n
)
48 if (a
->inunit
< MXUNIT
&& a
->inunit
>= 0)
50 p
= &f__units
[a
->inunit
];
59 if ((byfile
&& x
!= -1) || (!byfile
&& p
!= NULL
))
64 if (a
->inopen
!= NULL
)
67 *a
->inopen
= (p
!= NULL
);
69 *a
->inopen
= (p
!= NULL
&& p
->ufd
!= NULL
);
72 *a
->innum
= p
- f__units
;
73 if (a
->innamed
!= NULL
)
75 if (byfile
|| (p
!= NULL
&& p
->ufnm
!= NULL
))
80 if (a
->inname
!= NULL
)
83 b_char (buf
, a
->inname
, a
->innamlen
);
84 else if (p
!= NULL
&& p
->ufnm
!= NULL
)
85 b_char (p
->ufnm
, a
->inname
, a
->innamlen
);
87 if (a
->inacc
!= NULL
&& p
!= NULL
&& p
->ufd
!= NULL
)
90 b_char ("DIRECT", a
->inacc
, a
->inacclen
);
92 b_char ("SEQUENTIAL", a
->inacc
, a
->inacclen
);
96 if (p
!= NULL
&& p
->url
)
97 b_char ("NO", a
->inseq
, a
->inseqlen
);
99 b_char ("YES", a
->inseq
, a
->inseqlen
);
101 if (a
->indir
!= NULL
)
103 if (p
== NULL
|| p
->url
)
104 b_char ("YES", a
->indir
, a
->indirlen
);
106 b_char ("NO", a
->indir
, a
->indirlen
);
108 if (a
->infmt
!= NULL
)
110 if (p
!= NULL
&& p
->ufmt
== 0)
111 b_char ("UNFORMATTED", a
->infmt
, a
->infmtlen
);
113 b_char ("FORMATTED", a
->infmt
, a
->infmtlen
);
115 if (a
->inform
!= NULL
)
117 if (p
!= NULL
&& p
->ufmt
== 0)
118 b_char ("NO", a
->inform
, a
->informlen
);
120 b_char ("YES", a
->inform
, a
->informlen
);
124 if (p
!= NULL
&& p
->ufmt
== 0)
125 b_char ("YES", a
->inunf
, a
->inunflen
);
127 b_char ("NO", a
->inunf
, a
->inunflen
);
129 b_char ("UNKNOWN", a
->inunf
, a
->inunflen
);
131 if (a
->inrecl
!= NULL
&& p
!= NULL
)
133 if (a
->innrec
!= NULL
&& p
!= NULL
&& p
->url
> 0)
134 *a
->innrec
= FTELL (p
->ufd
) / p
->url
+ 1;
135 if (a
->inblank
&& p
!= NULL
&& p
->ufmt
)
138 b_char ("ZERO", a
->inblank
, a
->inblanklen
);
140 b_char ("NULL", a
->inblank
, a
->inblanklen
);