Something went wrong. Try again.
MIRROR: javascript for 🐜's, a tiny runtime with big ambitions ant.themackabu.dev
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930#ifndef ANT_LIST_H#define ANT_LIST_H
#include <stddef.h>
#define Ant_List_IsLinked(node) ((node)->pprev != NULL)
#define Ant_List_Insert(head, node) ({ \ typeof(head) _head = (head); \ typeof(node) _node = (node); \ if (!_node->pprev) { \ _node->next = *_head; \ if (_node->next) _node->next->pprev = &_node->next; \ _node->pprev = _head; \ *_head = _node; \ } \})
#define Ant_List_Remove(node) ({ \ typeof(node) _node = (node); \ if (_node->pprev) { \ *_node->pprev = _node->next; \ if (_node->next) _node->next->pprev = _node->pprev; \ _node->next = NULL; \ _node->pprev = NULL; \ } \})
#endif