#define _GNU_SOURCE
#include <string.h>

#include "stdio_impl.h"

char* fgetln(FILE* f, size_t* plen) {
  char *ret = 0, *z;
  ssize_t l;
  FLOCK(f);
  ungetc(getc_unlocked(f), f);
  if ((z = memchr(f->rpos, '\n', f->rend - f->rpos))) {
    ret = (char*)f->rpos;
    *plen = ++z - ret;
    f->rpos = (void*)z;
  } else if ((l = getline(&f->getln_buf, (size_t[]){}, f)) > 0) {
    *plen = l;
    ret = f->getln_buf;
  }
  FUNLOCK(f);
  return ret;
}
