master
 1#include "stdio_impl.h"
 2
 3int ungetc(int c, FILE *f)
 4{
 5	if (c == EOF) return c;
 6
 7	FLOCK(f);
 8
 9	if (!f->rpos) __toread(f);
10	if (!f->rpos || f->rpos <= f->buf - UNGET) {
11		FUNLOCK(f);
12		return EOF;
13	}
14
15	*--f->rpos = c;
16	f->flags &= ~F_EOF;
17
18	FUNLOCK(f);
19	return (unsigned char)c;
20}