summaryrefslogtreecommitdiff
path: root/src/stdio/__overflow.c
blob: e65a594dd7bf190a5481fc707a8f902812fe0ca3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
#include "stdio_impl.h"

int __overflow(FILE *f, int _c)
{
	unsigned char c = _c;
	if (!f->wend && __towrite(f)) return EOF;
	if (f->wpos != f->wend && c != f->lbf) return *f->wpos++ = c;
	if (f->write(f, &c, 1)!=1) return EOF;
	return c;
}