dmuck0.15-beta/docs/muf/
dmuck0.15-beta/game/
dmuck0.15-beta/game/logs/
dmuck0.15-beta/game/muf/
dmuck0.15-beta/game/muf/text/
#include "db.h"
#include "externs.h"

#define BUFFER_LEN 1024

void dbreflist_dump(FILE *f, dbref_list *drl)
{
  while (drl)
  {
    putref(f, drl->object);
    drl = drl->next;
  }
}

dbref_list *dbreflist_add(dbref_list *drl, dbref obj)
{
  dbref_list *tmp;

  if (dbreflist_find(drl,obj))
     return drl;

  tmp = (dbref_list *)malloc(sizeof(dbref_list));
  tmp->object = obj;
  tmp->next = drl;

  return tmp;
}

dbref_list *dbreflist_remove(dbref_list *drl, dbref obj)
{
  dbref_list *tmp, *loop;

  while (drl && (drl->object == obj))
  {
    tmp = drl;
    drl = drl->next;
    free (tmp);
  }
  loop = drl;
  while (loop && loop->next)
  {
    while(loop && loop->next && (loop->next->object == obj))
    {
      tmp = loop->next;
      loop->next = tmp->next;
      free(tmp);
    }
    if (loop) loop = loop->next;
  }
  return drl;
}

void dbreflist_burn(dbref_list *drl)
{
  dbref_list *tmp;
  while (drl)
  {
    tmp = drl;
    drl = drl->next;
    free (tmp);
  }
}

dbref_list *dbreflist_read(FILE *f)
{
  char buf[100];
  dbref_list *new, *list = NULL;
  fgets (buf, BUFSIZ, f);
  while (*buf != '*')
  {
    new = (dbref_list *)malloc(sizeof(dbref_list));
    new->object = (dbref)atol(buf);
    new->next = list;
    list = new;
    fgets(buf, BUFSIZ, f);
  }
  return list;
}

int dbreflist_find(dbref_list *drl, dbref obj)
{
  while(drl && (drl->object != obj)) drl = drl->next;
  return((int)drl);
}