diff options
author | ljo <ljo@FreeBSD.org> | 1994-10-26 18:15:35 +0000 |
---|---|---|
committer | ljo <ljo@FreeBSD.org> | 1994-10-26 18:15:35 +0000 |
commit | 80b2e1963004e4ae0173b4f9bc965518ba81d3b0 (patch) | |
tree | f59f79382fc6721a367c9c0ee1be96f075718569 /lib/libI77/iio.c | |
download | FreeBSD-src-80b2e1963004e4ae0173b4f9bc965518ba81d3b0.zip FreeBSD-src-80b2e1963004e4ae0173b4f9bc965518ba81d3b0.tar.gz |
Library for f2c. (part 1 of 2)
Obtained from: netlib.att.com
Diffstat (limited to 'lib/libI77/iio.c')
-rw-r--r-- | lib/libI77/iio.c | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/lib/libI77/iio.c b/lib/libI77/iio.c new file mode 100644 index 0000000..b747826 --- /dev/null +++ b/lib/libI77/iio.c @@ -0,0 +1,138 @@ +#include "f2c.h" +#include "fio.h" +#include "fmt.h" +extern char *f__icptr; +char *f__icend; +extern icilist *f__svic; +int f__icnum; +extern int f__hiwater; +z_getc(Void) +{ + if(f__recpos++ < f__svic->icirlen) { + if(f__icptr >= f__icend) err(f__svic->iciend,(EOF),"endfile"); + return(*f__icptr++); + } + return '\n'; +} +#ifdef KR_headers +z_putc(c) +#else +z_putc(int c) +#endif +{ + if(f__icptr >= f__icend) err(f__svic->icierr,110,"inwrite"); + if(f__recpos++ < f__svic->icirlen) + *f__icptr++ = c; + else err(f__svic->icierr,110,"recend"); + return 0; +} +z_rnew(Void) +{ + f__icptr = f__svic->iciunit + (++f__icnum)*f__svic->icirlen; + f__recpos = 0; + f__cursor = 0; + f__hiwater = 0; + return 1; +} + + static int +z_endp(Void) +{ + (*f__donewrec)(); + return 0; + } + +#ifdef KR_headers +c_si(a) icilist *a; +#else +c_si(icilist *a) +#endif +{ + f__elist = (cilist *)a; + f__fmtbuf=a->icifmt; + if(pars_f(f__fmtbuf)<0) + err(a->icierr,100,"startint"); + fmt_bg(); + f__sequential=f__formatted=1; + f__external=0; + f__cblank=f__cplus=f__scale=0; + f__svic=a; + f__icnum=f__recpos=0; + f__cursor = 0; + f__hiwater = 0; + f__icptr = a->iciunit; + f__icend = f__icptr + a->icirlen*a->icirnum; + f__curunit = 0; + f__cf = 0; + return(0); +} + + int +iw_rev(Void) +{ + if(f__workdone) + z_endp(); + f__hiwater = f__recpos = f__cursor = 0; + return(f__workdone=0); + } + +#ifdef KR_headers +integer s_rsfi(a) icilist *a; +#else +integer s_rsfi(icilist *a) +#endif +{ int n; + if(n=c_si(a)) return(n); + f__reading=1; + f__doed=rd_ed; + f__doned=rd_ned; + f__getn=z_getc; + f__dorevert = z_endp; + f__donewrec = z_rnew; + f__doend = z_endp; + return(0); +} + +z_wnew(Void) +{ + while(f__recpos++ < f__svic->icirlen) + *f__icptr++ = ' '; + f__recpos = 0; + f__cursor = 0; + f__hiwater = 0; + f__icnum++; + return 1; +} +#ifdef KR_headers +integer s_wsfi(a) icilist *a; +#else +integer s_wsfi(icilist *a) +#endif +{ int n; + if(n=c_si(a)) return(n); + f__reading=0; + f__doed=w_ed; + f__doned=w_ned; + f__putn=z_putc; + f__dorevert = iw_rev; + f__donewrec = z_wnew; + f__doend = z_endp; + return(0); +} +integer e_rsfi(Void) +{ int n; + n = en_fio(); + f__fmtbuf = NULL; + return(n); +} +integer e_wsfi(Void) +{ + int n; + n = en_fio(); + f__fmtbuf = NULL; + if(f__icnum >= f__svic->icirnum) + return(n); + while(f__recpos++ < f__svic->icirlen) + *f__icptr++ = ' '; + return(n); +} |