123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #include "f2c.h"
- #include "fio.h"
- #include "fmt.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- extern char *f__icptr;
- char *f__icend;
- extern icilist *f__svic;
- int f__icnum;
- int
- z_getc(Void)
- {
- if(f__recpos++ < f__svic->icirlen) {
- if(f__icptr >= f__icend) err(f__svic->iciend,(EOF),"endfile");
- return(*(unsigned char *)f__icptr++);
- }
- return '\n';
- }
- void
- #ifdef KR_headers
- z_putc(c)
- #else
- z_putc(int c)
- #endif
- {
- if (f__icptr < f__icend && f__recpos++ < f__svic->icirlen)
- *f__icptr++ = c;
- }
- int
- 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;
- }
- int
- #ifdef KR_headers
- c_si(a) icilist *a;
- #else
- c_si(icilist *a)
- #endif
- {
- f__elist = (cilist *)a;
- f__fmtbuf=a->icifmt;
- f__curunit = 0;
- f__sequential=f__formatted=1;
- f__external=0;
- if(pars_f(f__fmtbuf)<0)
- err(a->icierr,100,"startint");
- fmt_bg();
- 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__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);
- }
- int
- z_wnew(Void)
- {
- if (f__recpos < f__hiwater) {
- f__icptr += f__hiwater - f__recpos;
- f__recpos = f__hiwater;
- }
- 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 = en_fio();
- f__fmtbuf = NULL;
- return(n);
- }
- integer e_wsfi(Void)
- {
- int n;
- n = en_fio();
- f__fmtbuf = NULL;
- if(f__svic->icirnum != 1
- && (f__icnum > f__svic->icirnum
- || (f__icnum == f__svic->icirnum && (f__recpos | f__hiwater))))
- err(f__svic->icierr,110,"inwrite");
- if (f__recpos < f__hiwater)
- f__recpos = f__hiwater;
- if (f__recpos >= f__svic->icirlen)
- err(f__svic->icierr,110,"recend");
- if (!f__recpos && f__icnum)
- return n;
- while(f__recpos++ < f__svic->icirlen)
- *f__icptr++ = ' ';
- return n;
- }
- #ifdef __cplusplus
- }
- #endif
|