|
|
1.1 ! root 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)) return(n); ! 10: reading=0; ! 11: sequential=1; ! 12: formatted=1; ! 13: external=1; ! 14: elist=a; ! 15: cursor=recpos=0; ! 16: nonl = 0; ! 17: scale=0; ! 18: fmtbuf=a->cifmt; ! 19: curunit = &units[a->ciunit]; ! 20: cf=curunit->ufd; ! 21: if(pars_f(fmtbuf)<0) err(a->cierr,100,"startio"); ! 22: putn= x_putc; ! 23: doed= w_ed; ! 24: doned= w_ned; ! 25: doend=xw_end; ! 26: dorevert=xw_rev; ! 27: donewrec=x_wSL; ! 28: fmt_bg(); ! 29: cplus=0; ! 30: cblank=curunit->ublnk; ! 31: if(!curunit->uwrt) (void) nowwriting(curunit); ! 32: return(0); ! 33: } ! 34: x_putc(c) ! 35: { ! 36: recpos++; ! 37: putc(c,cf); ! 38: } ! 39: pr_put(c) ! 40: { static flag new = 1; ! 41: recpos++; ! 42: if(c=='\n') ! 43: { new=1; ! 44: putc(c,cf); ! 45: } ! 46: else if(new==1) ! 47: { new=0; ! 48: if(c=='0') putc('\n',cf); ! 49: else if(c=='1') putc('\f',cf); ! 50: } ! 51: else putc(c,cf); ! 52: } ! 53: x_wSL() ! 54: { ! 55: (*putn)('\n'); ! 56: recpos=0; ! 57: cursor = 0; ! 58: return(1); ! 59: } ! 60: xw_end() ! 61: { ! 62: if(nonl == 0) ! 63: (*putn)('\n'); ! 64: return(0); ! 65: } ! 66: xw_rev() ! 67: { ! 68: if(workdone) (*putn)('\n'); ! 69: return(workdone=0); ! 70: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.