1: /*write sequential formatted external*/
2: #include "fio.h"
3: #include "fmt.h"
4: extern int x_putc(),w_ed(),w_ned();
5: extern int xw_end(),xw_rev(),x_wSL();
6: s_wsfe(a) cilist *a; /*start*/
7: { int n;
8: if(!init) f_init();
9: if(n=c_sfe(a,WRITE)) return(n);
10: reading=0;
11: sequential=1;
12: formatted=1;
13: external=1;
14: elist=a;
15: cursor=recpos=0;
16: scale=0;
17: fmtbuf=a->cifmt;
18: if(pars_f(fmtbuf)<0) err(a->cierr,100,"startio");
19: curunit = &units[a->ciunit];
20: cf=curunit->ufd;
21: putn= x_putc;
22: doed= w_ed;
23: doned= w_ned;
24: doend=xw_end;
25: dorevert=xw_rev;
26: donewrec=x_wSL;
27: fmt_bg();
28: cplus=0;
29: cblank=curunit->ublnk;
30: if(!curunit->uwrt) nowwriting(curunit);
31: return(0);
32: }
33: x_putc(c)
34: {
35: recpos++;
36: putc(c,cf);
37: }
38: pr_put(c)
39: { static flag new = 1;
40: recpos++;
41: if(c=='\n')
42: { new=1;
43: putc(c,cf);
44: }
45: else if(new==1)
46: { new=0;
47: if(c=='0') putc('\n',cf);
48: else if(c=='1') putc('\f',cf);
49: }
50: else putc(c,cf);
51: }
52: x_wSL()
53: {
54: recpos=0;
55: cursor = 0;
56: (*putn)('\n');
57: return(1);
58: }
59: xw_end()
60: {
61: (*putn)('\n');
62: return(0);
63: }
64: xw_rev()
65: {
66: if(workdone) (*putn)('\n');
67: return(workdone=0);
68: }
Defined functions
s_wsfe
defined in line
6;
never used
x_wSL
defined in line
52; used 2 times