1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-01 07:16:37 +02:00

api: add argument "bytes" in function string_dyn_concat

This commit is contained in:
Sébastien Helleu
2020-08-23 23:27:57 +02:00
parent b459dab84b
commit cfd221014c
26 changed files with 308 additions and 205 deletions
+43 -8
View File
@@ -2160,7 +2160,7 @@ TEST(CoreString, Dyn)
ptr_string_dyn = (struct t_string_dyn *)str;
/* check concat with NULL */
LONGS_EQUAL(1, string_dyn_concat (str, NULL));
LONGS_EQUAL(1, string_dyn_concat (str, NULL, -1));
LONGS_EQUAL(1, ptr_string_dyn->size_alloc);
LONGS_EQUAL(1, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
@@ -2168,46 +2168,81 @@ TEST(CoreString, Dyn)
STRCMP_EQUAL("", *str);
/* check concat with an empty string */
LONGS_EQUAL(1, string_dyn_concat (str, ""));
LONGS_EQUAL(1, string_dyn_concat (str, "", -1));
LONGS_EQUAL(1, ptr_string_dyn->size_alloc);
LONGS_EQUAL(1, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("", ptr_string_dyn->string);
STRCMP_EQUAL("", *str);
/* check concat with some strings */
LONGS_EQUAL(1, string_dyn_concat (str, "a"));
/* check concat with some strings and automatic length */
LONGS_EQUAL(1, string_dyn_concat (str, "a", -1));
LONGS_EQUAL(2, ptr_string_dyn->size_alloc);
LONGS_EQUAL(2, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("a", ptr_string_dyn->string);
STRCMP_EQUAL("a", *str);
LONGS_EQUAL(1, string_dyn_concat (str, "bcd"));
LONGS_EQUAL(1, string_dyn_concat (str, "bcd", -1));
LONGS_EQUAL(5, ptr_string_dyn->size_alloc);
LONGS_EQUAL(5, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("abcd", ptr_string_dyn->string);
STRCMP_EQUAL("abcd", *str);
LONGS_EQUAL(1, string_dyn_concat (str, "e"));
LONGS_EQUAL(1, string_dyn_concat (str, "e", -1));
LONGS_EQUAL(7, ptr_string_dyn->size_alloc);
LONGS_EQUAL(6, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("abcde", ptr_string_dyn->string);
STRCMP_EQUAL("abcde", *str);
LONGS_EQUAL(1, string_dyn_concat (str, "fg"));
LONGS_EQUAL(1, string_dyn_concat (str, "fg", -1));
LONGS_EQUAL(10, ptr_string_dyn->size_alloc);
LONGS_EQUAL(8, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("abcdefg", ptr_string_dyn->string);
STRCMP_EQUAL("abcdefg", *str);
string_dyn_free (str, 1);
str = string_dyn_alloc (1);
ptr_string_dyn = (struct t_string_dyn *)str;
/* check concat with some strings and fixed length */
LONGS_EQUAL(1, string_dyn_copy (str, "abcd"));
LONGS_EQUAL(1, string_dyn_concat (str, "xyz", 0));
LONGS_EQUAL(5, ptr_string_dyn->size_alloc);
LONGS_EQUAL(5, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("abcd", ptr_string_dyn->string);
STRCMP_EQUAL("abcd", *str);
LONGS_EQUAL(1, string_dyn_concat (str, "xyz", 1));
LONGS_EQUAL(7, ptr_string_dyn->size_alloc);
LONGS_EQUAL(6, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("abcdx", ptr_string_dyn->string);
STRCMP_EQUAL("abcdx", *str);
LONGS_EQUAL(1, string_dyn_concat (str, "xyz", 2));
LONGS_EQUAL(10, ptr_string_dyn->size_alloc);
LONGS_EQUAL(8, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("abcdxxy", ptr_string_dyn->string);
STRCMP_EQUAL("abcdxxy", *str);
LONGS_EQUAL(1, string_dyn_concat (str, "xyz", 3));
LONGS_EQUAL(15, ptr_string_dyn->size_alloc);
LONGS_EQUAL(11, ptr_string_dyn->size);
POINTERS_EQUAL(ptr_string_dyn->string, *str);
STRCMP_EQUAL("abcdxxyxyz", ptr_string_dyn->string);
STRCMP_EQUAL("abcdxxyxyz", *str);
str_ptr = *str;
string_dyn_free (str, 0);
STRCMP_EQUAL("abcdefg", str_ptr);
STRCMP_EQUAL("abcdxxyxyz", str_ptr);
free (str_ptr);
}