--- a/docs/Writerside/topics/string.h.md Mon Dec 29 11:21:16 2025 +0100 +++ b/docs/Writerside/topics/string.h.md Tue Dec 30 13:50:55 2025 +0100 @@ -225,19 +225,12 @@ ```C #include <cx/string.h> -size_t cx_strsplit(cxstring string, AnyStr delim, - size_t limit, cxstring *output); +size_t cx_strsplit(UcxStr string, AnyStr delim, + size_t limit, UcxStr *output); size_t cx_strsplit_a(const CxAllocator *allocator, - cxstring string, AnyStr delim, - size_t limit, cxstring **output); - -size_t cx_strsplit_m(cxmutstr string, AnyStr delim, - size_t limit, cxmutstr *output); - -size_t cx_strsplit_ma(const CxAllocator *allocator, - cxmutstr string, AnyStr delim, - size_t limit, cxmutstr **output); + UcxStr string, AnyStr delim, + size_t limit, UcxStr **output); ``` The `cx_strsplit()` function splits the input `string` using the specified delimiter `delim` @@ -249,10 +242,10 @@ On the other hand, `cx_strsplit_a()` uses the specified `allocator` to allocate the output array, and writes the pointer to the allocated memory to `output`. -The functions `cx_strsplit_m()` and `cx_strsplit_ma()` are equivalent to `cx_strsplit()` and `cx_strsplit_a()`, -except that they work on `cxmustr` instead of `cxstring`. +> The type of the `UcxStr` must the same for `string` and `output` (i.e., either both `cxstring` or both `cxmutstr`). +> {style="note"} -> The `allocator` in `cx_strsplit_a()` and `cx_strsplit_ma()` is _only_ used to allocate the output array. +> The `allocator` in `cx_strsplit_a()` is _only_ used to allocate the output array. > The strings will always point into the original `string` > and you need to use `cx_strdup()` or `cx_strdup_a()` if you want copies or zero-terminated strings after performing the split. {style="note"}