#include "copyright.h"
#include "db.h"
/* remove the first occurence of what in list headed by first */
dbref remove_first (dbref first, dbref what)
{
  dbref prev;
  /* special case if it's the first one */
  if (first == what) {
    return db[first].next;
  } else {
    /* have to find it */
    DOLIST (prev, first) {
      if (db[prev].next == what) {
        db[prev].next = db[what].next;
        return first;
      }
    }
    return first;
  }
}
int member (dbref thing, dbref list)
{
  DOLIST (list, list) {
    if (list == thing)
      return 1;
  }
  return 0;
}
dbref reverse (dbref list)
{
  dbref newlist;
  dbref rest;
  newlist = NOTHING;
  while (list != NOTHING) {
    rest = db[list].next;
    PUSH (list, newlist);
    list = rest;
  }
  return newlist;
}