: ((list).tail= (node))), \
(list).head= (node)))
+#define DLIST2_INSERT_BEFORE(list,newnode,link,refnode) \
+ ((void) \
+ ((newnode)->link.next= (refnode), \
+ (newnode)->link.back= (refnode)->link.back, \
+ ((refnode)->link.back \
+ ? ((refnode)->link.back->link.next= (newnode)) \
+ : ((list).head= (newnode))), \
+ (refnode)->link.back= (newnode)))
+
+#define DLIST2_INSERT_AFTER(list,newnode,link,refnode) \
+ ((void) \
+ ((newnode)->link.back= (refnode), \
+ (newnode)->link.next= (refnode)->link.next, \
+ ((refnode)->link.next \
+ ? ((refnode)->link.next->link.back= (newnode)) \
+ : ((list).tail= (newnode))), \
+ (refnode)->link.next= (newnode)))))
#endif /*DLIST_H*/