summaryrefslogtreecommitdiff
path: root/lib/datastruct
diff options
context:
space:
mode:
authorAlasdair G Kergon <agk@redhat.com>2015-03-26 18:30:37 +0000
committerAlasdair G Kergon <agk@redhat.com>2015-03-26 18:30:37 +0000
commit9506760c7ec86448e54803a74ade58d24d975ff1 (patch)
tree01608bb2eb59ea385d2510494b94645102967ab2 /lib/datastruct
parent8a87fadbb026ca121c8af8669e68673aece46eb2 (diff)
downloadlvm2-9506760c7ec86448e54803a74ade58d24d975ff1.tar.gz
datastruct: Add str_list_add_list.
Diffstat (limited to 'lib/datastruct')
-rw-r--r--lib/datastruct/str_list.c15
-rw-r--r--lib/datastruct/str_list.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/datastruct/str_list.c b/lib/datastruct/str_list.c
index feec8b6f7..1d3f08ad1 100644
--- a/lib/datastruct/str_list.c
+++ b/lib/datastruct/str_list.c
@@ -71,6 +71,21 @@ int str_list_add(struct dm_pool *mem, struct dm_list *sll, const char *str)
return str_list_add_no_dup_check(mem, sll, str);
}
+/* Add contents of sll2 to sll */
+int str_list_add_list(struct dm_pool *mem, struct dm_list *sll, struct dm_list *sll2)
+{
+ struct dm_str_list *sl;
+
+ if (!sll2)
+ return_0;
+
+ dm_list_iterate_items(sl, sll2)
+ if (!str_list_add(mem, sll, sl->str))
+ return_0;
+
+ return 1;
+}
+
void str_list_del(struct dm_list *sll, const char *str)
{
struct dm_list *slh, *slht;
diff --git a/lib/datastruct/str_list.h b/lib/datastruct/str_list.h
index 0046fe42a..3121a28ce 100644
--- a/lib/datastruct/str_list.h
+++ b/lib/datastruct/str_list.h
@@ -21,6 +21,7 @@ struct dm_pool;
struct dm_list *str_list_create(struct dm_pool *mem);
int str_list_add(struct dm_pool *mem, struct dm_list *sll, const char *str);
+int str_list_add_list(struct dm_pool *mem, struct dm_list *sll, struct dm_list *sll2);
int str_list_add_no_dup_check(struct dm_pool *mem, struct dm_list *sll, const char *str);
int str_list_add_h_no_dup_check(struct dm_pool *mem, struct dm_list *sll, const char *str);
void str_list_del(struct dm_list *sll, const char *str);