|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 891 (0x37b) Types: TextFile Notes: UNIX file Names: »_stropen.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code └─⟦f4b8d8c84⟧ UNIX Filesystem └─⟦this⟧ »libc/stdio/_stropen.c«
/* * Standard I/O Library Internals * open string for getc, putc */ #include <stdio.h> #include <mdata.h> FILE * _stropen(string, length, fp) char *string; int length; register FILE *fp; { #if !RSX int _fgeteof(), _fputeos(), _fputexs(); fp->_bp = fp->_cp = string; fp->_gt = &_fgeteof; fp->_cc = -length; if (fp->_cc < -MAXINT) { /* most negative int means unlimited */ fp->_cc = MAXINT; fp->_pt = &_fputexs; } else fp->_pt = &_fputeos; #else fp->v_flag = VF_FIL; fp->v_r0 = -length; fp->v_r1 = string; fp->v_rblk = 1L; /* seek block > eof block */ fp->v_efbk = 0L; /* => eof at end of string */ fp->v_uget = -1; #endif return (fp); } #if !RSX static int _fputeos(c, fp) unsigned char c; register FILE *fp; { fp->_cc = 0; return (EOF); } static int _fputexs(c, fp) unsigned char c; register FILE *fp; { fp->_cc = MAXINT; return (*fp->_cp++ = c); } #endif