diff -r 38b051dea6b1 -r db8299984bfe tests/test_string.c --- a/tests/test_string.c Mon Dec 22 15:28:07 2025 +0100 +++ b/tests/test_string.c Mon Dec 22 15:47:59 2025 +0100 @@ -451,91 +451,91 @@ size_t n; CX_TEST_DO { // special case: empty string - n = cx_strsplit(test, cx_str(""), capa, list); + n = cx_strsplit(test, "", capa, list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); // no delimiter occurrence - n = cx_strsplit(test, cx_str("z"), capa, list); + n = cx_strsplit(test, "z", capa, list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); // partially matching delimiter - n = cx_strsplit(test, cx_str("is,not"), capa, list); + n = cx_strsplit(test, "is,not", capa, list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); // matching single-char delimiter - n = cx_strsplit(test, cx_str(","), capa, list); + n = cx_strsplit(test, ",", capa, list); CX_TEST_ASSERT(n == 5); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("this"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str("is"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("a"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[3], cx_str("csv"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[4], cx_str("string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "this")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "is")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "a")); + CX_TEST_ASSERT(0 == cx_strcmp(list[3], "csv")); + CX_TEST_ASSERT(0 == cx_strcmp(list[4], "string")); // matching multi-char delimiter - n = cx_strsplit(test, cx_str("is"), capa, list); + n = cx_strsplit(test, "is", capa, list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("th"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(","))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str(",a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "th")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], ",")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], ",a,csv,string")); // bounded list using single-char delimiter - n = cx_strsplit(test, cx_str(","), 3, list); + n = cx_strsplit(test, ",", 3, list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("this"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str("is"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "this")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "is")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "a,csv,string")); // bounded list using multi-char delimiter - n = cx_strsplit(test, cx_str("is"), 2, list); + n = cx_strsplit(test, "is", 2, list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("th"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(",is,a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "th")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], ",is,a,csv,string")); // start with delimiter - n = cx_strsplit(test, cx_str("this"), capa, list); + n = cx_strsplit(test, "this", capa, list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str(""))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(",is,a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], ",is,a,csv,string")); // end with delimiter - n = cx_strsplit(test, cx_str("string"), capa, list); + n = cx_strsplit(test, "string", capa, list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("this,is,a,csv,"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(""))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "this,is,a,csv,")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "")); // end with delimiter exceed bound - n = cx_strsplit(cx_str("a,b,c,"), cx_str(","), 3, list); + n = cx_strsplit(cx_str("a,b,c,"), ",", 3, list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("a"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str("b"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("c,"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "a")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "b")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "c,")); // exact match - n = cx_strsplit(test, cx_str("this,is,a,csv,string"), capa, list); + n = cx_strsplit(test, "this,is,a,csv,string", capa, list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str(""))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(""))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "")); // string to be split is only substring - n = cx_strsplit(test, cx_str("this,is,a,csv,string,with,extension"), capa, list); + n = cx_strsplit(test, "this,is,a,csv,string,with,extension", capa, list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); // subsequent encounter of delimiter (the string between is empty) - n = cx_strsplit(test, cx_str("is,"), capa, list); + n = cx_strsplit(test, "is,", capa, list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("th"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(""))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "th")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "a,csv,string")); // call the _m variant just for coverage cxmutstr mtest = cx_strdup(test); cxmutstr mlist[4]; - n = cx_strsplit_m(mtest, cx_str("is,"), 4, mlist); + n = cx_strsplit_m(mtest, "is,", 4, mlist); CX_TEST_ASSERT(n == 3); CX_TEST_ASSERT(0 == cx_strcmp(mlist[0], "th")); CX_TEST_ASSERT(0 == cx_strcmp(mlist[1], "")); @@ -555,103 +555,103 @@ size_t n; CX_TEST_DO { // special case: empty string - n = cx_strsplit_a(alloc, test, cx_str(""), capa, &list); + n = cx_strsplit_a(alloc, test, "", capa, &list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); cxFree(alloc, list); // no delimiter occurrence - n = cx_strsplit_a(alloc, test, cx_str("z"), capa, &list); + n = cx_strsplit_a(alloc, test, "z", capa, &list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); cxFree(alloc, list); // partially matching delimiter - n = cx_strsplit_a(alloc, test, cx_str("is,not"), capa, &list); + n = cx_strsplit_a(alloc, test, "is,not", capa, &list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); cxFree(alloc, list); // matching single-char delimiter - n = cx_strsplit_a(alloc, test, cx_str(","), capa, &list); + n = cx_strsplit_a(alloc, test, ",", capa, &list); CX_TEST_ASSERT(n == 5); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("this"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str("is"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("a"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[3], cx_str("csv"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[4], cx_str("string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "this")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "is")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "a")); + CX_TEST_ASSERT(0 == cx_strcmp(list[3], "csv")); + CX_TEST_ASSERT(0 == cx_strcmp(list[4], "string")); cxFree(alloc, list); // matching multi-char delimiter - n = cx_strsplit_a(alloc, test, cx_str("is"), capa, &list); + n = cx_strsplit_a(alloc, test, "is", capa, &list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("th"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(","))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str(",a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "th")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], ",")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], ",a,csv,string")); cxFree(alloc, list); // bounded list using single-char delimiter - n = cx_strsplit_a(alloc, test, cx_str(","), 3, &list); + n = cx_strsplit_a(alloc, test, ",", 3, &list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("this"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str("is"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "this")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "is")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "a,csv,string")); cxFree(alloc, list); // bounded list using multi-char delimiter - n = cx_strsplit_a(alloc, test, cx_str("is"), 2, &list); + n = cx_strsplit_a(alloc, test, "is", 2, &list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("th"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(",is,a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "th")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], ",is,a,csv,string")); cxFree(alloc, list); // start with delimiter - n = cx_strsplit_a(alloc, test, cx_str("this"), capa, &list); + n = cx_strsplit_a(alloc, test, "this", capa, &list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str(""))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(",is,a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], ",is,a,csv,string")); cxFree(alloc, list); // end with delimiter - n = cx_strsplit_a(alloc, test, cx_str("string"), capa, &list); + n = cx_strsplit_a(alloc, test, "string", capa, &list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("this,is,a,csv,"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(""))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "this,is,a,csv,")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "")); cxFree(alloc, list); // end with delimiter exceed bound - n = cx_strsplit_a(alloc, cx_str("a,b,c,"), cx_str(","), 3, &list); + n = cx_strsplit_a(alloc, cx_str("a,b,c,"), ",", 3, &list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("a"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str("b"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("c,"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "a")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "b")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "c,")); cxFree(alloc, list); // exact match - n = cx_strsplit_a(alloc, test, cx_str("this,is,a,csv,string"), capa, &list); + n = cx_strsplit_a(alloc, test, "this,is,a,csv,string", capa, &list); CX_TEST_ASSERT(n == 2); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str(""))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(""))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "")); cxFree(alloc, list); // string to be split is only substring - n = cx_strsplit_a(alloc, test, cx_str("this,is,a,csv,string,with,extension"), capa, &list); + n = cx_strsplit_a(alloc, test, "this,is,a,csv,string,with,extension", capa, &list); CX_TEST_ASSERT(n == 1); CX_TEST_ASSERT(0 == cx_strcmp(list[0], test)); cxFree(alloc, list); // subsequent encounter of delimiter (the string between is empty) - n = cx_strsplit_a(alloc, test, cx_str("is,"), capa, &list); + n = cx_strsplit_a(alloc, test, "is,", capa, &list); CX_TEST_ASSERT(n == 3); - CX_TEST_ASSERT(0 == cx_strcmp(list[0], cx_str("th"))); - CX_TEST_ASSERT(0 == cx_strcmp(list[1], cx_str(""))); - CX_TEST_ASSERT(0 == cx_strcmp(list[2], cx_str("a,csv,string"))); + CX_TEST_ASSERT(0 == cx_strcmp(list[0], "th")); + CX_TEST_ASSERT(0 == cx_strcmp(list[1], "")); + CX_TEST_ASSERT(0 == cx_strcmp(list[2], "a,csv,string")); cxFree(alloc, list); // call the _m variant just for coverage cxmutstr mtest = cx_strdup(test); cxmutstr *mlist; - n = cx_strsplit_ma(alloc, mtest, cx_str("is,"), 4, &mlist); + n = cx_strsplit_ma(alloc, mtest, "is,", 4, &mlist); CX_TEST_ASSERT(n == 3); CX_TEST_ASSERT(0 == cx_strcmp(mlist[0], "th")); CX_TEST_ASSERT(0 == cx_strcmp(mlist[1], ""));