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