cb87176c5292bfa379479ae6298cc96c7beff33b
[oweals/busybox.git] / libbb / llist.c
1 #include <stdlib.h>
2 #include <string.h>
3 #include "unarchive.h"
4 #include "libbb.h"
5
6 #ifdef L_llist_add_to
7 extern llist_t *llist_add_to(llist_t *old_head, char *new_item)
8 {
9         llist_t *new_head;
10
11         new_head = xmalloc(sizeof(llist_t));
12         new_head->data = new_item;
13         new_head->link = old_head;
14
15         return (new_head);
16 }
17 #endif
18
19 #ifdef L_llist_add_to_end
20 extern llist_t *llist_add_to_end(llist_t *list_head, char *data)
21 {
22         llist_t *new_item, *tmp, *prev;
23
24         new_item = xmalloc(sizeof(llist_t));
25         new_item->data = data;
26         new_item->link = NULL;
27
28         prev = NULL;
29         tmp = list_head;
30         while (tmp) {
31                 prev = tmp;
32                 tmp = tmp->link;
33         }
34         if (prev) {
35                 prev->link = new_item;
36         } else {
37                 list_head = new_item;
38         }
39
40         return (list_head);
41 }
42 #endif
43