chiark / gitweb /
add DLIST2_INSERT_{AFTER,BEFORE} but NOT TESTED!
authorian <ian>
Sun, 30 Mar 2008 22:50:35 +0000 (22:50 +0000)
committerian <ian>
Sun, 30 Mar 2008 22:50:35 +0000 (22:50 +0000)
hostside/dliste.h

index bade3d4a47dd283346ba87cf468870bd2d53fc5b..5ec0196b32dc49202cb6764ca7d6258c2bfcf56a 100644 (file)
                  : ((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*/