|
|
1.1 ! root 1: /* ! 2: * common/bput.c ! 3: * Standard stream library for the ! 4: * C compiler and other compilers that use ! 5: * C compiler factilities. ! 6: * Output a byte. ! 7: */ ! 8: ! 9: #include <stdio.h> ! 10: #ifdef vax ! 11: #include "INC$LIB:mch.h" ! 12: #include "INC$LIB:stream.h" ! 13: #else ! 14: #include "mch.h" ! 15: #include "stream.h" ! 16: #endif ! 17: ! 18: extern FILE *ofp; ! 19: ! 20: bput(b) ! 21: int b; ! 22: { ! 23: #if 0 ! 24: /* ! 25: * Some versions VAX and i8086 stdio putc(b, ofp) return EOF (-1) ! 26: * for char arg 255 (because the argument gets sign-extended from ! 27: * char 0xFF to int 0xFFFF, and putc returns its arg on success ! 28: * without masking it). The following line avoids this bug. ! 29: */ ! 30: b &= 0xFF; /* avoid putc sign-extension bug */ ! 31: #endif ! 32: #if TEMPBUF ! 33: if (ofp == NULL) { ! 34: if (outbufp == outbufmax) { ! 35: extern char *realloc(); ! 36: unsigned char *cp; ! 37: ! 38: tempsize += tempsize / 2; ! 39: cp = inbuf; ! 40: inbuf = realloc(inbuf, tempsize); ! 41: inbufp += inbuf - cp; ! 42: inbufmax += inbuf - cp; ! 43: cp = outbuf; ! 44: outbuf = realloc(outbuf, tempsize); ! 45: outbufp += outbuf - cp; ! 46: outbufmax = outbuf + tempsize; ! 47: if (inbuf == NULL || outbuf == NULL) ! 48: cfatal("out of space in memory buffer; use \"-T0\" option"); ! 49: } ! 50: *outbufp++ = b; ! 51: return; ! 52: } ! 53: #endif ! 54: #if MSDOS ! 55: if (_binputc(b, ofp) == EOF) ! 56: #else ! 57: if (putc(b, ofp) == EOF) ! 58: #endif ! 59: cfatal("temporary file write error"); ! 60: } ! 61: ! 62: /* end of common/bput.c */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.