|
|
1.1 ! root 1: #include "f2c.h" ! 2: #include "fio.h" ! 3: #ifdef KR_headers ! 4: integer f_inqu(a) inlist *a; ! 5: #else ! 6: #ifdef MSDOS ! 7: #undef abs ! 8: #undef min ! 9: #undef max ! 10: #include "string.h" ! 11: #include "io.h" ! 12: #endif ! 13: integer f_inqu(inlist *a) ! 14: #endif ! 15: { flag byfile; ! 16: int i, n; ! 17: unit *p; ! 18: char buf[256]; ! 19: long x; ! 20: if(a->infile!=NULL) ! 21: { byfile=1; ! 22: g_char(a->infile,a->infilen,buf); ! 23: #ifdef NON_UNIX_STDIO ! 24: x = access(buf,0) ? -1 : 0; ! 25: for(i=0,p=NULL;i<MXUNIT;i++) ! 26: if(f__units[i].ufd != NULL ! 27: && f__units[i].ufnm != NULL ! 28: && !strcmp(f__units[i].ufnm,buf)) { ! 29: p = &f__units[i]; ! 30: break; ! 31: } ! 32: #else ! 33: x=f__inode(buf, &n); ! 34: for(i=0,p=NULL;i<MXUNIT;i++) ! 35: if(f__units[i].uinode==x ! 36: && f__units[i].ufd!=NULL ! 37: && f__units[i].udev == n) { ! 38: p = &f__units[i]; ! 39: break; ! 40: } ! 41: #endif ! 42: } ! 43: else ! 44: { ! 45: byfile=0; ! 46: if(a->inunit<MXUNIT && a->inunit>=0) ! 47: { ! 48: p= &f__units[a->inunit]; ! 49: } ! 50: else ! 51: { ! 52: p=NULL; ! 53: } ! 54: } ! 55: if(a->inex!=NULL) ! 56: if(byfile && x != -1 || !byfile && p!=NULL) ! 57: *a->inex=1; ! 58: else *a->inex=0; ! 59: if(a->inopen!=NULL) ! 60: if(byfile) *a->inopen=(p!=NULL); ! 61: else *a->inopen=(p!=NULL && p->ufd!=NULL); ! 62: if(a->innum!=NULL) *a->innum= p-f__units; ! 63: if(a->innamed!=NULL) ! 64: if(byfile || p!=NULL && p->ufnm!=NULL) ! 65: *a->innamed=1; ! 66: else *a->innamed=0; ! 67: if(a->inname!=NULL) ! 68: if(byfile) ! 69: b_char(buf,a->inname,a->innamlen); ! 70: else if(p!=NULL && p->ufnm!=NULL) ! 71: b_char(p->ufnm,a->inname,a->innamlen); ! 72: if(a->inacc!=NULL && p!=NULL && p->ufd!=NULL) ! 73: if(p->url) ! 74: b_char("DIRECT",a->inacc,a->inacclen); ! 75: else b_char("SEQUENTIAL",a->inacc,a->inacclen); ! 76: if(a->inseq!=NULL) ! 77: if(p!=NULL && p->url) ! 78: b_char("NO",a->inseq,a->inseqlen); ! 79: else b_char("YES",a->inseq,a->inseqlen); ! 80: if(a->indir!=NULL) ! 81: if(p==NULL || p->url) ! 82: b_char("YES",a->indir,a->indirlen); ! 83: else b_char("NO",a->indir,a->indirlen); ! 84: if(a->infmt!=NULL) ! 85: if(p!=NULL && p->ufmt==0) ! 86: b_char("UNFORMATTED",a->infmt,a->infmtlen); ! 87: else b_char("FORMATTED",a->infmt,a->infmtlen); ! 88: if(a->inform!=NULL) ! 89: if(p!=NULL && p->ufmt==0) ! 90: b_char("NO",a->inform,a->informlen); ! 91: else b_char("YES",a->inform,a->informlen); ! 92: if(a->inunf) ! 93: if(p!=NULL && p->ufmt==0) ! 94: b_char("YES",a->inunf,a->inunflen); ! 95: else if (p!=NULL) b_char("NO",a->inunf,a->inunflen); ! 96: else b_char("UNKNOWN",a->inunf,a->inunflen); ! 97: if(a->inrecl!=NULL && p!=NULL) ! 98: *a->inrecl=p->url; ! 99: if(a->innrec!=NULL && p!=NULL && p->url>0) ! 100: *a->innrec=ftell(p->ufd)/p->url+1; ! 101: if(a->inblank && p!=NULL && p->ufmt) ! 102: if(p->ublnk) ! 103: b_char("ZERO",a->inblank,a->inblanklen); ! 104: else b_char("NULL",a->inblank,a->inblanklen); ! 105: return(0); ! 106: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.