changelog
    
    
    - Tue, 20 Jun 2023 18:29:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 Jun 2023 18:29:12 +0200] rev 713
 
    - fix wrong docs for cx_stream_copy()
 
    - Tue, 20 Jun 2023 18:28:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 Jun 2023 18:28:47 +0200] rev 712
 
    - add missing docs for cx_invoke_destructor()
 
    - Tue, 20 Jun 2023 18:26:35 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 Jun 2023 18:26:35 +0200] rev 711
 
    - update Doxyfile to Doxygen 1.9.6
 
    - Sun, 21 May 2023 16:22:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 16:22:09 +0200] rev 710
 
    - fix const-ness of non-mutating iterator creation for maps
 
    - Sun, 21 May 2023 15:07:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 15:07:31 +0200] rev 709
 
    - simplify map class structure
 
    - Sun, 21 May 2023 14:56:10 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 14:56:10 +0200] rev 708
 
    - fix inconsistent destructor requirements for list and map classes
 
    - Sun, 21 May 2023 14:40:05 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 14:40:05 +0200] rev 707
 
    - fix rehash not valid for non-hash-maps
 
    - Sun, 21 May 2023 14:37:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 14:37:56 +0200] rev 706
 
    - add empty map implementation - fixes #259
 
    - Sun, 21 May 2023 14:04:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 14:04:34 +0200] rev 705
 
    - fix cxListCompare if-condition
 
    - Sun, 21 May 2023 14:03:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 14:03:21 +0200] rev 704
 
    - add empty list implementation - fixes #258
 
    - Sun, 21 May 2023 11:52:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 May 2023 11:52:58 +0200] rev 703
 
    - improve cx_linked_list_sort() - fixes #257
 
    - Fri, 05 May 2023 19:07:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 05 May 2023 19:07:56 +0200] rev 702
 
    - fix cx_linked_list_sort() not working for empty lists
 
    - Mon, 24 Apr 2023 19:08:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 24 Apr 2023 19:08:56 +0200] rev 701
 
    - explicitly set cmake policy CMP0077
 
    - Sat, 22 Apr 2023 19:01:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Apr 2023 19:01:06 +0200] rev 700
 
    - add cx_strdup_m() and cx_strdup_ma()
 
    - Sat, 22 Apr 2023 14:21:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Apr 2023 14:21:02 +0200] rev 699
 
    - make list find return a negative value when elem not found
 
    - Sat, 22 Apr 2023 14:09:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Apr 2023 14:09:46 +0200] rev 698
 
    - fix wrong doc in cxListFind()
 
    - Sat, 22 Apr 2023 13:06:18 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Apr 2023 13:06:18 +0200] rev 697
 
    - add cx_strcat_m() and cx_strcat_ma() for in-place concatenation
 
    - Sat, 22 Apr 2023 12:29:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Apr 2023 12:29:00 +0200] rev 696
 
    - add cxHashMapCreateSimple()
 
    - Sat, 22 Apr 2023 12:16:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 22 Apr 2023 12:16:34 +0200] rev 695
 
    - fix typo
 
    - Fri, 21 Apr 2023 20:50:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Apr 2023 20:50:19 +0200] rev 694
 
    - fix missing controlling-expression for char const*
 
    - Fri, 21 Apr 2023 20:28:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Apr 2023 20:28:55 +0200] rev 693
 
    - fix missing const qualifier for allocator
 
    - Fri, 21 Apr 2023 20:17:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Apr 2023 20:17:09 +0200] rev 692
 
    - add cxmutstr to the map generics
 
    - Fri, 21 Apr 2023 19:50:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Apr 2023 19:50:43 +0200] rev 691
 
    - bring a generic interface to CxMap
 
    - Fri, 21 Apr 2023 18:38:18 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 21 Apr 2023 18:38:18 +0200] rev 690
 
    - simplify CxHashKey
 
    - Thu, 20 Apr 2023 19:13:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 20 Apr 2023 19:13:25 +0200] rev 689
 
    - fix typo
 
    - Tue, 18 Apr 2023 19:19:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 18 Apr 2023 19:19:04 +0200] rev 688
 
    - serious code formatting problems ;-)
 
    - Tue, 18 Apr 2023 19:15:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 18 Apr 2023 19:15:50 +0200] rev 687
 
    - tweak rehash test to achieve missing coverage
 
    - Tue, 18 Apr 2023 19:10:45 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 18 Apr 2023 19:10:45 +0200] rev 686
 
    - add destructor functions for maps - fixes #253
 
    - Tue, 18 Apr 2023 18:01:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 18 Apr 2023 18:01:41 +0200] rev 685
 
    - add base collection members to map interface
 
    - Mon, 17 Apr 2023 21:47:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 17 Apr 2023 21:47:34 +0200] rev 684
 
    - change CX_STR: use compound literal in C and ctor in C++
 
    - Sun, 16 Apr 2023 21:35:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 16 Apr 2023 21:35:08 +0200] rev 683
 
    - add convenience functions for allocating a buffer on the heap
 
    - Sun, 16 Apr 2023 21:09:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 16 Apr 2023 21:09:25 +0200] rev 682
 
    - work around some MSC problems
 
    - Sun, 16 Apr 2023 20:50:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 16 Apr 2023 20:50:19 +0200] rev 681
 
    - fix common.h include problems - fixes #255
 
    - Sun, 09 Apr 2023 20:00:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 09 Apr 2023 20:00:44 +0200] rev 680
 
    - fix wrong operator precedence in destructor macros
 
    - Sun, 09 Apr 2023 19:37:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 09 Apr 2023 19:37:00 +0200] rev 679
 
    - add pointer array list tests
 
    - Sun, 09 Apr 2023 19:06:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 09 Apr 2023 19:06:16 +0200] rev 678
 
    - reformat code
 
    - 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