changelog
    
    
    - Sun, 09 Apr 2023 19:03:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 09 Apr 2023 19:03:58 +0200] rev 677
 
    - refactoring of collections to make use of destructors in map implementations
 
    - Fri, 07 Apr 2023 11:30:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 07 Apr 2023 11:30:28 +0200] rev 676
 
    - fix initial storage allocation for array lists created with CX_STORE_POINTERS
 
    - Mon, 03 Apr 2023 19:48:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 03 Apr 2023 19:48:00 +0200] rev 675
 
    - simplify cx_stream_ncopy()
 
    - Mon, 03 Apr 2023 19:20:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 03 Apr 2023 19:20:30 +0200] rev 674
 
    - add stream copy utils - fixes #254
 
    - Mon, 03 Apr 2023 19:09:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 03 Apr 2023 19:09:31 +0200] rev 673
 
    - make allocator in cxBufferInit optional
 
    - Sat, 01 Apr 2023 11:51:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 01 Apr 2023 11:51:48 +0200] rev 672
 
    - increase test coverage - fixes #250
 
    - Sat, 01 Apr 2023 11:00:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 01 Apr 2023 11:00:59 +0200] rev 671
 
    - test coverage for cx_strcmp pointer variants
 
    - Tue, 28 Mar 2023 21:00:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Mar 2023 21:00:33 +0200] rev 670
 
    - allow NULL for allocator and comparator
 
    - Tue, 28 Mar 2023 19:13:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Mar 2023 19:13:33 +0200] rev 669
 
    - add docs for CX_STORE_POINTERS and remove cxHashMapCreateForPointers()
 
    - Tue, 21 Mar 2023 17:21:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 21 Mar 2023 17:21:20 +0100] rev 668
 
    - add CX_STORE_POINTERS special item size for maps
 
    - Tue, 21 Mar 2023 17:18:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 21 Mar 2023 17:18:29 +0100] rev 667
 
    - add CX_STORE_POINTERS special "item size" for lists
 
    - Mon, 20 Mar 2023 19:09:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Mar 2023 19:09:08 +0100] rev 666
 
    - add unit test for cxListClear + fix destructor functions not always invoked with the correct pointer
 
    - Mon, 20 Mar 2023 18:05:12 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Mon, 20 Mar 2023 18:05:12 +0100] rev 665
 
    - fix hashmap iterator skipping the second element in some cases
 
    - Tue, 14 Mar 2023 20:25:24 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 14 Mar 2023 20:25:24 +0100] rev 664
 
    - add cxListClear and fix missing destructor invocations - #241 #246
 
    - Sun, 05 Mar 2023 10:55:32 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 05 Mar 2023 10:55:32 +0100] rev 663
 
    - add cx_hash_key_cxstr() macro
 
    - Thu, 23 Feb 2023 22:43:13 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Feb 2023 22:43:13 +0100] rev 662
 
    - add simple functions for creating lists
 
    - Thu, 23 Feb 2023 22:27:41 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Feb 2023 22:27:41 +0100] rev 661
 
    - add CX_LINKED_LIST_SORT_SBO_SIZE macro
 
    - Thu, 23 Feb 2023 22:24:26 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Feb 2023 22:24:26 +0100] rev 660
 
    - add some asserts
 
    - Thu, 23 Feb 2023 21:42:46 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Feb 2023 21:42:46 +0100] rev 659
 
    - split cxMapRemove() to cxMapRemoveAndGet()
 
    - Thu, 23 Feb 2023 18:58:15 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Feb 2023 18:58:15 +0100] rev 658
 
    - make hashmap store objects instead of pointers by default - fixes #239
 
    - Mon, 20 Feb 2023 19:55:42 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Feb 2023 19:55:42 +0100] rev 657
 
    - add CxListComparator compatible string compare functions
 
    - Mon, 20 Feb 2023 19:14:42 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 20 Feb 2023 19:14:42 +0100] rev 656
 
    - fix gmock being build and gtest and gmock being installed
 
    - Wed, 15 Feb 2023 16:48:11 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 15 Feb 2023 16:48:11 +0100] rev 655
 
    - implement backwards iterator - fixes #238
 
    - Wed, 08 Feb 2023 20:26:26 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 08 Feb 2023 20:26:26 +0100] rev 654
 
    - Automated merge
 
    - Tue, 07 Feb 2023 21:55:37 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Feb 2023 21:55:37 +0100] rev 653
 
    - rename test directory to avoid name clash with Makefile target
 
    - Tue, 07 Feb 2023 21:53:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Feb 2023 21:53:06 +0100] rev 652
 
    - fix README showing how tests were run in the automake era
 
    - Tue, 07 Feb 2023 21:37:55 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Feb 2023 21:37:55 +0100] rev 651
 
    - fix last change of mul overflow builtin breaking non-windows compilations
