All pastes #383167 Raw Edit

Mine

public text v1 · immutable
·published 2007-03-06 04:09 UTC
rendered paste body
void 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;
   }
}