Mercurial > pidgin
comparison 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 |
comparison
equal
deleted
inserted
replaced
1151:428372cc1e39 | 1152:201ec77f3a60 |
---|---|
1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | |
2 #ifndef _LIST_H | |
3 #define _LIST_H | |
4 | |
5 #ifdef HAVE_CONFIG_H | |
6 #include <config.h> | |
7 #endif | |
8 | |
9 #include <stdarg.h> | |
10 | |
11 #define list_enqueue(plist, p) \ | |
12 list_insert(plist, 0, p) | |
13 | |
14 #define list_dequeue(plist) \ | |
15 list_remove_node(plist, plist->head) | |
16 | |
17 typedef struct list_node_s | |
18 { | |
19 struct list_node_s *next; | |
20 struct list_node_s *previous; | |
21 void *item; | |
22 } list_node; | |
23 | |
24 typedef struct list_s | |
25 { | |
26 list_node *head; | |
27 list_node *tail; | |
28 int count; | |
29 } list; | |
30 | |
31 list *list_new(void); | |
32 void list_delete(list *plist, void (*item_free_f)(void *)); | |
33 void list_free(list *plist, void (*item_free_f)(void *)); | |
34 void list_insert(list *plist, list_node *pnode, void *pitem); | |
35 void *list_remove(list *plist, void *pitem); | |
36 void *list_traverse(list *plist, int (*item_f)(void *, va_list), ...); | |
37 int list_dump(list *plist); | |
38 void *list_first(list *plist); | |
39 void *list_last(list *plist); | |
40 void *list_at(list *plist, int num); | |
41 list_node *list_find(list *plist, void *pitem); | |
42 void *list_remove_node(list *plist, list_node *p); | |
43 | |
44 #endif /* _LIST_H */ |