Bell 32V development
[unix-history] / usr / src / libI77 / iio.c
CommitLineData
afd81942
TL
1#include "fio.h"
2#include "fmt.h"
3char *icptr,*icend;
4icilist *svic;
5extern int rd_ed(),rd_ned(),w_ed(),w_ned(),y_err();
6extern int z_wnew();
7int icnum,icpos;
8z_getc()
9{
10 if(icptr >= icend) err(svic->iciend,(EOF),"endfile");
11 if(icpos++ < svic->icirlen)
12 return(*icptr++);
13 else err(svic->icierr,110,"recend");
14}
15z_putc(c)
16{
17 if(icptr >= icend) err(svic->icierr,110,"inwrite");
18 if(icpos++ < svic->icirlen)
19 *icptr++ = c;
20 else err(svic->icierr,110,"recend");
21 return(0);
22}
23z_rnew()
24{
25 icptr = svic->iciunit + (++icnum)*svic->icirlen;
26 icpos = 0;
27}
28s_rsfi(a) icilist *a;
29{ int n;
30 if(n=c_si(a)) return(n);
31 reading=1;
32 doed=rd_ed;
33 doned=rd_ned;
34 getn=z_getc;
35 dorevert = donewrec = y_err;
36 doend = z_rnew;
37 return(0);
38}
39s_wsfi(a) icilist *a;
40{ int n;
41 if(n=c_si(a)) return(n);
42 reading=0;
43 doed=w_ed;
44 doned=w_ned;
45 putn=z_putc;
46 dorevert = donewrec = y_err;
47 doend = z_wnew;
48 return(0);
49}
50c_si(a) icilist *a;
51{
52 fmtbuf=a->icifmt;
53 if(pars_f(fmtbuf)<0)
54 err(a->icierr,100,"startint");
55 fmt_bg();
56 sequential=formatted=1;
57 external=0;
58 cblank=cplus=scale=0;
59 svic=a;
60 icnum=icpos=0;
61 icptr=svic->iciunit;
62 icend=icptr+svic->icirlen*svic->icirnum;
63 return(0);
64}
65z_wnew()
66{
67 while(icpos++ < svic->icirlen)
68 *icptr++ = ' ';
69 icpos = 0;
70 icnum++;
71}
72e_rsfi()
73{ int n;
74 n = en_fio();
75 fmtbuf = NULL;
76 return(n);
77}
78e_wsfi()
79{
80 int n;
81 n = en_fio();
82 fmtbuf = NULL;
83 while(icpos++ < svic->icirlen)
84 *icptr++ = ' ';
85 return(n);
86}
87y_err()
88{
89 err(elist->cierr, 110, "iio");
90}