#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;
}
