wmifs: Fix typo
[dockapps.git] / wmthemech / src / stringlist.c
blob4dbd7af1f3c40f16cfdbba9f41afbd11a0541e69
1 #include <config.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <string.h> /* memcpy */
7 #define BASE_SIZE 1024
9 struct string_list_t {
10 unsigned int size;
11 unsigned int used;
12 int * item;
16 struct string_list_t *
17 create_list ()
19 struct string_list_t * list = (struct string_list_t *)
20 malloc (sizeof (struct string_list_t) );
21 list->item = malloc (BASE_SIZE * sizeof (int) );
22 list->size = BASE_SIZE;
23 list->used = 0;
25 return list;
29 void
30 delete_list (struct string_list_t * list)
32 free (list->item);
36 int
37 get_item (struct string_list_t * list, unsigned int item)
39 return ( item >= list->used) ? -1 : list->item[item];
43 int
44 add_item (struct string_list_t * list, unsigned int item)
46 if (list->used == list->size) {
47 list->size += BASE_SIZE;
48 list->item = realloc (list->item, list->size * sizeof (int) );
51 list->item[list->used++] = item;
53 return 0;
57 int
58 add_list (struct string_list_t * dst, struct string_list_t * src)
60 if (dst->used + src->used > dst->size) {
61 dst->size = dst->used + src->used;
62 dst->item = realloc (dst->item, dst->size * sizeof (int) );
65 memcpy (&dst->item[dst->used], src->item, src->used * sizeof (int) );
66 dst->used += src->used;
68 return 0;