changelog
    
    
    - Tue, 15 Feb 2022 19:41:48 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 15 Feb 2022 19:41:48 +0100] rev 503
 
    - add new destructor API and apply it to CxList
 
    - Tue, 15 Feb 2022 19:07:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 15 Feb 2022 19:07:14 +0100] rev 502
 
    - change Doxyfile to ignore __attribute__ and include static inline functions
 
    - Mon, 31 Jan 2022 17:15:59 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 31 Jan 2022 17:15:59 +0100] rev 501
 
    - add allocator support to CxBuffer
Also change how the buffer itself is allocated and destroyed. 
    - Sun, 30 Jan 2022 14:19:00 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 30 Jan 2022 14:19:00 +0100] rev 500
 
    - do not hide pointers behind typedefs
 
    - Sat, 29 Jan 2022 14:32:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 29 Jan 2022 14:32:04 +0100] rev 499
 
    - add cxListInsertAfter() and cxListInsertBefore()
 
    - Sat, 29 Jan 2022 12:46:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 29 Jan 2022 12:46:07 +0100] rev 498
 
    - reorder the list test functions
This should make it easier to spot duplicated code and think about a
strategy to uniformly test "normal" linked lists and pointer lists. 
    - Sat, 22 Jan 2022 19:10:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Jan 2022 19:10:04 +0100] rev 497
 
    - pointer type must be explicit in cx_foreach macro
 
    - Sat, 22 Jan 2022 19:04:32 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Jan 2022 19:04:32 +0100] rev 496
 
    - add cx_foreach macro
 
    - Sat, 22 Jan 2022 18:49:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Jan 2022 18:49:06 +0100] rev 495
 
    - add the feature to remove items during iteration
 
    - Sat, 22 Jan 2022 17:15:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Jan 2022 17:15:14 +0100] rev 494
 
    - add iterator interface + linked list iterator
 
    - Sat, 22 Jan 2022 10:29:48 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Jan 2022 10:29:48 +0100] rev 493
 
    - hide __attribute__ from compilers that may not support it
 
    - Tue, 28 Dec 2021 18:05:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Dec 2021 18:05:14 +0100] rev 492
 
    - simplifies some linked list tests
 
    - Tue, 28 Dec 2021 17:49:52 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Dec 2021 17:49:52 +0100] rev 491
 
    - fix missing cleanup in test_hl_linked_list_from_array
 
    - Tue, 28 Dec 2021 17:41:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Dec 2021 17:41:51 +0100] rev 490
 
    - add cxListReverse()
 
    - Tue, 28 Dec 2021 17:38:02 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Dec 2021 17:38:02 +0100] rev 489
 
    - add some const qualifiers
 
    - Tue, 28 Dec 2021 17:24:18 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Dec 2021 17:24:18 +0100] rev 488
 
    - add cxLinkedListFromArray() and cxListCompare()
 
    - Tue, 28 Dec 2021 14:25:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Dec 2021 14:25:05 +0100] rev 487
 
    - use c99 bool + add test for low level find
 
    - Tue, 28 Dec 2021 14:16:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Dec 2021 14:16:04 +0100] rev 486
 
    - add cx_linked_list_compare() and simplifies some tests
 
    - Mon, 27 Dec 2021 17:16:32 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Dec 2021 17:16:32 +0100] rev 485
 
    - use same doxygen style in all files
also adds doxygen main page 
    - Mon, 27 Dec 2021 17:02:32 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Dec 2021 17:02:32 +0100] rev 484
 
    - add common.h include to all other header files
 
    - Mon, 27 Dec 2021 16:51:10 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Dec 2021 16:51:10 +0100] rev 483
 
    - add ported UCX buffer implementation
Notes:
* ucx_buffer_extend has been removed
  in favor of cxBufferMinimumCapacity
* the buffer struct now has a union for
  char* and unsigned char* buffers 
    - Mon, 27 Dec 2021 14:44:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Dec 2021 14:44:08 +0100] rev 482
 
    - add tests for the new low level functions
 
    - Thu, 23 Dec 2021 15:20:50 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Dec 2021 15:20:50 +0100] rev 481
 
    - add several new linked list functions
