changelog
    
    
    - Thu, 02 Jan 2025 19:07:56 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 02 Jan 2025 19:07:56 +0100] rev 1077
 
    - add functions to create default JSON writers - relates to #526
 
    - Wed, 01 Jan 2025 16:06:32 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 16:06:32 +0100] rev 1076
 
    - fix missing SSIZE_T not only for MSVC
 
    - Wed, 01 Jan 2025 15:56:02 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 15:56:02 +0100] rev 1075
 
    - fix cxJsonDestroy() not freeing uncompleted object member names
 
    - Wed, 01 Jan 2025 15:50:57 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 15:50:57 +0100] rev 1074
 
    - add missing new-line
 
    - Wed, 01 Jan 2025 15:48:48 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 15:48:48 +0100] rev 1073
 
    - fix for ultrafail fix #546
 
    - Wed, 01 Jan 2025 15:33:41 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 15:33:41 +0100] rev 1072
 
    - first mvp for the json writer - relates to #526
 
    - Wed, 01 Jan 2025 15:26:50 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 15:26:50 +0100] rev 1071
 
    - fix cx_strcmp() and cx_strcasecmp() - fixes #546
 
    - Wed, 01 Jan 2025 14:03:49 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 14:03:49 +0100] rev 1070
 
    - add array iterator over pointer arrays
 
    - Wed, 01 Jan 2025 13:31:38 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Jan 2025 13:31:38 +0100] rev 1069
 
    - fix include guard for properties.h
 
    - Tue, 31 Dec 2024 12:41:01 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 31 Dec 2024 12:41:01 +0100] rev 1068
 
    - move the test execution for string_to_number back in line
 
    - Sun, 29 Dec 2024 18:03:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2024 18:03:21 +0100] rev 1067
 
    - optimize cxJsonObjGet() part 1 - binary search
part 2 will be the index buffer to preserve the order
relates to #462 
    - Sun, 29 Dec 2024 17:45:56 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2024 17:45:56 +0100] rev 1066
 
    - add missing convenience macros for sorted insert with array reallocator
 
    - Sun, 29 Dec 2024 16:56:13 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2024 16:56:13 +0100] rev 1065
 
    - improve coverage metrics
 
    - Sun, 29 Dec 2024 15:24:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 29 Dec 2024 15:24:20 +0100] rev 1064
 
    - change coverage tool from gcov to gcovr
 
    - Sat, 28 Dec 2024 17:32:36 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 28 Dec 2024 17:32:36 +0100] rev 1063
 
    - implement floating point string to number conversions
The current implementation is not extremely precise. That is why
we are only testing against our own compare functions.
A future revision should increase the precision.
fixes #532 
    - Sat, 28 Dec 2024 17:31:28 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 28 Dec 2024 17:31:28 +0100] rev 1062
 
    - add cx_vcmp_* family of functions
fixes #538 
    - Sat, 28 Dec 2024 15:06:15 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 28 Dec 2024 15:06:15 +0100] rev 1061
 
    - implement string to integer conversions
relates to #532 
    - Fri, 27 Dec 2024 13:01:31 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 27 Dec 2024 13:01:31 +0100] rev 1060
 
    - avoid copying the filled data in the json parser when possible - fixes #530
 
    - Fri, 27 Dec 2024 12:23:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 27 Dec 2024 12:23:14 +0100] rev 1059
 
    - add references between both variants of the properties fill function
 
    - Fri, 27 Dec 2024 12:18:38 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 27 Dec 2024 12:18:38 +0100] rev 1058
 
    - downgrades the severity of the advice in cxPropertiesFilln() from attention to remark
 
    - Thu, 26 Dec 2024 20:33:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 26 Dec 2024 20:33:06 +0100] rev 1057
 
    - add tests for JSON create functions and fix a bug in cxJsonCreateCxString()
resolves issue #527 
    - Thu, 26 Dec 2024 19:26:37 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 26 Dec 2024 19:26:37 +0100] rev 1056
 
    - add documentation for json value creation API
issue #532 
    - Thu, 26 Dec 2024 18:32:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 26 Dec 2024 18:32:05 +0100] rev 1055
 
    - fix cxJsonObjPut() for existing keys
issue #532 
    - Wed, 25 Dec 2024 19:33:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 25 Dec 2024 19:33:04 +0100] rev 1054
 
    - add implementation for creating new json values
