#include "shgetc.h"

void __shlim(FILE* f, off_t lim) {
  f->shlim = lim;
  f->shcnt = f->rend - f->rpos;
  if (lim && f->shcnt > lim)
    f->shend = f->rpos + lim;
  else
    f->shend = f->rend;
}

int __shgetc(FILE* f) {
  int c;
  if ((f->shlim && f->shcnt >= f->shlim) || (c = __uflow(f)) < 0) {
    f->shend = 0;
    return EOF;
  }
  if (f->shlim && f->rend - f->rpos > f->shlim - f->shcnt - 1)
    f->shend = f->rpos + (f->shlim - f->shcnt - 1);
  else
    f->shend = f->rend;
  if (f->rend)
    f->shcnt += f->rend - f->rpos + 1;
  if (f->rpos[-1] != c)
    f->rpos[-1] = c;
  return c;
}
