changes macros for adding/inserting a single element into an array to automatically take the address - relates to #619 default tip

add missing _c variants for some linked-list functions - relates to #622

fix nonnull attribute for cx_array_insert_sorted_c_() - relates to #622

add missing compare_func2 variants of the array functions - relates to #622

add convenience array_sort functions - relates to #622

use qsort_r() when it is available - relates to #622

fix and simplify discovery of memrchr

huge refactoring of collections to add support for 3-arg compare functions

add tests for freeing memory with a reallocation of size zero

update names of internal simple_clone funcs to shallow_clone funcs - relates to #780

remove dependency from tree.c to array_list.h

update the online docs with the new array API - resolves #619

minor improvement of iterator.h documentation

change build s.t. the online docs are generated exactly how we want to publish them

adds docstrings to the new array API - relates to #619

fix missing docstrings for the convenience macros in allocator.h

fixes docstring comment for 'continuation' member

complete refactoring of low-level array list functions - relates to #619

next step of simplifying the array API - relates to #619

first draft for simplifying the low-level array API - relates to #619

refactor the list and map construction functions and remove the simple macros

rename the "simple" cloning functions from Simple to Shallow

change signatures of cxPropertiesLoad()

change signatures of cxJsonToString() and cxJsonToPrettyString()

change signature of cxBufferInit() and cxBufferCreate()

fix regression in cx_kvl_map_put() - after recent refactoring it returned the wrong value

fix wrong return value documentation for cxMapEmplace()

add json array clone tests

add more json array compare tests

fix unexpected token error when parsing an empty json array

add json clone tests, obj tests still dysfunctional - relates to #785

add cxJsonClone - resolves #785 except for the tests

fix incorrect definition of cx_clone_func fptr

optimize cxJsonCompare in case both value pointers are identical

fix misplaced includes

changelog fixes and make dependency fixes

add json array compare tests

extend json compare test

fix critical UAF because kv-list stored pointers to the wrong key data

add json compare tests

fix that cxJsonCompare() is not symmetric when comparing integer with double

fix that cxJsonCompare() could not compare integers with numbers

add cxJsonCompare()

removes the CX_STR() macro and instead makes the cx_str() inlinable

fix previous removal of clean target from makefile.mk breaking check-cxx target

fix misplaced parenthesis

add cxMapCompare() - resolves #784

add break_on_failure debugging macro to ucxtest.c

simplify cxBufferAppend() because it does not need to care about flushing anymore

improves cxBufferPutString() and adds cxBufferAppendString() - resolves #779

improves cxBufferTerminate()

fix missing error handling when terminating the string

add cxJsonToString() and cxJsonToPrettyString() - resolves #778

adds new CX_BUFFER_DO_NOT_FREE buffer flag

removes buffer flush and adds maximum capacity instead - resolves #185

add test for multiple consecutive line continuations

adjusts documentation regarding line continuation support - relates to #457

add CHANGELOG entry for the bug found by test issue #777

fix cxJsonFromString() ignoring unexpected trailing data + fix wrong handling of trailing whitespaces in general

fix that the docu does not explain that you must reset a parser that ran into an error

fix that cxJsonFromString() stores NULL instead of a "nothing" value in case of a fill error

fix that token_destroy() did not set token->allocated to false

fix memory leak in the json parser and add more tests for cxJsonFromString - relates to #777

add support for line continuation in the properties parser - resolves #457

add more tests for cxPropertiesLoad()

add note that cxPropertiesLoad() does not roll back the changes to the map on error

fix that cxPropertiesLoad() is not falling back to the default allocator when the allocator is NULL

fix return value of cxPropertiesLoad() for non-empty files that do not contain keys

add allocator support to cxPropertiesLoad() - resolves #776

add cxJsonFromString() - resolves #771

properties.h: removes the source/sink API and adds a new cxPropertiesLoad()

changes cxFreeDefault() from a macro to a function so that it can be used as a simple destructor

fix the note about AnyStr and add it to the files where it was missing

fix order of bugfixes and removed features in changelog

improve member names of CxJsonArray

fix the example in json.h.md after removing the sort_members flag

