5 integer
f_inqu(a
) inlist
*a
;
7 #if defined (MSDOS) && !defined (GO32)
13 integer
f_inqu(inlist
*a
)
21 f__fatal (131, "I/O recursion");
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
30 && !strcmp(f__units
[i
].ufnm
,buf
)) {
36 for(i
=0,p
=NULL
;i
<MXUNIT
;i
++)
37 if(f__units
[i
].uinode
==x
38 && f__units
[i
].ufd
!=NULL
39 && f__units
[i
].udev
== n
) {
48 if(a
->inunit
<MXUNIT
&& a
->inunit
>=0)
50 p
= &f__units
[a
->inunit
];
58 if(byfile
&& x
!= -1 || !byfile
&& p
!=NULL
)
62 if(byfile
) *a
->inopen
=(p
!=NULL
);
63 else *a
->inopen
=(p
!=NULL
&& p
->ufd
!=NULL
);
64 if(a
->innum
!=NULL
) *a
->innum
= p
-f__units
;
66 if(byfile
|| p
!=NULL
&& p
->ufnm
!=NULL
)
71 b_char(buf
,a
->inname
,a
->innamlen
);
72 else if(p
!=NULL
&& p
->ufnm
!=NULL
)
73 b_char(p
->ufnm
,a
->inname
,a
->innamlen
);
74 if(a
->inacc
!=NULL
&& p
!=NULL
&& p
->ufd
!=NULL
)
76 b_char("DIRECT",a
->inacc
,a
->inacclen
);
77 else b_char("SEQUENTIAL",a
->inacc
,a
->inacclen
);
80 b_char("NO",a
->inseq
,a
->inseqlen
);
81 else b_char("YES",a
->inseq
,a
->inseqlen
);
84 b_char("YES",a
->indir
,a
->indirlen
);
85 else b_char("NO",a
->indir
,a
->indirlen
);
87 if(p
!=NULL
&& p
->ufmt
==0)
88 b_char("UNFORMATTED",a
->infmt
,a
->infmtlen
);
89 else b_char("FORMATTED",a
->infmt
,a
->infmtlen
);
91 if(p
!=NULL
&& p
->ufmt
==0)
92 b_char("NO",a
->inform
,a
->informlen
);
93 else b_char("YES",a
->inform
,a
->informlen
);
95 if(p
!=NULL
&& p
->ufmt
==0)
96 b_char("YES",a
->inunf
,a
->inunflen
);
97 else if (p
!=NULL
) b_char("NO",a
->inunf
,a
->inunflen
);
98 else b_char("UNKNOWN",a
->inunf
,a
->inunflen
);
99 if(a
->inrecl
!=NULL
&& p
!=NULL
)
101 if(a
->innrec
!=NULL
&& p
!=NULL
&& p
->url
>0)
102 *a
->innrec
=ftell(p
->ufd
)/p
->url
+1;
103 if(a
->inblank
&& p
!=NULL
&& p
->ufmt
)
105 b_char("ZERO",a
->inblank
,a
->inblanklen
);
106 else b_char("NULL",a
->inblank
,a
->inblanklen
);