|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)wsfe.c 5.3 6/11/86 ! 7: */ ! 8: ! 9: /* ! 10: * write sequential formatted external ! 11: */ ! 12: ! 13: #include "fio.h" ! 14: ! 15: LOCAL char wsfe[] = "write sfe"; ! 16: ! 17: extern int w_ed(),w_ned(); ! 18: int x_putc(),pr_put(),x_wend(),x_wnew(),x_tab(); ! 19: LOCAL ioflag new; ! 20: ! 21: s_wsfe(a) cilist *a; /*start*/ ! 22: { int n; ! 23: reading = NO; ! 24: sequential = YES; ! 25: if(n=c_sfe(a,WRITE,SEQ,wsfe)) return(n); ! 26: if(curunit->url) err(errflag,F_ERNOSIO,wsfe) ! 27: if(!curunit->uwrt && ! nowwriting(curunit)) err(errflag, errno, wsfe) ! 28: curunit->uend = NO; ! 29: if (curunit->uprnt) putn = pr_put; ! 30: else putn = x_putc; ! 31: new = YES; ! 32: doed= w_ed; ! 33: doned= w_ned; ! 34: doend = x_wend; ! 35: dorevert = donewrec = x_wnew; ! 36: dotab = x_tab; ! 37: if(pars_f()) err(errflag,F_ERFMT,wsfe) ! 38: fmt_bg(); ! 39: return(OK); ! 40: } ! 41: ! 42: LOCAL ! 43: x_putc(c) ! 44: { ! 45: if(c=='\n') recpos = reclen = cursor = 0; ! 46: else recpos++; ! 47: putc(c,cf); ! 48: return(OK); ! 49: } ! 50: ! 51: LOCAL ! 52: pr_put(c) ! 53: { ! 54: if(c=='\n') ! 55: { new = YES; ! 56: recpos = reclen = cursor = 0; ! 57: } ! 58: else if(new) ! 59: { new = NO; ! 60: if(c=='0') c = '\n'; ! 61: else if(c=='1') c = '\f'; ! 62: else return(OK); ! 63: } ! 64: else recpos++; ! 65: putc(c,cf); ! 66: return(OK); ! 67: } ! 68: ! 69: LOCAL ! 70: x_wnew() ! 71: { ! 72: if(reclen>recpos) fseek(cf,(long)(reclen-recpos),1); ! 73: return((*putn)('\n')); ! 74: } ! 75: ! 76: LOCAL ! 77: x_wend(last) char last; ! 78: { ! 79: if(reclen>recpos) fseek(cf,(long)(reclen-recpos),1); ! 80: if(last) ! 81: return((*putn)(last)); ! 82: else ! 83: return(OK); ! 84: } ! 85: ! 86: e_wsfe() ! 87: { int n; ! 88: n=en_fio(); ! 89: fmtbuf=NULL; ! 90: return(n); ! 91: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.