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 c;
20}
21