changes CxTree structure so that it now inherits CX_COLLECTION_BASE - resolves #629

fixes cxJsonWrite() incorrectly returning non-zero when strings needed to be escaped

replace JSON object member array with kv-list - resolves #762

fixes that overwriting elements with cxMapPut() in a kv-list did not work

fixes critical memory leak when using cxMapFree() on a kv-list that is using destructors

add .clang-tidy file to mute warnings about using NULL instead of nullptr

use an anonymous union for the CxJsonValue

change cxBufferReserve() to allow reducing the capacity

fix that certain reallocate functions did not properly support size zero

fix name of cx_system_page_size() in allocator.c

add cx_system_page_size() to allocator.h

make clean and distclean are now independent from config.mk

add documentation for cx_linked_list_extra_data()

start development of UCX 4

Added tag v3.2 for changeset 38d3f40a50ec

instead of including stdalign.h, check if the macro is defined (Solaris does not have the header) v3.2

include stdalign.h when not using C23 or newer

fix missing memory alignment for linked list node extra data

fix out-of-bounds read in cx_array_insert_sorted_impl()

replace dist-clean target with a proper distclean target

fix that mkdir -p needs a trailing slash on some platforms

fix that pkgconfdir is only different on FreeBSD

add release date for UCX 3.2

add command line option for pkgconfigdir

fix missing fallback for doxygen executable

merge with remote changes

update uwproj and fix pkgconfigdir location on BSD

fix install-lib.sh compatibility with older shells

fix missing CX_EXPORT for cxTreeVisit()

fix missing parameter list in system_page_size()

add missing docstring for CX_INLINE

add the last test for full line coverage

add test case for cxBufferPop()

fixes that cxBufferWrite() could auto-extend the buffer beyond the configured threshold

add cxBufferReserve()

add cxBufferPop()

implement better strings for json.c + complete test coverage

add the note to the docstrings that tree iterator/visitor counter include the currently visited node

complete test coverage for tree.c

adjust test_hash_map_remove_via_iterator s.t. we achieve coverage for the case where we remove not the first element of a bucket

complete test coverage for array_list.c and delete unreachable code

optimize sorted insertion by using the infimum instead of the supremum

stable return value for binary search when there are duplicates in the array

fix that a particular tree test was never executed

fix that cxTreeVisitorDispose() does not set the queue pointers to NULL

add missing coverage exclusions for linked_list.c

add coverage exclusions for properties.c

increase test coverage for buffer.c

add fallback when sysconf() returns -1 when obtaining the page size

add missing test coverage in string.c and fix overflow checking bug in cx_strcat()

add coverage exclusion rules to hash_map.c

complete test coverage for CxHashKey

fix MSVC compilation error

add missing exclusions for some allocation error handling (all remaining uncovered lines must be covered eventually)

add missing test coverage for cx_array_copy()

add missing test coverage for cx_array_reserve()

add missing test coverage for inserting a duplicate for the beginning node with cx_linked_list_insert_sorted()

update uwproj

add missing test for cx_cmp_size()

exclude almost impossible negative return values for snprintf() from code coverage

fix various typos in the docs

fix wrong type of cast in C++ version of string.h

fix missing newline at end of list.c (-Wnewline-eof complains about that)

tighten the test expectation for cx_array_reserve() after the recent change

add tests for cxListShrink() and cxListReserve() + fixes a bug

add DESTDIR support

fix some memory management bugs in the map and list tests

implement a new allocation strategy for array lists and add cxListReserve() and cxListShrink()

improve insert_unique test case to cover previously uncovered cases

add tests for simple clone functions

implement simple versions of the clone functions

add warning, not to pass the same pointer multiple times to the clone functions

implement cxListUnion() - resolves #755

add documentation for cx_array_align_capacity() and use it in cx_arl_insert_array()

small improvement of the buffer config macros documentation

implement cxMapUnion() - resolves #756

protect arguments of rm and ln commands with quotes

fix install-lib.sh - relates #752

install shared libs with a new install-lib script, with variants for normal unix and macos - fixes #752 broken macos dylib support

