Mercurial > pidgin.yaz
diff plugins/icq/list.h @ 1152:201ec77f3a60
[gaim-migrate @ 1162]
icq. whoop de doo
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 28 Nov 2000 02:22:42 +0000 |
parents | |
children | 4c510ca3563f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/icq/list.h Tue Nov 28 02:22:42 2000 +0000 @@ -0,0 +1,44 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +#ifndef _LIST_H +#define _LIST_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdarg.h> + +#define list_enqueue(plist, p) \ + list_insert(plist, 0, p) + +#define list_dequeue(plist) \ + list_remove_node(plist, plist->head) + +typedef struct list_node_s +{ + struct list_node_s *next; + struct list_node_s *previous; + void *item; +} list_node; + +typedef struct list_s +{ + list_node *head; + list_node *tail; + int count; +} list; + +list *list_new(void); +void list_delete(list *plist, void (*item_free_f)(void *)); +void list_free(list *plist, void (*item_free_f)(void *)); +void list_insert(list *plist, list_node *pnode, void *pitem); +void *list_remove(list *plist, void *pitem); +void *list_traverse(list *plist, int (*item_f)(void *, va_list), ...); +int list_dump(list *plist); +void *list_first(list *plist); +void *list_last(list *plist); +void *list_at(list *plist, int num); +list_node *list_find(list *plist, void *pitem); +void *list_remove_node(list *plist, list_node *p); + +#endif /* _LIST_H */