21 lines
278 B
C
21 lines
278 B
C
#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 (unsigned char)c;
|
|
}
|