* cx_linked_list_insert()
* cx_linked_list_insert_chain()
* cx_linked_list_link()
* cx_linked_list_unlink()
Also uses the most general function wherever possible. 
    - Mon, 20 Dec 2021 13:01:38 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Dec 2021 13:01:38 +0100] rev 480
 
    - add cx_linked_list_find()
 
    - Mon, 20 Dec 2021 12:10:48 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Dec 2021 12:10:48 +0100] rev 479
 
    - add linked list tests for cxListAt()
 
    - Mon, 20 Dec 2021 11:58:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Dec 2021 11:58:36 +0100] rev 478
 
    - add more nonnull attributes
This also changes the contract for last/first in the sense that these
functions now also require a valid pointer. 
    - Mon, 20 Dec 2021 11:26:39 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Dec 2021 11:26:39 +0100] rev 477
 
    - add more explicit documentation to cx_linked_list_remove()
also require nonnull node argument 
    - Mon, 20 Dec 2021 11:17:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Dec 2021 11:17:06 +0100] rev 476
 
    - change contract of cx_linked_list_remove()
also use cx_linked_list_remove() in high level API 
    - Sat, 04 Dec 2021 17:38:23 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 04 Dec 2021 17:38:23 +0100] rev 475
 
    - add cx_linked_list_first() + cx_linked_list_prepend()
removes concatenating behavior of cx_linked_list_add() 
    - Sat, 09 Oct 2021 11:12:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 09 Oct 2021 11:12:48 +0200] rev 474
 
    - remove cxListLast (can be realized via cxListAt and index=size-1)
 
    - Fri, 08 Oct 2021 19:47:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 08 Oct 2021 19:47:31 +0200] rev 473
 
    - add cx_linked_list_{prev, remove, reverse}
changes assertions for some low level methods (loc_next is now always mandatory) 
    - Fri, 08 Oct 2021 18:58:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 08 Oct 2021 18:58:49 +0200] rev 472
 
    - move dereference operation into macro
 
    - Tue, 05 Oct 2021 16:22:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 16:22:48 +0200] rev 471
 
    - add new ucx_list_sort test
 
    - Wed, 06 Oct 2021 14:24:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Oct 2021 14:24:52 +0200] rev 470
 
    - add tree.h to list of headers
 
    - Wed, 06 Oct 2021 14:10:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Oct 2021 14:10:19 +0200] rev 469
 
    - add high level list sort and inlines method invocation functions
 
    - Tue, 05 Oct 2021 16:33:11 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 16:33:11 +0200] rev 468
 
    - add cx_linked_list_sort()
 
    - Tue, 05 Oct 2021 13:04:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 13:04:20 +0200] rev 467
 
    - remove unused cxLinkedListRecalculateSize()
It is not clear what this function was ever supposed to do. 
    - Tue, 05 Oct 2021 13:03:45 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 13:03:45 +0200] rev 466
 
    - add special linked list implementation for storing pointers
 
    - Tue, 05 Oct 2021 12:25:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 12:25:23 +0200] rev 465
 
    - remove redundant documentation for function pointers
 
    - Tue, 05 Oct 2021 12:23:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 12:23:46 +0200] rev 464
 
    - add documentation for list.h
 
    - Tue, 05 Oct 2021 12:19:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 12:19:19 +0200] rev 463
 
    - change src dir of Doxygen to only include header files
 
    - Tue, 05 Oct 2021 12:16:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 12:16:50 +0200] rev 462
 
    - remove obsolete config from Doxyfile
 
    - Tue, 05 Oct 2021 12:12:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 12:12:09 +0200] rev 461
 
    - put attributes on separate lines
 
    - Tue, 05 Oct 2021 11:19:32 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Oct 2021 11:19:32 +0200] rev 460
 
    - remove convenience macros
