internal.c 458 B

1234567891011121314151617181920
  1. #include <list.h>
  2. #include <stdlib.h>
  3. void __node_insert(list_node* node, list_node* newnode)
  4. {
  5. NDNEXT(*newnode) = NDNEXT(*node);
  6. if (NDNEXT(*node))
  7. NDPREV(*NDNEXT(*node)) = newnode;
  8. NDNEXT(*node) = newnode;
  9. NDPREV(*newnode) = node;
  10. }
  11. void __node_erase(list_node* node)
  12. {
  13. if (NDPREV(*node))
  14. NDNEXT(*NDPREV(*node)) = NDNEXT(*node);
  15. if (NDNEXT(*node))
  16. NDPREV(*NDNEXT(*node)) = NDPREV(*node);
  17. free(node);
  18. }