relates to #527 
    - Mon, 23 Dec 2024 18:32:25 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Dec 2024 18:32:25 +0100] rev 1053
 
    - fix missing definition of SSIZE_MAX in windows
 
    - Mon, 23 Dec 2024 00:34:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Dec 2024 00:34:05 +0100] rev 1052
 
    - add temporary implementations for string to number and first test cases
issue #532 
    - Mon, 23 Dec 2024 00:33:27 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Dec 2024 00:33:27 +0100] rev 1051
 
    - fix another missing free() in json tests
 
    - Sun, 22 Dec 2024 23:10:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 23:10:07 +0100] rev 1050
 
    - make cx_strcast() also support cxstring
also makes the solution for issue #536 a lot nicer 
    - Sun, 22 Dec 2024 22:53:53 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 22:53:53 +0100] rev 1049
 
    - fix cx_hash_key_cxstr() being a macro
issue #536 
    - Sun, 22 Dec 2024 22:14:57 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 22:14:57 +0100] rev 1048
 
    - implement all string to number conversions that are just wrappers
issue #532 
    - Sun, 22 Dec 2024 22:10:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 22:10:04 +0100] rev 1047
 
    - don't trust that size_t always has word width
it should be the case on all platforms supported by UCX, but it's not strictly defined in POSIX that it must be the case 
    - Sun, 22 Dec 2024 21:57:53 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 21:57:53 +0100] rev 1046
 
    - fix datatype in long long variants
issue #532 
    - Sun, 22 Dec 2024 21:42:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 21:42:16 +0100] rev 1045
 
    - add attributes to string to number conversion functions
issue #532 
    - Sun, 22 Dec 2024 21:33:10 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 21:33:10 +0100] rev 1044
 
    - add documentation for string to number conversion functions
issue #532 
    - Sun, 22 Dec 2024 11:34:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 11:34:05 +0100] rev 1043
 
    - add function prototypes and macros for string conversion function
issue #532 
    - Sun, 22 Dec 2024 11:14:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 11:14:05 +0100] rev 1042
 
    - add missing libc string.h include
 
    - Sun, 22 Dec 2024 11:10:11 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Dec 2024 11:10:11 +0100] rev 1041
 
    - fix missing errno.h include
 
    - Sat, 21 Dec 2024 21:03:28 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 21 Dec 2024 21:03:28 +0100] rev 1040
 
    - add some more overflow treatment and make sure to set errno properly
resolves #469 
    - Fri, 20 Dec 2024 21:25:33 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 21:25:33 +0100] rev 1039
 
    - upgrade Doxyfile
 
    - Fri, 20 Dec 2024 21:22:25 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 21:22:25 +0100] rev 1038
 
    - fix outdated documentation in properties.h
 
    - Fri, 20 Dec 2024 21:09:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 21:09:20 +0100] rev 1037
 
    - generify cxJsonObjGet() - fixes #525
 
    - Fri, 20 Dec 2024 16:56:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 16:56:20 +0100] rev 1036
 
    - add missing documentation for struct cx_properties_config_s
 
    - Fri, 20 Dec 2024 16:55:23 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 16:55:23 +0100] rev 1035
 
    - add missing documentation in iterator.h
 
    - Fri, 20 Dec 2024 16:53:46 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 16:53:46 +0100] rev 1034
 
    - add missing documentation of CX_WORDSIZE
 
    - Fri, 20 Dec 2024 16:51:01 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 16:51:01 +0100] rev 1033
 
    - add cxJsonArrIter() - fixes #524
 
    - Fri, 20 Dec 2024 15:15:18 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 15:15:18 +0100] rev 1032
 
    - fix memory leaks in json tests
 
    - Fri, 20 Dec 2024 15:00:31 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 15:00:31 +0100] rev 1031
 
    - rework of properties parser - fixes #529 and resolves #458
 
    - Fri, 20 Dec 2024 15:00:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 15:00:05 +0100] rev 1030
 
    - add cxBufferAppend() - fixes #534
 
    - Fri, 20 Dec 2024 13:13:38 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 20 Dec 2024 13:13:38 +0100] rev 1029
 
    - add advice to set the size of a buffer initialized with existing data
 
    - Thu, 19 Dec 2024 21:33:45 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 19 Dec 2024 21:33:45 +0100] rev 1028
 
    - add copy-on-extend feature to UCX buffer - fixes #533
 
    - Thu, 19 Dec 2024 12:00:20 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 19 Dec 2024 12:00:20 +0100] rev 1027
 
    - add CHANGELOG entry for issue #431
 
    - Wed, 18 Dec 2024 15:40:13 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 18 Dec 2024 15:40:13 +0100] rev 1026
 
    - merge remote changes
 
    - Wed, 18 Dec 2024 15:36:45 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 18 Dec 2024 15:36:45 +0100] rev 1025
 
    - add CHANGELOG entry for issue #531
 
    - Wed, 18 Dec 2024 15:35:42 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 18 Dec 2024 15:35:42 +0100] rev 1024
 
    - add copy-on-write feature to UCX buffer - fixes #531
 
    - Sun, 15 Dec 2024 16:42:44 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 16:42:44 +0100] rev 1023
 
    - fix out of range access in test on platforms which are actually shrinking the buffer
 
    - Sun, 15 Dec 2024 16:28:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 16:28:05 +0100] rev 1022
 
    - add shortcut to binary search when array size is one
 
    - Sun, 15 Dec 2024 16:10:19 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 16:10:19 +0100] rev 1021
 
    - add szmul.c to msvc project
