|
|
1.1 root 1: /* @(#)iio.c 1.2 */
2: #include "fio.h"
3: #include "fmt.h"
4: extern char *icptr;
5: char *icend;
6: extern icilist *svic;
7: extern int rd_ed(),rd_ned(),w_ed(),w_ned(),y_ierr();
8: extern int z_wnew();
9: int icnum;
10: extern int hiwater;
11: z_getc()
12: {
13: if(icptr >= icend) err(svic->iciend,(EOF),"endfile");
14: if(recpos++ < svic->icirlen)
15: return(*icptr++);
16: else err(svic->icierr,110,"recend");
17: }
18: z_putc(c)
19: {
20: if(icptr >= icend) err(svic->icierr,110,"inwrite");
21: if(recpos++ < svic->icirlen)
22: *icptr++ = c;
23: else err(svic->icierr,110,"recend");
24: return(0);
25: }
26: z_rnew()
27: {
28: icptr = svic->iciunit + (++icnum)*svic->icirlen;
29: recpos = 0;
30: cursor = 0;
31: hiwater = 0;
32: }
33: s_rsfi(a) icilist *a;
34: { int n;
35: if(n=c_si(a)) return(n);
36: reading=1;
37: doed=rd_ed;
38: doned=rd_ned;
39: getn=z_getc;
40: dorevert = y_ierr;
41: donewrec = doend = z_rnew;
42: return(0);
43: }
44: s_wsfi(a) icilist *a;
45: { int n;
46: if(n=c_si(a)) return(n);
47: reading=0;
48: doed=w_ed;
49: doned=w_ned;
50: putn=z_putc;
51: dorevert = y_ierr;
52: donewrec = doend = z_wnew;
53: return(0);
54: }
55: c_si(a) icilist *a;
56: {
57: fmtbuf=a->icifmt;
58: if(pars_f(fmtbuf)<0)
59: err(a->icierr,100,"startint");
60: fmt_bg();
61: sequential=formatted=1;
62: external=0;
63: cblank=cplus=scale=0;
64: svic=a;
65: icnum=recpos=0;
66: cursor = 0;
67: hiwater = 0;
68: icptr=svic->iciunit;
69: icend=icptr+svic->icirlen*svic->icirnum;
70: return(0);
71: }
72: z_wnew()
73: {
74: while(recpos++ < svic->icirlen)
75: *icptr++ = ' ';
76: recpos = 0;
77: cursor = 0;
78: hiwater = 0;
79: icnum++;
80: }
81: e_rsfi()
82: { int n;
83: n = en_fio();
84: fmtbuf = NULL;
85: return(n);
86: }
87: e_wsfi()
88: {
89: int n;
90: n = en_fio();
91: fmtbuf = NULL;
92: if(icnum >= svic->icirnum)
93: return(n);
94: while(recpos++ < svic->icirlen)
95: *icptr++ = ' ';
96: return(n);
97: }
98: y_ierr()
99: {
100: err(elist->cierr, 110, "iio");
101: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.