Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7118:b626d8975193 HEAD
Added macros for handling a doubly linked list.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 06 Jan 2008 02:18:20 +0200 |
parents | 769181a20483 |
children | 8c6a7af67e8c |
files | src/lib/Makefile.am src/lib/llist.h |
diffstat | 2 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/Makefile.am Sun Jan 06 01:56:37 2008 +0200 +++ b/src/lib/Makefile.am Sun Jan 06 02:18:20 2008 +0200 @@ -146,6 +146,7 @@ ioloop-notify-fd.h \ lib.h \ lib-signals.h \ + llist.h \ macros.h \ md4.h \ md5.h \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lib/llist.h Sun Jan 06 02:18:20 2008 +0200 @@ -0,0 +1,21 @@ +#ifndef LLIST_H +#define LLIST_H + +/* Doubly linked list */ +#define DLLIST_PREPEND(list, item) STMT_START { \ + (item)->prev = NULL; \ + (item)->next = *(list); \ + if (*(list) != NULL) (*(list))->prev = (item); \ + *(list) = (item); \ + } STMT_END + +#define DLLIST_REMOVE(list, item) STMT_START { \ + if ((item)->prev == NULL) \ + *(list) = (item)->next; \ + else \ + (item)->prev->next = (item)->next; \ + if ((item)->next != NULL) \ + (item)->next->prev = (item)->prev; \ + } STMT_END + +#endif