void add_event(struct divecomputer *dc, int time, int type, int flags, int value, const char *name) { struct event *ev, **p; unsigned int size, len = strlen(name); size = sizeof(*ev) + len + 1; ev = malloc(size); if (!ev) return; memset(ev, 0, size); memcpy(ev->name, name, len); ev->time.seconds = time; ev->type = type; ev->flags = flags; ev->value = value; p = &dc->events; /* insert in the sorted list of events */ while (*p && (*p)->time.seconds <= time) p = &(*p)->next; ev->next = *p; *p = ev; remember_event(name); }
void add_event(struct dive *dive, int time, int type, int flags, int value, const char *name) { struct event *ev, **p; unsigned int size, len = strlen(name); size = sizeof(*ev) + len + 1; ev = malloc(size); if (!ev) return; memset(ev, 0, size); memcpy(ev->name, name, len); ev->time.seconds = time; ev->type = type; ev->flags = flags; ev->value = value; ev->next = NULL; p = &dive->events; while (*p) p = &(*p)->next; *p = ev; remember_event(name); }