diff options
author | Alasdair G Kergon <agk@redhat.com> | 2015-03-26 18:30:37 +0000 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2015-03-26 18:30:37 +0000 |
commit | 9506760c7ec86448e54803a74ade58d24d975ff1 (patch) | |
tree | 01608bb2eb59ea385d2510494b94645102967ab2 /lib/datastruct | |
parent | 8a87fadbb026ca121c8af8669e68673aece46eb2 (diff) | |
download | lvm2-9506760c7ec86448e54803a74ade58d24d975ff1.tar.gz |
datastruct: Add str_list_add_list.
Diffstat (limited to 'lib/datastruct')
-rw-r--r-- | lib/datastruct/str_list.c | 15 | ||||
-rw-r--r-- | lib/datastruct/str_list.h | 1 |
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); |