update uwproj (incl. fix of toolchain.sh)

implement cxListIntersection() - resolves #554

fix clone_func not checked for being nonnull

implements cxMapIntersection() and cxMapListIntersection() - resolves #555

difference shall not check already present items in the destination - fixes #753

specify the intersection functions

add cxCollectionCompareFunc() macro

fix typo bug in cxListDifference() - resolves #745

add tests for cxListDifference() - resolves #751

remove mingw support (we have MSVC support) + fix regression on macos platform

add support for multiple parallel versions of ucx

remove *.pc attribute that might cause compatibility issues

protect against possible spaces in the paths

add pkgconf support

ucx 3.2 is not binary compatible - increase the LIBVERSION

fix that the symlinks for the libraries are not relative

cxListDifference() sets the sorted flag if it can guarantee that

add implementation for cxListDifference() - issue #745

continue to fix warnings on certain compilers due to implicit cast from fptr to bool

fix warnings on certain compilers due to implicit cast from fptr to bool

add more test coverage for new map functions and fixes some issues

simplify clone implementations

add tests for cxMapDifference() and cxMapListDifference()

add documentation for cxMapDifference() and cxMapListDifference()

default NULL allocator to cxDefaultAllocator

add implementations for map difference

make clone functions return int instead of size_t

add test coverage for allocation failures in clone-function

fix hash map not being able to deal with 64-bit hashes

add documentation for cxListClone() - relates to #744

add documentation for cxMapClone() - resolves #743

add tests for cxMapClone() - relates to #743

add destruction of uninitialized entries on allocation failure to cxMapClone() - relates to #743

untested draft of cxMapClone() - relates to #743

add cxListClone() - resolves #744 except for test coverage

fix accidental additions of unnecessary unistd.h includes

fix overlooked renaming of cx_attr_export to CX_EXPORT

add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation

add possibility to wrap valid function of an iterator (just for the sake of completeness)

define the function pointer for clone functions

minor wording improvements in buffer documentation

remove the concept of "mutating iterators" - resolves #579

add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()

make cxCollectionSorted() always return true for empty collections regardless of the sorted flag

clean up header files and adds support for comparing arbitrary strings with string.h functions

remove unnecessary members from the array reallocator struct - fixes #621

fixes tons of typos and grammar issues across the documentation - fixes #667

fixes various bugs related to skipping duplicates in insert_unique - relates to #557

changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers

fix missing documentation if insert_unique member - relates to #557

fix various typos in the web documentation

add functions to insert elements into lists/arrays without duplicates - resolves #557

assert instead of assume sorted property in debug builds

replace all remaining generics with cx_strcast() - resolves #700

add unsigned char strings to cx_strcast() and changes documentation

go back to ctype.h, but this time try to avoid crashes in Microsoft's implementation

missing custom CFLAGS when testing for memrchr availability

improve feature test for memrchr() making it also available on BSD

use memrchr() to implement cx_strrchr() when it is available

fixes regression: missing closing brace in map.h in c++ builds

resolve TODO: test C23 base-2 literals

finalize the documentation on the new hash key features

change map.h to use new CX_HASH_KEY macro

add missing docstrings

change kv-list to use new CX_HASH_KEY macro

fix using empty initializer, which is a C23 extension

fix cxKvListSetKey() and cxKvListRemoveKey() accidentally not declared for C++

add C++ implementation of CX_HASH_KEY()

add generic CX_HASH_KEY() macro

add changelog entries for issue #720

add support for integer keys - resolves #720

add size_t compare functions

simplify hash map iterator - resolves #727

fix cx_kvl_map_put() returning the wrong pointer

add kv-list files to MSVC project files

fix initialization of cxDefaultAllocator for MSVC

add cxKvListGetKey()

fix that cxKvListInsert() did not lose the sorted property

remove unused old cx_kv_list_remove_key() prototype

fix typo in CHANGELOG

kv-list: add documentation

kv-list: completes test coverage

add tests for creating iterators with NULL lists or maps

the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728

kv-list: implement mutating iterator support

(0) -1000 -240 tip

mercurial