|
|
1.1 ! root 1: /*write sequential formatted external*/ ! 2: #include "f2c.h" ! 3: #include "fio.h" ! 4: #include "fmt.h" ! 5: extern int f__hiwater; ! 6: ! 7: #ifdef KR_headers ! 8: x_putc(c) ! 9: #else ! 10: x_putc(int c) ! 11: #endif ! 12: { ! 13: /* this uses \n as an indicator of record-end */ ! 14: if(c == '\n' && f__recpos < f__hiwater) { /* fseek calls fflush, a loss */ ! 15: #ifndef NON_UNIX_STDIO ! 16: if(f__cf->_ptr + f__hiwater - f__recpos < buf_end(f__cf)) ! 17: f__cf->_ptr += f__hiwater - f__recpos; ! 18: else ! 19: #endif ! 20: (void) fseek(f__cf, (long)(f__hiwater - f__recpos), SEEK_CUR); ! 21: } ! 22: f__recpos++; ! 23: return putc(c,f__cf); ! 24: } ! 25: x_wSL(Void) ! 26: { ! 27: (*f__putn)('\n'); ! 28: f__recpos=0; ! 29: f__cursor = 0; ! 30: f__hiwater = 0; ! 31: return(1); ! 32: } ! 33: xw_end(Void) ! 34: { ! 35: if(f__nonl == 0) ! 36: (*f__putn)('\n'); ! 37: f__hiwater = f__recpos = f__cursor = 0; ! 38: return(0); ! 39: } ! 40: xw_rev(Void) ! 41: { ! 42: if(f__workdone) (*f__putn)('\n'); ! 43: f__hiwater = f__recpos = f__cursor = 0; ! 44: return(f__workdone=0); ! 45: } ! 46: ! 47: #ifdef KR_headers ! 48: integer s_wsfe(a) cilist *a; /*start*/ ! 49: #else ! 50: integer s_wsfe(cilist *a) /*start*/ ! 51: #endif ! 52: { int n; ! 53: if(!f__init) f_init(); ! 54: if(n=c_sfe(a)) return(n); ! 55: f__reading=0; ! 56: f__sequential=1; ! 57: f__formatted=1; ! 58: f__external=1; ! 59: f__elist=a; ! 60: f__hiwater = f__cursor=f__recpos=0; ! 61: f__nonl = 0; ! 62: f__scale=0; ! 63: f__fmtbuf=a->cifmt; ! 64: f__curunit = &f__units[a->ciunit]; ! 65: f__cf=f__curunit->ufd; ! 66: if(pars_f(f__fmtbuf)<0) err(a->cierr,100,"startio"); ! 67: f__putn= x_putc; ! 68: f__doed= w_ed; ! 69: f__doned= w_ned; ! 70: f__doend=xw_end; ! 71: f__dorevert=xw_rev; ! 72: f__donewrec=x_wSL; ! 73: fmt_bg(); ! 74: f__cplus=0; ! 75: f__cblank=f__curunit->ublnk; ! 76: if(f__curunit->uwrt != 1 && f__nowwriting(f__curunit)) ! 77: err(a->cierr,errno,"write start"); ! 78: return(0); ! 79: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.