|
|
1.1 root 1: /*
2: * libc/stdio/_fputt.c
3: * ANSI-compliant C standard i/o library internals.
4: * _fputt(), _fputta()
5: * Write character, line buffered.
6: */
7:
8: #include <stdio.h>
9:
10: int
11: _fputt(c, fp) int c; register FILE *fp;
12: {
13: register int uc;
14: register _FILE2 *f2p;
15:
16: uc = (unsigned char)c;
17: f2p = fp->_f2p;
18: #if 1
19: if (fp->_cp==f2p->_ep && fflush(fp)
20: || (*fp->_cp++ = c) == '\n' && fflush(fp))
21: return EOF;
22: #else
23: if (putb(uc, fp) == EOF || (uc == '\n' && fflush(fp)))
24: return EOF;
25: #endif
26: return uc;
27: }
28:
29: #if _ASCII
30:
31: /* ASCII: prepend '\r' before '\n'. */
32: int
33: _fputta(c, fp) int c; register FILE *fp;
34: {
35: register int uc;
36:
37: if ((uc = (unsigned char)c) == '\n') {
38: if (_binputb('\r', fp) == EOF
39: || _binputb(uc, fp) == EOF
40: || fflush(fp))
41: return EOF;
42: return (uc);
43: }
44: return _binputb(uc, fp);
45: }
46:
47: #endif
48:
49: /* end of libc/stdio/_fputt.c */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.