Users should write their own wrappers s.t. the type
information does not have to be repeated on every
call site. 
    - Sun, 03 Oct 2021 18:51:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 18:51:44 +0200] rev 459
 
    - add tests for high level functions
 
    - Sun, 03 Oct 2021 18:37:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 18:37:13 +0200] rev 458
 
    - add convenience macros for pointer casts
 
    - Sun, 03 Oct 2021 18:36:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 18:36:51 +0200] rev 457
 
    - fix bad start index in cx_ll_node_at()
 
    - Sun, 03 Oct 2021 16:30:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 16:30:47 +0200] rev 456
 
    - change cx_linked_list_last() and add a test for it
 
    - Sun, 03 Oct 2021 16:02:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 16:02:53 +0200] rev 455
 
    - change test names
 
    - Sun, 03 Oct 2021 15:40:38 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 15:40:38 +0200] rev 454
 
    - remove unused cx_tree_last()
 
    - Sun, 03 Oct 2021 14:06:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 14:06:57 +0200] rev 453
 
    - add some documentation and changes some signatures
 
    - Sun, 03 Oct 2021 13:07:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 13:07:48 +0200] rev 452
 
    - add __alloc_size__ attribute
 
    - Sun, 03 Oct 2021 12:04:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 12:04:27 +0200] rev 451
 
    - make cx_linked_list_class static
 
    - Sun, 03 Oct 2021 12:02:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 12:02:57 +0200] rev 450
 
    - improves usage of attributes
 
    - Sun, 03 Oct 2021 10:43:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Oct 2021 10:43:31 +0200] rev 449
 
    - minor code changes
These changes do not affect program behavior. 
    - Tue, 28 Sep 2021 18:49:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Sep 2021 18:49:12 +0200] rev 448
 
    - implement cx_ll_insert()
change cx_ll_add() to use insert with index=size 
    - Tue, 28 Sep 2021 18:33:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Sep 2021 18:33:42 +0200] rev 447
 
    - implement cx_ll_remove()
 
    - Tue, 28 Sep 2021 18:22:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Sep 2021 18:22:00 +0200] rev 446
 
    - remove unnecessary fields from linked list node and simplifies cx_ll_add()
 
    - Tue, 28 Sep 2021 18:09:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Sep 2021 18:09:25 +0200] rev 445
 
    - Automated merge
 
    - Tue, 28 Sep 2021 18:07:05 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Tue, 28 Sep 2021 18:07:05 +0200] rev 444
 
    - rename test_cx_linked_list_add
 
    - Tue, 28 Sep 2021 18:05:52 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Tue, 28 Sep 2021 18:05:52 +0200] rev 443
 
    - remove error handling from tests
 
    - Tue, 28 Sep 2021 18:03:10 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Tue, 28 Sep 2021 18:03:10 +0200] rev 442
 
    - add test for cx_linked_list_add
 
    - Tue, 28 Sep 2021 18:09:14 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Sep 2021 18:09:14 +0200] rev 441
 
    - change cxLinkedListCreate() setting all fields instead of calling cxListRecalculateSize()
 
    - Mon, 27 Sep 2021 18:57:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Sep 2021 18:57:17 +0200] rev 440
 
    - fix mixed up cases in cx_ll_at()
 
    - Mon, 27 Sep 2021 18:50:07 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Sep 2021 18:50:07 +0200] rev 439
 
    - add high-level function cxListAt()
 
    - Mon, 27 Sep 2021 18:33:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Sep 2021 18:33:30 +0200] rev 438
 
    - add function cx_linked_list_at()
