diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2005-09-29 12:55:10 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2005-09-29 12:55:10 +0000 |
commit | bee9eb1a9d04503d58070bd1946cc2c0538fcf95 (patch) | |
tree | 013e17fde8c199768a4195d057371372a330e765 /libbb/llist.c | |
parent | 3e245c9e21f991004b93c0892abdb5f040d37eff (diff) |
- rename llist_add_to.c to llist.c
- move llist_add_to_end() from ifupdown.c to libbb/llist.c
Diffstat (limited to 'libbb/llist.c')
-rw-r--r-- | libbb/llist.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/libbb/llist.c b/libbb/llist.c new file mode 100644 index 000000000..cb87176c5 --- /dev/null +++ b/libbb/llist.c @@ -0,0 +1,43 @@ +#include <stdlib.h> +#include <string.h> +#include "unarchive.h" +#include "libbb.h" + +#ifdef L_llist_add_to +extern llist_t *llist_add_to(llist_t *old_head, char *new_item) +{ + llist_t *new_head; + + new_head = xmalloc(sizeof(llist_t)); + new_head->data = new_item; + new_head->link = old_head; + + return (new_head); +} +#endif + +#ifdef L_llist_add_to_end +extern llist_t *llist_add_to_end(llist_t *list_head, char *data) +{ + llist_t *new_item, *tmp, *prev; + + new_item = xmalloc(sizeof(llist_t)); + new_item->data = data; + new_item->link = NULL; + + prev = NULL; + tmp = list_head; + while (tmp) { + prev = tmp; + tmp = tmp->link; + } + if (prev) { + prev->link = new_item; + } else { + list_head = new_item; + } + + return (list_head); +} +#endif + |