now we use the generic builtin and leave the type resolution to the compiler 
    - Tue, 07 Feb 2023 20:08:45 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Feb 2023 20:08:45 +0100] rev 650
 
    - fix code not compiling under windows+mingw
 
    - Tue, 07 Feb 2023 20:08:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Feb 2023 20:08:08 +0100] rev 649
 
    - fix wrong types for umul overflow builtins
 
    - Tue, 07 Feb 2023 20:06:33 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Feb 2023 20:06:33 +0100] rev 648
 
    - remove too platform dependent printf tests
 
    - Wed, 08 Feb 2023 20:26:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 08 Feb 2023 20:26:09 +0100] rev 647
 
    - implement swap function for list elements - fixes #218
 
    - Wed, 08 Feb 2023 18:56:58 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 08 Feb 2023 18:56:58 +0100] rev 646
 
    - add pointer swap utility
 
    - Thu, 02 Feb 2023 20:25:34 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 02 Feb 2023 20:25:34 +0100] rev 645
 
    - add strtok API - fixes #220
 
    - Wed, 01 Feb 2023 18:07:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Feb 2023 18:07:16 +0100] rev 644
 
    - reformat file
 
    - Wed, 01 Feb 2023 18:06:50 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Feb 2023 18:06:50 +0100] rev 643
 
    - #228 make buffer sizes adjustable at compile time
 
    - Wed, 01 Feb 2023 17:14:17 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Feb 2023 17:14:17 +0100] rev 642
 
    - minor fix for testing allocator self-test
 
    - Thu, 26 Jan 2023 20:59:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 26 Jan 2023 20:59:36 +0100] rev 641
 
    - add new pointer list wrapper - resolves #234
since we need a thread local variable, this drops C99 support 
    - Wed, 25 Jan 2023 19:19:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 25 Jan 2023 19:19:29 +0100] rev 640
 
    - simplify list class - fixes #236
 
    - Mon, 23 Jan 2023 20:34:18 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Jan 2023 20:34:18 +0100] rev 639
 
    - temporarily remove pointer lists - see #234
 
    - Mon, 23 Jan 2023 20:22:11 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Jan 2023 20:22:11 +0100] rev 638
 
    - add cxListInsertArray() - fixes #224
 
    - Mon, 23 Jan 2023 20:00:26 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Jan 2023 20:00:26 +0100] rev 637
 
    - remove the untrue restriction for the index parameter of cx_array_copy() from the documentation
 
    - Tue, 20 Dec 2022 16:09:03 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 Dec 2022 16:09:03 +0100] rev 636
 
    - add printf tests
 
    - Tue, 20 Dec 2022 15:08:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 Dec 2022 15:08:08 +0100] rev 635
 
    - add attributes to printf functions
 
    - Tue, 20 Dec 2022 14:14:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 Dec 2022 14:14:09 +0100] rev 634
 
    - change prefix of UCX_PRINTF_BUFSIZE to CX
 
    - Tue, 20 Dec 2022 14:12:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 Dec 2022 14:12:36 +0100] rev 633
 
    - add utils tests
 
    - Wed, 07 Dec 2022 21:07:54 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 07 Dec 2022 21:07:54 +0100] rev 632
 
    - fix public header destination
 
    - Wed, 07 Dec 2022 20:11:44 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 07 Dec 2022 20:11:44 +0100] rev 631
 
    - tests for compare functions
 
    - Sat, 26 Nov 2022 16:58:41 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 26 Nov 2022 16:58:41 +0100] rev 630
 
    - separate iterators and mutating iterators
Trade tons of code duplication for const-correctness. 
    - Wed, 23 Nov 2022 22:40:55 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 23 Nov 2022 22:40:55 +0100] rev 629
 
    - #224 add cxListAddArray()
This also replaces cxLinkedListFromArray(). 
    - Sun, 20 Nov 2022 21:08:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 21:08:36 +0100] rev 628
 
    - use //-style single line comments everywhere
 
    - Sun, 20 Nov 2022 17:48:42 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 17:48:42 +0100] rev 627
 
    - fix cx_array_copy() unintentionally shrinking the array
 
    - Sun, 20 Nov 2022 17:47:26 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 17:47:26 +0100] rev 626
 
    - #219: fix off-by-one bug in cx_arl_remove()
 
    - Sun, 20 Nov 2022 17:22:37 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 17:22:37 +0100] rev 625
 
    - fix calculation of new capacity in cx_array_copy()
 
    - Sun, 20 Nov 2022 17:06:00 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 17:06:00 +0100] rev 624
 
    - #219: cx_arl_remove short-circuit for last element
 
    - Sun, 20 Nov 2022 16:58:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 16:58:51 +0100] rev 623
 
    - #219 array list: implement reverse
 
    - Sun, 20 Nov 2022 16:28:03 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 16:28:03 +0100] rev 622
 
    - #219 array list: implement compare member func
 
    - Sun, 20 Nov 2022 16:22:50 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 16:22:50 +0100] rev 621
 
    - missing const in cxListFind
 
    - Sun, 20 Nov 2022 16:22:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 16:22:16 +0100] rev 620
 
    - #219 improve cx_arl_iter_next
Remove one function call 
    - Sun, 20 Nov 2022 16:21:03 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 16:21:03 +0100] rev 619
 
    - #219 array list: implement insert via iterator
 
    - Sun, 20 Nov 2022 15:51:02 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Nov 2022 15:51:02 +0100] rev 618
 
    - #219 array list: implement compare
 
    - Sun, 20 Nov 2022 12:17:34 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Sun, 20 Nov 2022 12:17:34 +0100] rev 617
 
    - fix include in array_list.h
 
    - Fri, 18 Nov 2022 22:32:17 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 18 Nov 2022 22:32:17 +0100] rev 616
 
    - #219 array list: add iterator
 
    - Thu, 17 Nov 2022 18:55:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Nov 2022 18:55:14 +0100] rev 615
 
    - #219 array list: implement sort
 
    - Thu, 17 Nov 2022 18:46:55 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Nov 2022 18:46:55 +0100] rev 614
 
    - #219 array list: implement find