This commit also makes glue functions static. 
    - Mon, 27 Sep 2021 17:49:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Sep 2021 17:49:23 +0200] rev 437
 
    - implement linked list find
 
    - Mon, 27 Sep 2021 17:00:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 27 Sep 2021 17:00:19 +0200] rev 436
 
    - add node destruction in cxLinkedListDestroy()
 
    - Sun, 26 Sep 2021 18:31:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 18:31:24 +0200] rev 435
 
    - change inheritance model for lists
 
    - Sun, 26 Sep 2021 18:01:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 18:01:51 +0200] rev 434
 
    - add attributes to allocator functions
 
    - Sun, 26 Sep 2021 17:58:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 17:58:27 +0200] rev 433
 
    - add option to enable more warnings
 
    - Sun, 26 Sep 2021 16:12:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 16:12:25 +0200] rev 432
 
    - Automated merge
 
    - Sun, 26 Sep 2021 15:43:58 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 26 Sep 2021 15:43:58 +0200] rev 431
 
    - implement cx_tree_add_child_node using cx_linked_list_add
 
    - Sun, 26 Sep 2021 15:43:41 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 26 Sep 2021 15:43:41 +0200] rev 430
 
    - add cx_tree_add_child_node tests
 
    - Sun, 26 Sep 2021 16:12:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 16:12:21 +0200] rev 429
 
    - add documentation to allocator.h
 
    - Sun, 26 Sep 2021 15:26:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 15:26:43 +0200] rev 428
 
    - fix special cases for linked_list_add
 
    - Sun, 26 Sep 2021 14:45:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 14:45:51 +0200] rev 427
 
    - Automated merge
 
    - Sun, 26 Sep 2021 14:41:49 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 26 Sep 2021 14:41:49 +0200] rev 426
 
    - implement cx_tree_add_node()
 
    - Sun, 26 Sep 2021 14:21:20 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 26 Sep 2021 14:21:20 +0200] rev 425
 
    - add cx_tree_add_node test
 
    - Sun, 26 Sep 2021 13:34:30 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 26 Sep 2021 13:34:30 +0200] rev 424
 
    - add some low level tree function declarations
 
    - Sun, 26 Sep 2021 14:45:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 14:45:42 +0200] rev 423
 
    - implement at least freeing the linked list container
 
    - Sun, 26 Sep 2021 14:41:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 14:41:16 +0200] rev 422
 
    - add utility to verify allocations
 
    - Sun, 26 Sep 2021 14:34:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 14:34:49 +0200] rev 421
 
    - fix reallocate_null test not used and wrong
 
    - Sun, 26 Sep 2021 13:41:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 13:41:52 +0200] rev 420
 
    - change detection of Doxygen
 
    - Sun, 26 Sep 2021 13:06:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 13:06:48 +0200] rev 419
 
    - remove public visibility of default allocator class
 
    - Sun, 26 Sep 2021 12:03:38 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 12:03:38 +0200] rev 418
 
    - merge with remote default
 
    - Sun, 22 Aug 2021 14:33:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Aug 2021 14:33:06 +0200] rev 417
 
    - add missing quotation marks
 
    - Sun, 26 Sep 2021 12:01:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 12:01:25 +0200] rev 416
 
    - remove unnecessary check
 
    - Sun, 26 Sep 2021 11:57:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 26 Sep 2021 11:57:27 +0200] rev 415
 
    - fix missing extern "C"
 
    - Mon, 01 Mar 2021 22:19:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 01 Mar 2021 22:19:06 +0100] rev 414
 
    - adds cxReallocate()
 
    - Sun, 14 Feb 2021 15:37:12 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 14 Feb 2021 15:37:12 +0100] rev 413
 
    - perform array and list tests in the same test binary (use the same assertions, later)
 
    - Sun, 14 Feb 2021 15:13:53 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 14 Feb 2021 15:13:53 +0100] rev 412
 
    - removes stupid high level wrapper for linked lists + adds test for cxLinkedListCreate
 
    - Sun, 14 Feb 2021 11:31:13 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 14 Feb 2021 11:31:13 +0100] rev 411
 
    - add first test suite to test_linked_list.c
 
    - Sun, 14 Feb 2021 11:30:47 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 14 Feb 2021 11:30:47 +0100] rev 410
 
    - add test config and let the test binary return nonzero on test failures
 
    - Sun, 14 Feb 2021 11:30:19 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 14 Feb 2021 11:30:19 +0100] rev 409
 
    - adds cxLinkedListDestroy prototype
 
    - Mon, 08 Feb 2021 00:20:52 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 08 Feb 2021 00:20:52 +0100] rev 408
 
    - fixes cx_linked_list_add not recalculating end
 
    - Mon, 08 Feb 2021 00:18:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 08 Feb 2021 00:18:09 +0100] rev 407
 
    - simplifies linked list descriptor
 
    - Mon, 08 Feb 2021 00:14:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 08 Feb 2021 00:14:07 +0100] rev 406
 
    - adds cxLinkedListWrap and cxLinkedListRecalculateSize
 
    - Sun, 07 Feb 2021 21:29:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 21:29:51 +0100] rev 405
 
    - removes unnecessary typedefs
 
    - Sun, 07 Feb 2021 21:26:48 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 21:26:48 +0100] rev 404
 
    - adds cxListLast
 
    - Sun, 07 Feb 2021 21:14:39 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 21:14:39 +0100] rev 403
 
    - use C99 flexible array to mark the node's payload
 
    - Sun, 07 Feb 2021 21:03:30 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 21:03:30 +0100] rev 402
 
    - use named fields to access node memory
 
    - Sun, 07 Feb 2021 20:37:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 20:37:20 +0100] rev 401
 
    - copy list items when they are added to the list
 
    - Sun, 07 Feb 2021 20:08:13 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 20:08:13 +0100] rev 400
 
    - changes off_t to ptrdiff_t
 
    - Sun, 07 Feb 2021 20:05:26 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 20:05:26 +0100] rev 399
 
    - adds missing assignments for new list node
 
    - Sun, 07 Feb 2021 19:42:12 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 19:42:12 +0100] rev 398
 
    - adds first draft for linked list implementation
 
    - Sun, 07 Feb 2021 18:08:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 18:08:21 +0100] rev 397
 
    - removes unnecessary cx_allocator typedef
 
    - Sun, 07 Feb 2021 17:17:46 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 17:17:46 +0100] rev 396
 
    - make cx_allocator_class shared
 
    - Sun, 07 Feb 2021 16:52:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 16:52:21 +0100] rev 395
 
    - fixes missing CUnit include dir
 
    - Sun, 07 Feb 2021 16:24:41 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 16:24:41 +0100] rev 394
 
    - high level allocator functions should be real functions, not macros
 
    - Sun, 07 Feb 2021 15:35:52 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 15:35:52 +0100] rev 393
 
    - no C99 comments
 
    - Sun, 07 Feb 2021 12:27:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 12:27:21 +0100] rev 392
 
    - add at least a cxFree() call, even if we can't test it
 
    - Sun, 07 Feb 2021 12:20:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 07 Feb 2021 12:20:07 +0100] rev 391
 
    - adds allocator interface and default implementation
 
    - Sat, 06 Feb 2021 19:11:44 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 06 Feb 2021 19:11:44 +0100] rev 390
 
    - starts ucx 3.0 development
 
    - Mon, 30 Dec 2019 09:54:10 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Dec 2019 09:54:10 +0100] rev 389
 
    - Added tag v2.1 for changeset 871a8ffe6c9d
 
    - Mon, 30 Dec 2019 09:52:44 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Dec 2019 09:52:44 +0100] rev 388
 
    - merges closed feature/array branch
 
    - Mon, 30 Dec 2019 09:52:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Dec 2019 09:52:07 +0100] rev 387
 
    - closes array branch towards ucx 2.1 release
 
    - Mon, 30 Dec 2019 09:20:48 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Dec 2019 09:20:48 +0100] rev 386
 
    - adds changelog to html documentation
 
    - Mon, 30 Dec 2019 09:13:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Dec 2019 09:13:51 +0100] rev 385
 
    - fix: missing test header files in make dist target
 
    - Sun, 29 Dec 2019 20:21:35 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 29 Dec 2019 20:21:35 +0100] rev 384
 
    - fixes build on FreeBSD and macOS
 
    - Sun, 29 Dec 2019 19:45:00 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 29 Dec 2019 19:45:00 +0100] rev 383
 
    - fixes string replace function in case replmax is 0
 
    - Sun, 29 Dec 2019 16:04:34 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 29 Dec 2019 16:04:34 +0100] rev 382
 
    - adds more sstrreplace tests
 
    - Sun, 29 Dec 2019 13:39:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2019 13:39:36 +0100] rev 381
 
    - adds CHANGELOG
 
    - Sun, 29 Dec 2019 12:52:56 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2019 12:52:56 +0100] rev 380
 
    - fixes another leak in string replace function
 
    - Sun, 29 Dec 2019 11:30:39 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2019 11:30:39 +0100] rev 379
 
    - fix: index buffer in string replace was not freed
 
    - Sun, 29 Dec 2019 11:29:17 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2019 11:29:17 +0100] rev 378
 
    - adds string replace functions
 
    - Fri, 27 Dec 2019 11:48:55 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 27 Dec 2019 11:48:55 +0100] rev 377
 
    - adds install target for cmake builds
 
    - Fri, 20 Dec 2019 14:44:50 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2019 14:44:50 +0100] rev 376
 
    - fixes logging of absolute paths in ucx_logger_logf()
 
    - Fri, 20 Dec 2019 14:29:41 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2019 14:29:41 +0100] rev 375
 
    - adds proper cmake build targets
 
    - Thu, 19 Dec 2019 19:58:41 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 19 Dec 2019 19:58:41 +0100] rev 374
 
    - adds set operations for UcxMap
 
    - Thu, 19 Dec 2019 18:47:23 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 19 Dec 2019 18:47:23 +0100] rev 373
 
    - adds missing documentation for custom multiplication function
 
    - Thu, 19 Dec 2019 18:40:00 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 19 Dec 2019 18:40:00 +0100] rev 372
 
    - adds very simple cmake wrapper
 
    - Sun, 24 Nov 2019 17:57:25 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 24 Nov 2019 17:57:25 +0100] rev 371
 
    - adds set operations to UcxList
 
    - Thu, 07 Nov 2019 10:43:31 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 07 Nov 2019 10:43:31 +0100] rev 370
 
    - updates the web doc for array
 
    - Thu, 07 Nov 2019 10:10:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 07 Nov 2019 10:10:36 +0100] rev 369
 
    - removes some bugs by redesigning the array API
 
    - Wed, 06 Nov 2019 21:01:25 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Nov 2019 21:01:25 +0100] rev 368
 
    - removes c11 default again and leave the choice to the user
 
    - Wed, 06 Nov 2019 20:34:54 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Nov 2019 20:34:54 +0100] rev 367
 
    - fix: configure.ac
 
    - Wed, 06 Nov 2019 16:27:54 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Nov 2019 16:27:54 +0100] rev 366
 
    - adds testcase to uncover a bug in ucx_array_append()
 
    - Sun, 03 Nov 2019 17:03:10 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Nov 2019 17:03:10 +0100] rev 365
 
    - fix: missing documentation for first param in ucx_array_init_a()
 
    - Sun, 03 Nov 2019 16:34:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Nov 2019 16:34:29 +0100] rev 364
 
    - adds case independent versions of sstrprefix() and sstrsuffix()
 
    - Sun, 03 Nov 2019 16:22:46 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Nov 2019 16:22:46 +0100] rev 363
 
    - fixes hard to use documentation in string.h
 
    - Sun, 03 Nov 2019 15:35:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Nov 2019 15:35:29 +0100] rev 362
 
    - adds automatic c11 detection to configure.ac
 
    - Sat, 05 Oct 2019 17:07:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 05 Oct 2019 17:07:16 +0200] rev 361
 
    - adds missing include for strncasecmp() to avoid an implicit declaration
 
    - Sat, 05 Oct 2019 16:58:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 05 Oct 2019 16:58:16 +0200] rev 360
 
    - merges the UcxArray implementation
 
    - Sat, 05 Oct 2019 16:57:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 05 Oct 2019 16:57:06 +0200] rev 359
 
    - adjusts the UcxArray documentation to the recent changes
 
    - Thu, 03 Oct 2019 11:16:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 03 Oct 2019 11:16:12 +0200] rev 358
 
    - tells libtool to prefer the static library to avoid accidental testing against a previously installed version of ucx
 
    - Thu, 03 Oct 2019 11:15:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 03 Oct 2019 11:15:48 +0200] rev 357
 
    - fixes two bugs: clone to uninitialized array and missing return in ucx_array_ensurecap()
 
    - Thu, 03 Oct 2019 10:55:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 03 Oct 2019 10:55:39 +0200] rev 356
 
    - changes UcxArray from value to pointer semantics
 
    - Tue, 24 Sep 2019 20:16:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 24 Sep 2019 20:16:00 +0200] rev 355
 
    - adds array utility functions for user defined arrays
 
    - Sat, 10 Aug 2019 11:12:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 Aug 2019 11:12:49 +0200] rev 354
 
    - improves array append/prepend/set interface
 
    - Sat, 10 Aug 2019 09:47:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 Aug 2019 09:47:59 +0200] rev 353
 
    - renames ucx_array_free() to ucx_array_destroy()
 
    - Sat, 10 Aug 2019 08:47:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 Aug 2019 08:47:25 +0200] rev 352
 
    - merges master changes
 
    - Sat, 10 Aug 2019 08:46:38 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 Aug 2019 08:46:38 +0200] rev 351
 
    - fixes dist_int() function in AVL tests broken on 32 bit platforms
 
    - Sat, 10 Aug 2019 08:45:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 Aug 2019 08:45:12 +0200] rev 350
 
    - fixes array_equals test (broken on 32 bit platforms)
 
    - Sat, 10 Aug 2019 08:44:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 Aug 2019 08:44:36 +0200] rev 349
 
    - adds a broader set of compare and distance functions
 
    - Wed, 07 Aug 2019 23:23:58 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Wed, 07 Aug 2019 23:23:58 +0200] rev 348
 
    - use qsort_s on solaris
 
    - Wed, 07 Aug 2019 21:44:35 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Wed, 07 Aug 2019 21:44:35 +0200] rev 347
 
    - fixes build on FreeBSD
 
    - Wed, 07 Aug 2019 21:20:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 07 Aug 2019 21:20:08 +0200] rev 346
 
    - fixes #ifdefs to be sure no redefine can ever happen
 
    - Wed, 07 Aug 2019 21:14:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 07 Aug 2019 21:14:58 +0200] rev 345
 
    - ucx_array_sort() uses qsort_r(), if available
 
    - Wed, 07 Aug 2019 20:45:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 07 Aug 2019 20:45:21 +0200] rev 344
 
    - reverts deletion of tests for ucx_array_at()
 
    - Wed, 07 Aug 2019 19:43:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 07 Aug 2019 19:43:50 +0200] rev 343
 
    - adjusts the documentation for ucx_array_sort() to the current plans
 
    - Tue, 06 Aug 2019 16:26:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 06 Aug 2019 16:26:46 +0200] rev 342
 
    - removes cumbersome array accessor macros
 
    - Thu, 11 Jul 2019 10:11:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 11 Jul 2019 10:11:43 +0200] rev 341
 
    - resets revision number
 
    - Fri, 05 Jul 2019 15:47:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 05 Jul 2019 15:47:57 +0200] rev 340
 
    - adds documentation
 
    - Fri, 05 Jul 2019 15:07:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 05 Jul 2019 15:07:43 +0200] rev 339
 
    - fixes doxygen doc
 
    - Fri, 05 Jul 2019 15:02:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 05 Jul 2019 15:02:04 +0200] rev 338
 
    - adjusts library version
 
    - Thu, 04 Jul 2019 22:32:03 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 04 Jul 2019 22:32:03 +0200] rev 337
 
    - adds ucx_array_set()
 
    - Thu, 04 Jul 2019 22:23:15 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 04 Jul 2019 22:23:15 +0200] rev 336
 
    - implements ucx_array_sort()
 
    - Thu, 04 Jul 2019 21:31:45 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 04 Jul 2019 21:31:45 +0200] rev 335
 
    - fixes inappropriate size datatype in list merge sort
 
    - Thu, 04 Jul 2019 20:07:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 04 Jul 2019 20:07:31 +0200] rev 334
 
    - adds array interface and tests
 
    - Fri, 28 Dec 2018 17:20:23 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 28 Dec 2018 17:20:23 +0100] rev 333
 
    - fixes an url typo which survived surprisingly long
 
    - Fri, 28 Dec 2018 17:09:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 28 Dec 2018 17:09:05 +0100] rev 332
 
    - Added tag v2.0 for changeset 3b985a4eb05b
 
    - Sun, 07 Oct 2018 09:00:08 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 07 Oct 2018 09:00:08 +0200] rev 331
 
    - fixes ucx_szmul definition for gcc < 5
 
    - Fri, 28 Sep 2018 21:47:30 +0200
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Fri, 28 Sep 2018 21:47:30 +0200] rev 330
 
    - adds some additional avl tree tests
 
    - Wed, 22 Aug 2018 14:39:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 22 Aug 2018 14:39:24 +0200] rev 329
 
    - adds Eclipse hidden files to .hgignore
 
    - Thu, 21 Jun 2018 16:10:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Jun 2018 16:10:19 +0200] rev 328
 
    - makes g++ happy again
 
    - Thu, 21 Jun 2018 16:00:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Jun 2018 16:00:37 +0200] rev 327
 
    - UcxMap now separates internal non-const keys from public const keys
