| 9 * adds cxJsonCompare() |
9 * adds cxJsonCompare() |
| 10 * adds cxMapCompare() |
10 * adds cxMapCompare() |
| 11 * adds line continuation support to CxProperties / CxPropertiesConfig |
11 * adds line continuation support to CxProperties / CxPropertiesConfig |
| 12 * adds cx_hash_key_as_string() |
12 * adds cx_hash_key_as_string() |
| 13 * adds support for CxHashKey pointers in CX_HASH_KEY() and all map functions |
13 * adds support for CxHashKey pointers in CX_HASH_KEY() and all map functions |
| |
14 * adds CX_NULLSTR convenience macro |
| 14 * adds cx_strat() |
15 * adds cx_strat() |
| 15 * adds cx_bstr() and cx_bstr_m() |
16 * adds cx_bstr() and cx_bstr_m() |
| 16 * adds cxBufferMaximumCapacity() |
17 * adds cxBufferMaximumCapacity() |
| 17 * adds cxBufferAppendString() |
18 * adds cxBufferAppendString() |
| 18 * adds CX_BUFFER_DO_NOT_FREE buffer flag |
19 * adds CX_BUFFER_DO_NOT_FREE buffer flag |
| 20 * changes cxBufferReserve() to allow reducing the capacity |
21 * changes cxBufferReserve() to allow reducing the capacity |
| 21 * changes cxBufferTerminate() to automatically shrink the buffer |
22 * changes cxBufferTerminate() to automatically shrink the buffer |
| 22 * changes cxBufferTerminate() so that position and size are equal after a successful operation |
23 * changes cxBufferTerminate() so that position and size are equal after a successful operation |
| 23 * changes cxBufferPutString() to accept any kind of string that cx_strcast() supports |
24 * changes cxBufferPutString() to accept any kind of string that cx_strcast() supports |
| 24 * changes that multiple string.h functions now also automatically apply cx_strcast() where possible |
25 * changes that multiple string.h functions now also automatically apply cx_strcast() where possible |
| 25 * changes cx_strcat() family of function to return an int and removes two unnecessary variants |
|
| 26 * changes the names of cxDefineDestructor() and cxDefineAdvancedDestructor() to |
26 * changes the names of cxDefineDestructor() and cxDefineAdvancedDestructor() to |
| 27 cxSetDestructor() and cxSetdvancedDestructor() |
27 cxSetDestructor() and cxSetdvancedDestructor() |
| 28 * changes the name of cxCollectionCompareFunc() to cxSetCompareFunc() |
28 * changes the name of cxCollectionCompareFunc() to cxSetCompareFunc() |
| 29 * changes the entire low-level array-list API by making it much simpler |
29 * changes the entire low-level array-list API by making it much simpler |
| 30 * changes the members of CxJson and CxJsonValue |
30 * changes the members of CxJson and CxJsonValue |
| 39 * fixes that overwriting items with cxMapPut() in a kv-list did not work |
39 * fixes that overwriting items with cxMapPut() in a kv-list did not work |
| 40 * fixes that cxReallocate(), cxReallocateArray(), cx_reallocate(), and cx_reallocatearray() |
40 * fixes that cxReallocate(), cxReallocateArray(), cx_reallocate(), and cx_reallocatearray() |
| 41 were not returning zero after freeing the memory when passed a size of zero |
41 were not returning zero after freeing the memory when passed a size of zero |
| 42 * fixes that cx_list_default_insert_array() has the wrong nonnull attribute when used for cxListEmplaceArray() |
42 * fixes that cx_list_default_insert_array() has the wrong nonnull attribute when used for cxListEmplaceArray() |
| 43 * removes the CX_STR() macro and instead makes the cx_str() inlinable |
43 * removes the CX_STR() macro and instead makes the cx_str() inlinable |
| |
44 * removes the cx_str*_m() functions |
| 44 * removes the sort_members feature from CxJsonWriter |
45 * removes the sort_members feature from CxJsonWriter |
| 45 * removes the source and sink API from properties.h |
46 * removes the source and sink API from properties.h |
| 46 * removes the flush feature from CxBuffer |
47 * removes the flush feature from CxBuffer |
| 47 * removes the ability to remove elements from the iterators created with cxIterator() and cxIteratorPtr() |
48 * removes the ability to remove elements from the iterators created with cxIterator() and cxIteratorPtr() |
| 48 * removes several unnecessary convenience functions |
49 * removes several unnecessary convenience functions |
| 49 * removes the complicated wrapping for pointer lists |
50 * removes the complicated wrapping of pointer lists |
| 50 |
51 |
| 51 Version 3.2 - 2025-11-30 |
52 Version 3.2 - 2025-11-30 |
| 52 ------------------------ |
53 ------------------------ |
| 53 |
54 |
| 54 * adds cxMempoolTransfer() and cxMempoolTransferObject() |
55 * adds cxMempoolTransfer() and cxMempoolTransferObject() |