#include "pwf.h"

static FILE* f;
static char* line;
static struct passwd pw;
static size_t size;

void setpwent() {
  if (f)
    fclose(f);
  f = 0;
}

weak_alias(setpwent, endpwent);

struct passwd* getpwent() {
  struct passwd* res;
  if (!f)
    f = fopen("/etc/passwd", "rbe");
  if (!f)
    return 0;
  __getpwent_a(f, &pw, &line, &size, &res);
  return res;
}

struct passwd* getpwuid(uid_t uid) {
  struct passwd* res;
  __getpw_a(0, uid, &pw, &line, &size, &res);
  return res;
}

struct passwd* getpwnam(const char* name) {
  struct passwd* res;
  __getpw_a(name, 0, &pw, &line, &size, &res);
  return res;
}