This simplifies function calls with constant keys like scstr_t or const char*. 
    - Wed, 30 May 2018 11:13:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 30 May 2018 11:13:52 +0200] rev 326
 
    - being more precise on the different required behavior of a destructor function for pooled and non-pooled memory
 
    - Tue, 29 May 2018 11:05:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 29 May 2018 11:05:12 +0200] rev 325
 
    - changes sstr shortcut macros s.t. they distinguish sstr_t and scstr_t + add macros which can completely disable the shortcuts
 
    - Tue, 29 May 2018 10:02:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 29 May 2018 10:02:55 +0200] rev 324
 
    - fixes logging messages starting with '- ' when no additional information is selected
 
    - Thu, 17 May 2018 11:13:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 May 2018 11:13:02 +0200] rev 323
 
    - removes deprecated ucx_list_append_once() and ucx_list_prepend_once()
 
    - Wed, 16 May 2018 19:33:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 May 2018 19:33:31 +0200] rev 322
 
    - Tags finalization of the scstr_t integration.
 
    - Wed, 16 May 2018 19:27:45 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 May 2018 19:27:45 +0200] rev 321
 
    - adds scstr_t to modules.md + fixes parenthesis bug in sstrsplit_a macro
 
    - Wed, 16 May 2018 19:01:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 May 2018 19:01:21 +0200] rev 320
 
    - use 'convert' as more precise term than 'cast' for the conversion from sstr_t to scstr_t
 
    - Wed, 16 May 2018 18:56:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 May 2018 18:56:44 +0200] rev 319
 
    - unifies naming of sstr_t related and scstr_t related functions
 
    - Wed, 16 May 2018 14:02:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 May 2018 14:02:59 +0200] rev 318
 
    - adds remaining documentation for the scstr functions
 
    - Wed, 16 May 2018 13:13:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 May 2018 13:13:33 +0200] rev 317
 
    - overflow of sstrnlen should return SIZE_MAX instead of zero
 
    - Mon, 14 May 2018 19:24:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 May 2018 19:24:34 +0200] rev 316
 
    - adjusts documentation of UCX string types, converters, and constructors
 
    - Mon, 14 May 2018 18:27:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 May 2018 18:27:23 +0200] rev 315
 
    - finally removes the underscore of ugliness from ucx_str_cmp() and ucx_str_casecmp()
 
    - Mon, 14 May 2018 18:25:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 May 2018 18:25:20 +0200] rev 314
 
    - renames int and longint distance and compare functions according to the new scheme
 
    - Mon, 14 May 2018 18:23:35 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 May 2018 18:23:35 +0200] rev 313
 
    - renames ucx_doublecmp() and ucx_floatcmp() to ucx_cmp_double() and ucx_cmp_float()
 
    - Mon, 14 May 2018 18:20:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 May 2018 18:20:56 +0200] rev 312
 
    - renames ucx_ptrcmp() to ucx_cmp_ptr()