ref: d8035d7ee34c4f800509bb0680ad678fef612f99
dir: /src/list.h/
typedef struct Listelem Listelem; struct Listelem { void *front; void *back; }; Listelem* listinit(Listelem*); Listelem* listlink(Listelem*, Listelem*); Listelem* listunlink(Listelem*); int listisempty(Listelem*); int listisfirst(Listelem*, Listelem*); int listislast(Listelem*, Listelem*); #define listeach(type, sentinel, ptr) \ for(type _next = (sentinel)->front; \ (ptr) = _next, _next = (ptr)->front, (ptr) != (sentinel); ) #define listrange(type, sentinel, ptr) \ for(type _next; \ _next = (ptr)->front, (ptr) != (sentinel); \ (ptr) = _next)