changelog
    
    
    - Sun, 20 Apr 2025 10:41:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Apr 2025 10:41:25 +0200] rev 1305
 
    - some cxListIterator() variants now also allow NULL lists
 
    - Sat, 19 Apr 2025 14:43:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 14:43:16 +0200] rev 1304
 
    - adds cx_strcpy() and cx_strcpy_a()
 
    - Sat, 19 Apr 2025 11:36:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 11:36:53 +0200] rev 1303
 
    - C23 is not a preview any longer
 
    - Sat, 19 Apr 2025 11:35:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 11:35:56 +0200] rev 1302
 
    - fix unnecessary explicit zero-terminator
 
    - Sat, 19 Apr 2025 11:33:15 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 11:33:15 +0200] rev 1301
 
    - fix code not compiling with GCC 15
 
    - Thu, 17 Apr 2025 21:45:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2025 21:45:01 +0200] rev 1300
 
    - improve cx_strreplacen() - resolves #623
 
    - Thu, 17 Apr 2025 20:48:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2025 20:48:29 +0200] rev 1299
 
    - fix theoretical (but not actual) use-after-free
 
    - Thu, 17 Apr 2025 20:47:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2025 20:47:43 +0200] rev 1298
 
    - use new string formatting macros in documentation
 
    - Wed, 16 Apr 2025 20:35:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 Apr 2025 20:35:34 +0200] rev 1297
 
    - bring back CX_PRIstr and CX_SFMT macros - resolves #612
 
    - Tue, 15 Apr 2025 22:16:05 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 15 Apr 2025 22:16:05 +0200] rev 1296
 
    - fixes unnecessary allocations in cx_strcat() family of functions
fixes #604 
    - Mon, 14 Apr 2025 19:53:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 Apr 2025 19:53:20 +0200] rev 1295
 
    - add cxTreeSize() - resolves #624
 
    - Mon, 14 Apr 2025 19:36:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 Apr 2025 19:36:43 +0200] rev 1294
 
    - add test and documentation for cxListContains() - fixes #643
 
    - Sun, 13 Apr 2025 18:01:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 18:01:29 +0200] rev 1293
 
    - adds cxListContains() implementation (still needs test and docu)
 
    - Sun, 13 Apr 2025 14:56:05 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 14:56:05 +0200] rev 1292
 
    - add windows support for new buffer auto-extend strategy - relates to #641
 
    - Sun, 13 Apr 2025 14:30:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 14:30:51 +0200] rev 1291
 
    - new auto-extend strategy for CxBuffer - resolves #641
 
    - Sun, 13 Apr 2025 13:02:54 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 13:02:54 +0200] rev 1290
 
    - adds cxBufferShrink() - resolves #626
 
    - Sun, 13 Apr 2025 12:30:18 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 12:30:18 +0200] rev 1289
 
    - fixes missing cx_attr_export - relates to #642
 
    - Sun, 13 Apr 2025 11:54:10 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 11:54:10 +0200] rev 1288
 
    - fixes errno value after failing cxBufferSeek() to be consistently EINVAL
 fixes #628 
    - Sun, 13 Apr 2025 11:09:05 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 11:09:05 +0200] rev 1287
 
    - adds cxListSet() - resolves #642
 
    - Sat, 12 Apr 2025 21:32:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 12 Apr 2025 21:32:31 +0200] rev 1286
 
    - fixes that cx_tree_search() did not investigate subtrees with equally good distance
fixes #632 
    - Fri, 11 Apr 2025 16:48:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 16:48:58 +0200] rev 1285
 
    - fix allocator of some printf.h functions not being const - fixes #611
 
    - Fri, 11 Apr 2025 16:45:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 16:45:20 +0200] rev 1284
 
    - fix implementation of cxBufferTerminate() - fixes #631
 
    - Fri, 11 Apr 2025 15:12:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 15:12:20 +0200] rev 1283
 
    - add cxMempoolTransferObject() - resolves #640
 
    - Fri, 11 Apr 2025 14:49:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 14:49:23 +0200] rev 1282
 
    - remove warning regarding destruction order, because it is actually not a problem
relates to #640 
    - Fri, 11 Apr 2025 13:20:07 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 13:20:07 +0200] rev 1281
 
    - add cxMempoolTransfer() - partially resolves #640
 
    - Fri, 11 Apr 2025 09:15:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 09:15:21 +0200] rev 1280
 
    - start development of UCX 3.2
 
    - Fri, 11 Apr 2025 09:11:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 09:11:02 +0200] rev 1279
 
    - Added tag v3.1 for changeset 18a1a499f065
 
    - Fri, 11 Apr 2025 09:10:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 09:10:51 +0200] rev 1278
 
    - Removed tag v3.1
 
    - Sun, 06 Apr 2025 13:21:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Apr 2025 13:21:17 +0200] rev 1277
 
    - fixes some docs compiler complaints
 
    - Sun, 06 Apr 2025 13:13:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Apr 2025 13:13:52 +0200] rev 1276
 
    - add buffer example
this fucking completes issue #451 
    - Sun, 06 Apr 2025 12:38:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Apr 2025 12:38:40 +0200] rev 1275
 
    - complete tree documentation
relates to #451 
    - Sat, 05 Apr 2025 14:18:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 05 Apr 2025 14:18:37 +0200] rev 1274
 
    - add example for implementing own map
relates to #451 
    - Fri, 04 Apr 2025 18:02:35 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Apr 2025 18:02:35 +0200] rev 1273
 
    - document tree search functions
