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