plugins/icq/list.h

Tue, 28 Nov 2000 02:22:42 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Tue, 28 Nov 2000 02:22:42 +0000
changeset 1152
e94e29686ded
child 1432
ab10a52f94a7
permissions
-rw-r--r--

[gaim-migrate @ 1162]
icq. whoop de doo

1152
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2 #ifndef _LIST_H
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3 #define _LIST_H
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5 #ifdef HAVE_CONFIG_H
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6 #include <config.h>
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
7 #endif
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
8
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
9 #include <stdarg.h>
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
10
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
11 #define list_enqueue(plist, p) \
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
12 list_insert(plist, 0, p)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
13
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
14 #define list_dequeue(plist) \
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
15 list_remove_node(plist, plist->head)
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
16
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
17 typedef struct list_node_s
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
18 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
19 struct list_node_s *next;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20 struct list_node_s *previous;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
21 void *item;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
22 } list_node;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
23
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
24 typedef struct list_s
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
25 {
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
26 list_node *head;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
27 list_node *tail;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
28 int count;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
29 } list;
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
30
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
31 list *list_new(void);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
32 void list_delete(list *plist, void (*item_free_f)(void *));
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
33 void list_free(list *plist, void (*item_free_f)(void *));
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
34 void list_insert(list *plist, list_node *pnode, void *pitem);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
35 void *list_remove(list *plist, void *pitem);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
36 void *list_traverse(list *plist, int (*item_f)(void *, va_list), ...);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37 int list_dump(list *plist);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
38 void *list_first(list *plist);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
39 void *list_last(list *plist);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
40 void *list_at(list *plist, int num);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
41 list_node *list_find(list *plist, void *pitem);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
42 void *list_remove_node(list *plist, list_node *p);
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
43
e94e29686ded [gaim-migrate @ 1162]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
44 #endif /* _LIST_H */

mercurial