diff options
Diffstat (limited to 'contrib/libf2c/libI77/rsfe.c')
-rw-r--r-- | contrib/libf2c/libI77/rsfe.c | 152 |
1 files changed, 84 insertions, 68 deletions
diff --git a/contrib/libf2c/libI77/rsfe.c b/contrib/libf2c/libI77/rsfe.c index 1be4531..0dcda39 100644 --- a/contrib/libf2c/libI77/rsfe.c +++ b/contrib/libf2c/libI77/rsfe.c @@ -4,78 +4,94 @@ #include "fio.h" #include "fmt.h" -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); -} -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); +int +xrd_SL (void) +{ + int ch; + if (!f__curunit->uend) + while ((ch = getc (f__cf)) != '\n') + if (ch == EOF) + { + f__curunit->uend = 1; + break; } - return(-1); + f__cursor = f__recpos = 0; + return (1); } -x_endp(Void) + +int +x_getc (void) { - xrd_SL(); - return f__curunit->uend == 1 ? EOF : 0; + 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); } -x_rev(Void) + +int +x_endp (void) { - (void) xrd_SL(); - return(0); + xrd_SL (); + return f__curunit->uend == 1 ? EOF : 0; } -#ifdef KR_headers -integer s_rsfe(a) cilist *a; /* start */ -#else -integer s_rsfe(cilist *a) /* start */ -#endif -{ int n; - if(f__init != 1) f_init(); - f__init = 3; - 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__curunit= &f__units[a->ciunit]; - 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); + +int +x_rev (void) +{ + (void) xrd_SL (); + return (0); +} + +integer +s_rsfe (cilist * a) /* start */ +{ + int n; + if (f__init != 1) + f_init (); + f__init = 3; + 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__curunit = &f__units[a->ciunit]; + 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); } |