|
|
1.1 ! root 1: /* ! 2: * Standard I/O Library Internals ! 3: * open string for getc, putc ! 4: */ ! 5: ! 6: #include <stdio.h> ! 7: #include <sys/mdata.h> ! 8: ! 9: FILE * ! 10: _stropen(string, length, fp) ! 11: char *string; ! 12: int length; ! 13: register FILE *fp; ! 14: { ! 15: #if !RSX ! 16: int _fgeteof(), ! 17: _fputeos(), ! 18: _fputexs(); ! 19: ! 20: fp->_bp = fp->_cp = string; ! 21: fp->_gt = &_fgeteof; ! 22: fp->_cc = -length; ! 23: if (fp->_cc < -MAXINT) { /* most negative int means unlimited */ ! 24: fp->_cc = MAXINT; ! 25: fp->_pt = &_fputexs; ! 26: } else ! 27: fp->_pt = &_fputeos; ! 28: #else ! 29: fp->v_flag = VF_FIL; ! 30: fp->v_r0 = -length; ! 31: fp->v_r1 = string; ! 32: fp->v_rblk = 1L; /* seek block > eof block */ ! 33: fp->v_efbk = 0L; /* => eof at end of string */ ! 34: fp->v_uget = -1; ! 35: #endif ! 36: return (fp); ! 37: } ! 38: ! 39: #if !RSX ! 40: static ! 41: int ! 42: _fputeos(c, fp) ! 43: unsigned char c; ! 44: register FILE *fp; ! 45: { ! 46: fp->_cc = 0; ! 47: return (EOF); ! 48: } ! 49: ! 50: static ! 51: int ! 52: _fputexs(c, fp) ! 53: unsigned char c; ! 54: register FILE *fp; ! 55: { ! 56: fp->_cc = MAXINT; ! 57: return (*fp->_cp++ = c); ! 58: } ! 59: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.