changelog
    
    
    - 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