summaryrefslogtreecommitdiffhomepage
path: root/libbb/llist.c
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2005-09-29 12:55:10 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2005-09-29 12:55:10 +0000
commitbee9eb1a9d04503d58070bd1946cc2c0538fcf95 (patch)
tree013e17fde8c199768a4195d057371372a330e765 /libbb/llist.c
parent3e245c9e21f991004b93c0892abdb5f040d37eff (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.c43
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
+