It was previously missing because it was conditionally included. 
    - Sun, 15 Dec 2024 15:46:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 15:46:51 +0100] rev 1020
 
    - fix wrong "variant" of zero/NULL/false
 
    - Sun, 15 Dec 2024 15:44:40 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 15:44:40 +0100] rev 1019
 
    - add explicit casts to silence warnings
 
    - Sun, 15 Dec 2024 15:41:18 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 15:41:18 +0100] rev 1018
 
    - fix compilation for compilers which don't set __WORDSIZE
 
    - Sun, 15 Dec 2024 15:23:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 15:23:29 +0100] rev 1017
 
    - add check for C23 compatibility
resolves #479 
    - Sun, 15 Dec 2024 15:22:45 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 15:22:45 +0100] rev 1016
 
    - add sys/types.h to the common includes to fix a problem with ssize_t
 
    - Sun, 15 Dec 2024 14:32:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 14:32:51 +0100] rev 1015
 
    - increase test coverage
relates to #431 
    - Sun, 15 Dec 2024 14:32:39 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 14:32:39 +0100] rev 1014
 
    - fix number parser not detecting integers out of range
Note: for doubles the same approach does not work, because
it takes a lot to push a double out of range (for strtod)
and long before that happens, the value gets insanely
imprecise.
relates to #431 
    - Sun, 15 Dec 2024 13:44:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 13:44:08 +0100] rev 1013
 
    - add cxJsonReset() and cxPropertiesReset()
relates to #431 
    - Sun, 15 Dec 2024 12:19:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 12:19:21 +0100] rev 1012
 
    - add documentation - resolves #431
 
    - Sun, 15 Dec 2024 11:11:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Dec 2024 11:11:16 +0100] rev 1011
 
    - and changelog entry for issue #523
 
    - Tue, 10 Dec 2024 22:10:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Dec 2024 22:10:05 +0100] rev 1010
 
    - add fake doc to mute doxygen complaints
 
    - Tue, 10 Dec 2024 21:40:39 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Dec 2024 21:40:39 +0100] rev 1009
 
    - minor cleanup
relates to #431 
    - Tue, 10 Dec 2024 00:52:15 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Dec 2024 00:52:15 +0100] rev 1008
 
    - json: enable multiple subsequent fills - relates to #431
 
    - Tue, 10 Dec 2024 00:19:45 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Dec 2024 00:19:45 +0100] rev 1007
 
    - fix that cxBufferSeek() cannot move pos past the end - fixes #523
 
    - Tue, 10 Dec 2024 00:09:55 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Dec 2024 00:09:55 +0100] rev 1006
 
    - fix stupid initialization of target buffer in tests where no flush target is used
 
    - Tue, 10 Dec 2024 00:07:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Dec 2024 00:07:16 +0100] rev 1005
 
    - add cxBufferTerminate()
 
    - Mon, 09 Dec 2024 23:31:42 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 09 Dec 2024 23:31:42 +0100] rev 1004
 
    - make cxBufferEof() return a bool
 
    - Sun, 08 Dec 2024 00:18:47 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 08 Dec 2024 00:18:47 +0100] rev 1003
 
    - add test case to cover new branches inside cx_strcat_ma()
 
    - Sun, 08 Dec 2024 00:13:38 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 08 Dec 2024 00:13:38 +0100] rev 1002
 
    - add status codes to json parser - relates to #431
 
    - Sat, 07 Dec 2024 23:59:54 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 07 Dec 2024 23:59:54 +0100] rev 1001
 
    - change cx_strcat variants to allow handling of ENOMEM
 
    - Thu, 05 Dec 2024 01:54:12 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 05 Dec 2024 01:54:12 +0100] rev 1000
 
    - simplify how the json parser works
