12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /* read sequential formatted external */
- #include "f2c.h"
- #include "fio.h"
- #include "fmt.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- int
- xrd_SL(Void)
- { int ch;
- if(!f__curunit->uend)
- while((ch=getc(f__cf))!='\n')
- if (ch == EOF) {
- f__curunit->uend = 1;
- break;
- }
- f__cursor=f__recpos=0;
- return(1);
- }
- int
- x_getc(Void)
- { int ch;
- if(f__curunit->uend) return(EOF);
- ch = getc(f__cf);
- if(ch!=EOF && ch!='\n')
- { f__recpos++;
- return(ch);
- }
- if(ch=='\n')
- { (void) ungetc(ch,f__cf);
- return(ch);
- }
- if(f__curunit->uend || feof(f__cf))
- { errno=0;
- f__curunit->uend=1;
- return(-1);
- }
- return(-1);
- }
- int
- x_endp(Void)
- {
- xrd_SL();
- return f__curunit->uend == 1 ? EOF : 0;
- }
- int
- x_rev(Void)
- {
- (void) xrd_SL();
- return(0);
- }
- #ifdef KR_headers
- integer s_rsfe(a) cilist *a; /* start */
- #else
- integer s_rsfe(cilist *a) /* start */
- #endif
- { int n;
- if(!f__init) f_init();
- f__reading=1;
- f__sequential=1;
- f__formatted=1;
- f__external=1;
- if(n=c_sfe(a)) return(n);
- f__elist=a;
- f__cursor=f__recpos=0;
- f__scale=0;
- f__fmtbuf=a->cifmt;
- f__cf=f__curunit->ufd;
- if(pars_f(f__fmtbuf)<0) err(a->cierr,100,"startio");
- f__getn= x_getc;
- f__doed= rd_ed;
- f__doned= rd_ned;
- fmt_bg();
- f__doend=x_endp;
- f__donewrec=xrd_SL;
- f__dorevert=x_rev;
- f__cblank=f__curunit->ublnk;
- f__cplus=0;
- if(f__curunit->uwrt && f__nowreading(f__curunit))
- err(a->cierr,errno,"read start");
- if(f__curunit->uend)
- err(f__elist->ciend,(EOF),"read start");
- return(0);
- }
- #ifdef __cplusplus
- }
- #endif
|