GNUNET_CONTAINER_slist_append
authorNils Durner <durner@gnunet.org>
Fri, 13 Nov 2009 21:44:58 +0000 (21:44 +0000)
committerNils Durner <durner@gnunet.org>
Fri, 13 Nov 2009 21:44:58 +0000 (21:44 +0000)
src/include/gnunet_container_lib.h
src/util/container_slist.c

index 4debd2ccf1842378fb98646c85c26e55067199d3..1f707e44c7818d1d1270b82f61224ccccea90e2c 100644 (file)
@@ -912,6 +912,15 @@ void GNUNET_CONTAINER_slist_add (struct GNUNET_CONTAINER_SList *l,
                                 const void *buf, size_t len);
 
 
+/**
+ * Append a singly linked list to another
+ * @param dst list to append to
+ * @param src source
+ */
+void
+GNUNET_CONTAINER_slist_append (struct GNUNET_CONTAINER_SList *dst, struct GNUNET_CONTAINER_SList *src);
+
+
 /**
  * Create a new singly linked list
  * @return the new list
index ab547f313d0328e2cabba35f4df6aaac62f39571..fb9ab5558719c2a17b7efa8a5c395e65c2445458 100644 (file)
@@ -145,6 +145,29 @@ GNUNET_CONTAINER_slist_add (struct GNUNET_CONTAINER_SList *l,
 }
 
 
+/**
+ * Append a singly linked list to another
+ * @param dst list to append to
+ * @param src source
+ */
+void
+GNUNET_CONTAINER_slist_append (struct GNUNET_CONTAINER_SList *dst, struct GNUNET_CONTAINER_SList *src)
+{
+  struct GNUNET_CONTAINER_SList_Iterator *i;
+
+  for (i = GNUNET_CONTAINER_slist_begin (src); GNUNET_CONTAINER_slist_end (i) !=
+      GNUNET_YES; GNUNET_CONTAINER_slist_next (i))
+
+    {
+      GNUNET_CONTAINER_slist_add (dst,
+          (i->elem->disp == GNUNET_CONTAINER_SLIST_DISPOSITION_STATIC) ? GNUNET_CONTAINER_SLIST_DISPOSITION_STATIC
+              : GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT, i->elem->elem,
+          i->elem->len);
+    }
+  GNUNET_CONTAINER_slist_iter_destroy (i);
+}
+
+
 /**
  * Create a new singly linked list
  * @return the new list