All pastes #383351 Raw Edit

Something

public c v1 · immutable
·published 2007-03-06 09:00 UTC
rendered paste body
void insert_list (list_ref list, list_item item, list_ins insert) {    char *str = strdup(item);    listnode_ref nodref = malloc(sizeof(struct listnode));    assert (nodref != NULL);    assert (is_list (list));    switch (insert) {        case INS_AFTER:            if (curr != last) {                nodref->next = curr->next;                curr->next->prev = nodref;                curr->next = nodref;            } else {                nodref->next = NULL;                curr->next = nodref;            }            nodref->prev = curr;            curr = nodref;            nodref->item = str;            nodref->tag = listnode_tag;            break;        case INS_BEFORE:            if (curr != head) {                nodref->prev = curr->prev;                curr->prev = nodref;                curr->prev->next = nodref;            } else {                nodref->prev = NULL;                curr->prev = nodref;            }            nodref->next = curr;            curr = nodref;            nodref->item = str;            nodref->tag = listnode_tag;            break;        default: printf ("Invalid operation: insert_list (%d)\n", insert);    };}