blob: c0cb9cb4d706fcfa5627bb69edc18085e8e580c9 [file] [log] [blame]
#include "stdio_impl.h"
int ungetc(int c, FILE* f) {
if (c == EOF)
return c;
FLOCK(f);
if (!f->rpos)
__toread(f);
if (!f->rpos || f->rpos <= f->buf - UNGET) {
FUNLOCK(f);
return EOF;
}
*--f->rpos = c;
f->flags &= ~F_EOF;
FUNLOCK(f);
return c;
}