|
|
1.1 root 1: #include "f2c.h"
2: #include "fio.h"
3: #include "lio.h"
4: #include "fmt.h" /* for f__doend */
5:
6: extern flag f__lquit;
7: extern int f__lcount;
8: extern char *f__icptr;
9: extern char *f__icend;
10: extern icilist *f__svic;
11: extern int f__icnum, f__recpos;
12:
13: static int i_getc(Void)
14: {
15: if(f__recpos >= f__svic->icirlen) {
16: if (f__recpos++ == f__svic->icirlen)
17: return '\n';
18: z_rnew();
19: }
20: f__recpos++;
21: if(f__icptr >= f__icend) err(f__svic->iciend,(EOF),"internal read");
22: return(*f__icptr++);
23: }
24:
25: static
26: #ifdef KR_headers
27: int i_ungetc(ch, f) int ch; FILE *f;
28: #else
29: int i_ungetc(int ch, FILE *f)
30: #endif
31: {
32: if (--f__recpos == f__svic->icirlen)
33: return '\n';
34: if (f__recpos < -1)
35: err(f__svic->icierr,110,"recend");
36: /* *--icptr == ch, and icptr may point to read-only memory */
37: return *--f__icptr /* = ch */;
38: }
39:
40: static void
41: #ifdef KR_headers
42: c_lir(a) icilist *a;
43: #else
44: c_lir(icilist *a)
45: #endif
46: {
47: extern int l_eof;
48: f__reading = 1;
49: f__external = 0;
50: f__formatted = 1;
51: f__svic = a;
52: L_len = a->icirlen;
53: f__recpos = -1;
54: f__icnum = f__recpos = 0;
55: f__cursor = 0;
56: l_getc = i_getc;
57: l_ungetc = i_ungetc;
58: l_eof = 0;
59: f__icptr = a->iciunit;
60: f__icend = f__icptr + a->icirlen*a->icirnum;
61: f__cf = 0;
62: f__curunit = 0;
63: f__elist = (cilist *)a;
64: }
65:
66:
67: #ifdef KR_headers
68: integer s_rsli(a) icilist *a;
69: #else
70: integer s_rsli(icilist *a)
71: #endif
72: {
73: f__lioproc = l_read;
74: f__lquit = 0;
75: f__lcount = 0;
76: c_lir(a);
77: f__doend = 0;
78: return(0);
79: }
80:
81: integer e_rsli(Void)
82: { return 0; }
83:
84: #ifdef KR_headers
85: integer s_rsni(a) icilist *a;
86: #else
87: extern int x_rsne(cilist*);
88:
89: integer s_rsni(icilist *a)
90: #endif
91: {
92: cilist ca;
93: ca.ciend = a->iciend;
94: ca.cierr = a->icierr;
95: ca.cifmt = a->icifmt;
96: c_lir(a);
97: return x_rsne(&ca);
98: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.