From c47df7634e693736c31a446bb432fc036ead0513 Mon Sep 17 00:00:00 2001 From: default Date: Wed, 5 Jul 2023 09:51:41 +0200 Subject: Backport from xs. --- xs.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'xs.h') diff --git a/xs.h b/xs.h index f892472..ad8a35d 100644 --- a/xs.h +++ b/xs.h @@ -96,6 +96,7 @@ int xs_list_in(const xs_list *list, const xs_val *val); xs_str *xs_join(const xs_list *list, const char *sep); xs_list *xs_split_n(const char *str, const char *sep, int times); #define xs_split(str, sep) xs_split_n(str, sep, XS_ALL) +xs_list *xs_list_cat(xs_list *l1, const xs_list *l2); xs_dict *xs_dict_new(void); xs_dict *xs_dict_append_m(xs_dict *dict, const xs_str *key, const xs_val *mem, int dsz); @@ -858,6 +859,17 @@ xs_list *xs_split_n(const char *str, const char *sep, int times) } +xs_list *xs_list_cat(xs_list *l1, const xs_list *l2) +/* concatenates list l2 to l1 */ +{ + XS_ASSERT_TYPE(l1, XSTYPE_LIST); + XS_ASSERT_TYPE(l2, XSTYPE_LIST); + + /* inserts at the end of l1 the content of l2 (skipping header and footer) */ + return xs_insert_m(l1, xs_size(l1) - 1, l2 + 4, xs_size(l2) - 5); +} + + /** dicts **/ xs_dict *xs_dict_new(void) -- cgit v1.2.3