#include "c.h"

static char rcsid[] = "$Id: event.nw,v 1.8 1997/02/16 21:13:34 drh Exp $";

struct entry {
        Apply func;
        void *cl;
};

Events events;

void attach(Apply func, void *cl, List *list) {
  struct entry *p;

  NEW(p, PERM);
  p->func = func;
  p->cl = cl;
  *list = append(p, *list);
}
void apply(List event, void *arg1, void *arg2) {
  if (event) {
    List lp = event;
    do {
      struct entry *p = lp->x;
      (*p->func)(p->cl, arg1, arg2);
      lp = lp->link;
    } while (lp != event);
  }
}

