|
|
1.1 root 1: #include "f2c.h"
2: #include "fio.h"
3: #include "fmt.h"
4: extern char *f__icptr;
5: char *f__icend;
6: extern icilist *f__svic;
7: int f__icnum;
8: extern int f__hiwater;
9: z_getc(Void)
10: {
11: if(f__recpos++ < f__svic->icirlen) {
12: if(f__icptr >= f__icend) err(f__svic->iciend,(EOF),"endfile");
13: return(*f__icptr++);
14: }
15: err(f__svic->icierr,110,"recend");
16: }
17: #ifdef KR_headers
18: z_putc(c)
19: #else
20: z_putc(int c)
21: #endif
22: {
23: if(f__icptr >= f__icend) err(f__svic->icierr,110,"inwrite");
24: if(f__recpos++ < f__svic->icirlen)
25: *f__icptr++ = c;
26: else err(f__svic->icierr,110,"recend");
27: return 0;
28: }
29: z_rnew(Void)
30: {
31: f__icptr = f__svic->iciunit + (++f__icnum)*f__svic->icirlen;
32: f__recpos = 0;
33: f__cursor = 0;
34: f__hiwater = 0;
35: return 1;
36: }
37:
38: static int
39: z_endp(Void)
40: {
41: (*f__donewrec)();
42: return 0;
43: }
44:
45: #ifdef KR_headers
46: c_si(a) icilist *a;
47: #else
48: c_si(icilist *a)
49: #endif
50: {
51: f__elist = (cilist *)a;
52: f__fmtbuf=a->icifmt;
53: if(pars_f(f__fmtbuf)<0)
54: err(a->icierr,100,"startint");
55: fmt_bg();
56: f__sequential=f__formatted=1;
57: f__external=0;
58: f__cblank=f__cplus=f__scale=0;
59: f__svic=a;
60: f__icnum=f__recpos=0;
61: f__cursor = 0;
62: f__hiwater = 0;
63: f__icptr = a->iciunit;
64: f__icend = f__icptr + a->icirlen*a->icirnum;
65: f__curunit = 0;
66: f__cf = 0;
67: return(0);
68: }
69: y_ierr(Void)
70: {
71: err(f__elist->cierr, 110, "iio");
72: }
73: #ifdef KR_headers
74: integer s_rsfi(a) icilist *a;
75: #else
76: integer s_rsfi(icilist *a)
77: #endif
78: { int n;
79: if(n=c_si(a)) return(n);
80: f__reading=1;
81: f__doed=rd_ed;
82: f__doned=rd_ned;
83: f__getn=z_getc;
84: f__dorevert = y_ierr;
85: f__donewrec = z_rnew;
86: f__doend = z_endp;
87: return(0);
88: }
89:
90: z_wnew(Void)
91: {
92: while(f__recpos++ < f__svic->icirlen)
93: *f__icptr++ = ' ';
94: f__recpos = 0;
95: f__cursor = 0;
96: f__hiwater = 0;
97: f__icnum++;
98: return 1;
99: }
100: #ifdef KR_headers
101: integer s_wsfi(a) icilist *a;
102: #else
103: integer s_wsfi(icilist *a)
104: #endif
105: { int n;
106: if(n=c_si(a)) return(n);
107: f__reading=0;
108: f__doed=w_ed;
109: f__doned=w_ned;
110: f__putn=z_putc;
111: f__dorevert = y_ierr;
112: f__donewrec = z_wnew;
113: f__doend = z_endp;
114: return(0);
115: }
116: integer e_rsfi(Void)
117: { int n;
118: n = en_fio();
119: f__fmtbuf = NULL;
120: return(n);
121: }
122: integer e_wsfi(Void)
123: {
124: int n;
125: n = en_fio();
126: f__fmtbuf = NULL;
127: if(f__icnum >= f__svic->icirnum)
128: return(n);
129: while(f__recpos++ < f__svic->icirlen)
130: *f__icptr++ = ' ';
131: return(n);
132: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.