Annotation of 41BSD/lib/libI77/rsfe.c, revision 1.1.1.1

1.1       root        1: /* read sequential formatted external */
                      2: #include "fio.h"
                      3: #include "fmt.h"
                      4: extern int x_getc(),rd_ed(),rd_ned();
                      5: extern int x_endp(),x_rev(),xrd_SL();
                      6: s_rsfe(a) cilist *a; /* start */
                      7: {      int n;
                      8:        if(!init) f_init();
                      9:        if(n=c_sfe(a)) return(n);
                     10:        reading=1;
                     11:        sequential=1;
                     12:        formatted=1;
                     13:        external=1;
                     14:        elist=a;
                     15:        cursor=recpos=0;
                     16:        scale=0;
                     17:        fmtbuf=a->cifmt;
                     18:        curunit= &units[a->ciunit];
                     19:        cf=curunit->ufd;
                     20:        if(pars_f(fmtbuf)<0) err(a->cierr,100,"startio");
                     21:        getn= x_getc;
                     22:        doed= rd_ed;
                     23:        doned= rd_ned;
                     24:        fmt_bg();
                     25:        doend=x_endp;
                     26:        donewrec=xrd_SL;
                     27:        dorevert=x_rev;
                     28:        cblank=curunit->ublnk;
                     29:        cplus=0;
                     30:        if(curunit->uwrt) (void) nowreading(curunit);
                     31:        return(0);
                     32: }
                     33: xrd_SL()
                     34: {      int ch;
                     35:        if(!curunit->uend)
                     36:                while((ch=getc(cf))!='\n' && ch!=EOF);
                     37:        cursor=recpos=0;
                     38:        return(1);
                     39: }
                     40: x_getc()
                     41: {      int ch;
                     42:        if(curunit->uend) return(EOF);
                     43:        if((ch=getc(cf))!=EOF && ch!='\n')
                     44:        {       recpos++;
                     45:                return(ch);
                     46:        }
                     47:        if(ch=='\n')
                     48:        {       (void) ungetc(ch,cf);
                     49:                return(ch);
                     50:        }
                     51:        if(feof(cf))
                     52:        {       errno=0;
                     53:                curunit->uend=1;
                     54:                return(-1);
                     55:        }
                     56:        return(-1);
                     57: }
                     58: x_endp()
                     59: {
                     60:        (void) xrd_SL();
                     61:        return(0);
                     62: }
                     63: x_rev()
                     64: {
                     65:        (void) xrd_SL();
                     66:        return(0);
                     67: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.