rendered paste bodyvoid insert_list (list_ref list, list_item item) {
listnode_ref newnode = malloc (sizeof (struct listnode));
assert (is_list (list));
newnode->tag = listnode_tag;
newnode->item = item;
if (list->curr == NULL){
list->curr = newnode;
}else{
if (list->curr->next == list->last){
list->last = newnode;
}else{
newnode->next = list->curr->next;
newnode->prev = list->curr;
list->curr->next = newnode;
if (newnode->next != NULL)
newnode->next->prev = newnode;
list->curr = newnode;
}
list->last = newnode;
}
}