37 * adds cxListEmplace() and cxListEmplaceAt() |
37 * adds cxListEmplace() and cxListEmplaceAt() |
38 * adds cxBufferShrink() |
38 * adds cxBufferShrink() |
39 * adds cxTreeSize() |
39 * adds cxTreeSize() |
40 * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings |
40 * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings |
41 * adds cx_strcpy() and cx_strcpy_a() |
41 * adds cx_strcpy() and cx_strcpy_a() |
|
42 * adds cxStdlibAllocator and allows changes of cxDefaultAllocator |
42 * improves performance of the CxList array list implementation |
43 * improves performance of the CxList array list implementation |
43 * changes grow strategy for the memory pool to reduce reallocations |
44 * changes grow strategy for the memory pool to reduce reallocations |
44 * changes grow strategy for CxBuffer, which does now take the page size into account |
45 * changes grow strategy for CxBuffer, which does now take the page size into account |
45 * changes the implementation of cx_strreplacen() for improved efficiency |
46 * changes the implementation of cx_strreplacen() for improved efficiency |
46 * changes all cxListIterator() without index to also accept NULL as list argument |
47 * changes all cxListIterator() without index to also accept NULL as list argument |
49 * fixes unnecessary allocations in cx_strcat() family of functions |
50 * fixes unnecessary allocations in cx_strcat() family of functions |
50 * fixes errno value after failing cxBufferSeek() to be consistently EINVAL |
51 * fixes errno value after failing cxBufferSeek() to be consistently EINVAL |
51 * fixes implementation of cxBufferTerminate() |
52 * fixes implementation of cxBufferTerminate() |
52 * fixes allocator arguments for some printf.h functions not being const |
53 * fixes allocator arguments for some printf.h functions not being const |
53 * fixes that cx_tree_search() did not investigate subtrees with equally good distance |
54 * fixes that cx_tree_search() did not investigate subtrees with equally good distance |
|
55 * fixes that memory was freed by the wrong allocator in cx_vasprintf_a() when the underlying vsnprintf() failed |
54 * removes the use of C23 attributes because they don't mix well with GNU attributes in GCC 15 |
56 * removes the use of C23 attributes because they don't mix well with GNU attributes in GCC 15 |
55 |
57 |
56 ### Version 3.1 - 2025-02-11 {collapsible="true"} |
58 ### Version 3.1 - 2025-02-11 {collapsible="true"} |
57 |
59 |
58 * adds properties.h |
60 * adds properties.h |