relates to #451 
    - Fri, 04 Apr 2025 00:10:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Apr 2025 00:10:08 +0200] rev 1272
 
    - refine parts of the tree documentation
relates to #451 
    - Thu, 03 Apr 2025 23:59:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 03 Apr 2025 23:59:31 +0200] rev 1271
 
    - add iterator / visitor docu
relates to #451 
    - Wed, 02 Apr 2025 20:25:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 02 Apr 2025 20:25:50 +0200] rev 1270
 
    - document buffer write functions
relates to #451 
    - Tue, 01 Apr 2025 19:21:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 01 Apr 2025 19:21:04 +0200] rev 1269
 
    - document the flushing feature for the buffer
relates #451 
    - Mon, 31 Mar 2025 19:39:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 31 Mar 2025 19:39:42 +0200] rev 1268
 
    - complete JSON documentation
relates to #451 
    - Sun, 30 Mar 2025 18:21:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 30 Mar 2025 18:21:43 +0200] rev 1267
 
    - document JSON writer
relates to #451 
    - Sat, 29 Mar 2025 19:58:41 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 29 Mar 2025 19:58:41 +0100] rev 1266
 
    - wrapping xml tree example
relates to #451 
    - Fri, 28 Mar 2025 21:51:31 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 28 Mar 2025 21:51:31 +0100] rev 1265
 
    - document remove and dispose for tree.h
relates to #451 
    - Thu, 27 Mar 2025 18:24:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 27 Mar 2025 18:24:09 +0100] rev 1264
 
    - document buffer create/init
relates to #451 
    - Wed, 26 Mar 2025 16:38:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 26 Mar 2025 16:38:08 +0100] rev 1263
 
    - document the buffer flags
relates to #451 
    - Wed, 26 Mar 2025 12:26:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 26 Mar 2025 12:26:20 +0100] rev 1262
 
    - document buffer read operations
relates to #451 
    - Tue, 25 Mar 2025 22:11:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 25 Mar 2025 22:11:06 +0100] rev 1261
 
    - add documentation for reset and clear
relates to #451 
    - Mon, 24 Mar 2025 20:16:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 24 Mar 2025 20:16:36 +0100] rev 1260
 
    - add documentation for the shift functions
relates to #451 
    - Sun, 23 Mar 2025 12:26:03 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 23 Mar 2025 12:26:03 +0100] rev 1259
 
    - more documentation for buffer.h + set errno in cxBufferSeek() on invalid whence argument
relates to #451 
    - Sun, 23 Mar 2025 11:28:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 23 Mar 2025 11:28:20 +0100] rev 1258
 
    - add status code documentation and documentation for accessing values
relates to #451 
    - Sat, 22 Mar 2025 15:29:55 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Mar 2025 15:29:55 +0100] rev 1257
 
    - define structure for json.h doc
relates to #451 
    - Sat, 22 Mar 2025 14:14:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Mar 2025 14:14:29 +0100] rev 1256
 
    - define structure for buffer.h doc
relates to #451 
    - Fri, 21 Mar 2025 19:47:38 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Mar 2025 19:47:38 +0100] rev 1255
 
    - add some tree.h documentation
relates to #451 
    - Thu, 20 Mar 2025 20:12:53 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 20 Mar 2025 20:12:53 +0100] rev 1254
 
    - add intro text for tree.h doc
relates to #451 
    - Thu, 20 Mar 2025 20:12:37 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 20 Mar 2025 20:12:37 +0100] rev 1253
 
    - add favicon
 
    - Tue, 18 Mar 2025 19:03:18 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 18 Mar 2025 19:03:18 +0100] rev 1252
 
    - basic structure for tree.h documentation
relates to #451 
    - Mon, 17 Mar 2025 21:06:55 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 17 Mar 2025 21:06:55 +0100] rev 1251
 
    - remove the lie about the detailed documentation
 
    - Mon, 17 Mar 2025 21:05:50 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 17 Mar 2025 21:05:50 +0100] rev 1250
 
    - move the note about the key type to the top
 
    - Mon, 17 Mar 2025 20:44:17 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 17 Mar 2025 20:44:17 +0100] rev 1249
 
    - add examples to map.h documentation
relates to #451 
    - Sun, 16 Mar 2025 15:23:45 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 16 Mar 2025 15:23:45 +0100] rev 1248
 
    - complete array_list.h documentation
relates to #451 
    - Sat, 15 Mar 2025 22:58:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 15 Mar 2025 22:58:51 +0100] rev 1247
 
    - fix warning in test case due to C23 multibyte strings not being compatible with const char*
 
    - Thu, 13 Mar 2025 11:07:00 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 13 Mar 2025 11:07:00 +0100] rev 1246
 
    - document declare and init
relates to #451 
    - Wed, 12 Mar 2025 18:32:57 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 12 Mar 2025 18:32:57 +0100] rev 1245
 
    - define structure for array_list.h documentation
relates to #451 
    - Wed, 12 Mar 2025 16:08:35 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 12 Mar 2025 16:08:35 +0100] rev 1244
 
    - complete most of the map.h documentation
relates to #451 
    - Tue, 11 Mar 2025 12:05:01 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 11 Mar 2025 12:05:01 +0100] rev 1243
 
    - structur for map.h documentation
relates to #451 
    - Tue, 11 Mar 2025 11:10:19 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 11 Mar 2025 11:10:19 +0100] rev 1242
 
    - downgrade info regarding stream_copy from warning to note
relates to #451