ref: 4b27eadd45e9d157374782d164e8a79faf08575c
dir: /users.c/
#include <u.h>
#include <libc.h>
#include "dat.h"
#include "fns.h"
#include "ll.h"
static Linked *users;
User*
adduser(char *name)
{
User *n;
n = mallocz(sizeof(User), 1);
n->name = strdup(name);
ladd(&users, n);
return n;
}
static void
freeuser(void *u)
{
User *user = u;
free(user->name);
free(user);
}
void
deluser(User *user)
{
ldel(&users, user, freeuser);
}
static int
finduserfunc(void *ptr, void *c)
{
User *user = ptr;
char *name = c;
return strcmp(user->name, name) == 0;
}
User*
finduser(char *name)
{
return lfind(&users, finduserfunc, name);
}