From 2f7314162c2a63a1015cc969bbe55319b3c99077 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Sun, 6 Jan 2013 02:04:56 +0100 Subject: initial import --- list.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 list.h (limited to 'list.h') diff --git a/list.h b/list.h new file mode 100644 index 0000000..571b6d7 --- /dev/null +++ b/list.h @@ -0,0 +1,21 @@ +#ifndef LIST_H +#define LIST_H + +#define list_add(Type, Head, Item) do {\ + Item->next = Head; \ + Head = Item; \ + } while (0); + +#define list_remove(Type, Head, Item) do {\ + Type **p; \ + for (p = &Head; *p; p = &((*p)->next)) { \ + if (*p = Item) { \ + *p = Item->next; \ + } \ + } \ + } while (0); + +#define list_foreach(Type, Head, Item) \ + for (Item = Head; Item; Item = Item->next) + +#endif \ No newline at end of file -- cgit v1.2.3