If the new item is inserted before the first item in the list, then the
head must be updated as well.
Add a test to the list unit test to check for this.
} else { \
if ((_b->name##_prev = _a->name##_prev)) \
_b->name##_prev->name##_next = _b; \
} else { \
if ((_b->name##_prev = _a->name##_prev)) \
_b->name##_prev->name##_next = _b; \
+ else \
+ *_head = _b; \
_b->name##_next = _a; \
_a->name##_prev = _b; \
} \
_b->name##_next = _a; \
_a->name##_prev = _b; \
} \