Commit | Line | Data |
---|---|---|
8662e665 PW |
1 | #include "fio.h" |
2 | f_inqu(a) inlist *a; | |
3 | { flag byfile,legal; | |
4 | int i; | |
5 | unit *p; | |
6 | char buf[256]; | |
7 | long x; | |
8 | if(a->infile!=NULL) | |
9 | { byfile=1; | |
10 | g_char(a->infile,a->infilen,buf); | |
11 | x=inode(buf); | |
12 | for(i=0,p=NULL;i<MXUNIT;i++) | |
13 | if(units[i].uinode==x && units[i].ufd!=NULL) | |
14 | p = &units[i]; | |
15 | } | |
16 | else | |
17 | { | |
18 | byfile=0; | |
19 | if(a->inunit<MXUNIT && a->inunit>=0) | |
20 | { legal=1; | |
21 | p= &units[a->inunit]; | |
22 | } | |
23 | else | |
24 | { legal=0; | |
25 | p=NULL; | |
26 | } | |
27 | } | |
28 | if(a->inex!=NULL) | |
29 | if(byfile && x>0 || !byfile && p!=NULL) | |
30 | *a->inex=1; | |
31 | else *a->inex=0; | |
32 | if(a->inopen!=NULL) | |
33 | if(byfile) *a->inopen=(p!=NULL); | |
34 | else *a->inopen=(p!=NULL && p->ufd!=NULL); | |
35 | if(a->innum!=NULL) *a->innum= p-units; | |
36 | if(a->innamed!=NULL) | |
37 | if(byfile || p!=NULL && p->ufnm!=NULL) | |
38 | *a->innamed=1; | |
39 | else *a->innamed=0; | |
40 | if(a->inname!=NULL) | |
41 | if(byfile) | |
42 | b_char(buf,a->inname,a->innamlen); | |
43 | else if(p!=NULL && p->ufnm!=NULL) | |
44 | b_char(p->ufnm,a->inname,a->innamlen); | |
45 | if(a->inacc!=NULL && p!=NULL && p->ufd!=NULL) | |
46 | if(p->url) | |
47 | b_char("direct",a->inacc,a->inacclen); | |
48 | else b_char("sequential",a->inacc,a->inacclen); | |
49 | if(a->inseq!=NULL) | |
50 | if(byfile || p!=NULL && p->useek) | |
51 | b_char("yes",a->inseq,a->inseqlen); | |
52 | else b_char("no",a->inseq,a->inseqlen); | |
53 | if(a->indir!=NULL) | |
54 | if(byfile || p!=NULL && p->useek) | |
55 | b_char("yes",a->indir,a->indirlen); | |
56 | else b_char("no",a->indir,a->indirlen); | |
57 | if(a->infmt!=NULL) | |
58 | if(p!=NULL && p->ufmt) | |
59 | b_char("formatted",a->infmt,a->infmtlen); | |
60 | else if(p!=NULL) | |
61 | b_char("unformatted",a->infmt,a->infmtlen); | |
62 | if(a->inform!=NULL) | |
63 | b_char("yes",a->inform,a->informlen); | |
64 | if(a->inunf) | |
65 | if(byfile || p!=NULL && p->useek) | |
66 | b_char("yes",a->inunf,a->inunflen); | |
67 | else b_char("unknown",a->inunf,a->inunflen); | |
68 | if(a->inrecl!=NULL && p!=NULL) | |
69 | *a->inrecl=p->url; | |
70 | if(a->innrec!=NULL && p!=NULL && p->url>0) | |
71 | *a->innrec=ftell(p->ufd)/p->url+1; | |
72 | if(a->inblank && p!=NULL && p->ufmt) | |
73 | if(p->ublnk) | |
74 | b_char("zero",a->inblank,a->inblanklen); | |
75 | else b_char("blank",a->inblank,a->inblanklen); | |
76 | return(0); | |
77 | } |