C99 extravaganza.
[tinc] / src / list.h
index 4fe48db..855b427 100644 (file)
@@ -77,4 +77,6 @@ extern void list_delete_list(list_t *);
 extern void list_foreach(list_t *, list_action_t);
 extern void list_foreach_node(list_t *, list_action_node_t);
 
+#define list_each(type, item, list) (type *item = (type *)1; item; item = NULL) for(list_node_t *node = (list)->head, *next; item = node ? node->data : NULL, next = node ? node->next : NULL, node; node = next)
+
 #endif                                                 /* __TINC_LIST_H__ */