relates to #431 and fixes several errors related to issue #475 
    - Thu, 05 Dec 2024 01:51:47 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 05 Dec 2024 01:51:47 +0100] rev 999
 
    - add cx_array_reserve() and several more array convenience functions
 
    - Mon, 02 Dec 2024 20:58:17 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 02 Dec 2024 20:58:17 +0100] rev 998
 
    - make cx_array_copy() support different types for size/capacity - fixes #492
 
    - Thu, 28 Nov 2024 20:59:11 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Thu, 28 Nov 2024 20:59:11 +0100] rev 997
 
    - fix missing cxMempoolFree in json allocator test
 
    - Thu, 28 Nov 2024 20:53:56 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Thu, 28 Nov 2024 20:53:56 +0100] rev 996
 
    - add support for allocators to the json parser
 
    - Thu, 28 Nov 2024 19:37:00 +0100
 
    - by Olaf Wintermann <olaf.wintermann@gmail.com> [Thu, 28 Nov 2024 19:37:00 +0100] rev 995
 
    - fix cx_array_advanced_realloc to handle reallocation of NULL arrays, consistent with standard realloc behavior
 
    - Wed, 27 Nov 2024 22:33:30 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 27 Nov 2024 22:33:30 +0100] rev 994
 
    - remove map detach function - fixes #487
 
    - Tue, 26 Nov 2024 22:16:27 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 26 Nov 2024 22:16:27 +0100] rev 993
 
    - make names of destroy and free functions consistent - fixes #484
 
    - Tue, 26 Nov 2024 22:00:03 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 26 Nov 2024 22:00:03 +0100] rev 992
 
    - missing comma in map iterator docs
 
    - Tue, 26 Nov 2024 21:53:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 26 Nov 2024 21:53:06 +0100] rev 991
 
    - cxBufferFree() now calls cxBufferDestroy()
 
    - Sat, 23 Nov 2024 15:15:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 23 Nov 2024 15:15:09 +0100] rev 990
 
    - automatically disable szmul builtin when testing with coverage
 
    - Sat, 23 Nov 2024 14:45:32 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 23 Nov 2024 14:45:32 +0100] rev 989
 
    - improve consistency for allocator arguments - fixes #485
 
    - Mon, 18 Nov 2024 22:05:42 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 18 Nov 2024 22:05:42 +0100] rev 988
 
    - make ucx C++ compatible again (and add tests for it) - fixes #486
 
    - Tue, 12 Nov 2024 17:34:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 12 Nov 2024 17:34:04 +0100] rev 987
 
    - add configure option for szmul
 
    - Mon, 11 Nov 2024 21:42:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 11 Nov 2024 21:42:14 +0100] rev 986
 
    - simplify cx_array_copy() - fixes #474
 
    - Thu, 07 Nov 2024 22:46:58 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 07 Nov 2024 22:46:58 +0100] rev 985
 
    - major refactoring of attributes
resolves #460
resolves #471
resolves #472 
    - Thu, 07 Nov 2024 20:22:56 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 07 Nov 2024 20:22:56 +0100] rev 984
 
    - let cxMapDestroy() ignore NULL as any free()-like function should do
 
    - Sun, 03 Nov 2024 20:15:14 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Nov 2024 20:15:14 +0100] rev 983
 
    - instruct Doxygen to expand all macros
 
    - Sun, 03 Nov 2024 19:36:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Nov 2024 19:36:21 +0100] rev 982
 
    - add -c flag to ARFLAGS to suppress diagnostic message on stderr