diff options
Diffstat (limited to 'doc/changelog.txt')
-rw-r--r-- | doc/changelog.txt | 535 |
1 files changed, 535 insertions, 0 deletions
diff --git a/doc/changelog.txt b/doc/changelog.txt new file mode 100644 index 0000000..2b68284 --- /dev/null +++ b/doc/changelog.txt @@ -0,0 +1,535 @@ + + +HEAD +==== + + +v3.22 (2014-08-25) +================== +Enhancements: +- string: add the HXQUOTE_SQLBQUOTE quoting variant + + +v3.21 (2014-06-02) +================== +Enhancements: +- HXformat_add() now supports HXTYPE_MCSTR objects (with and without + HXTYPE_IMMED) +- libxml_helper: New xml_getnsprop() function that gets the value of a + property (element attribute) by namespace prefix + + +v3.20 (2014-04-18) +================== +Enhancements: +- resolve some link errors when built with Solaris ld + + +v3.19 (2014-02-21) +================== +Enhancements: +- string: add the HXQUOTE_SQLSQUOTE quoting variant +Internal changes: +- format: rework function calling code to support extending with functions + + +v3.18 (2014-03-01) +================== +Enhancements: +- string: add the HX_stpltrim function +Fixes: +- Make HX_strltrim move the correct number of bytes +Changes: +- remove wxCFF from wx_helper.hpp + + +v3.17 (2013-11-16) +================== +Enhancements: +- defs: add HX_SIZET_FMT and HX_LONGLONG_FMT +- support for Win64 +Fixes: +- compile warnings on mingw were addressed + + +v3.16 (2013-09-29) +================== +Enhancements: +- format: remove 256-char format key length limit +Fixes: +- compile errors on mingw were addressed + + +v3.15 (2013-03-07) +================== +Enhancements: +- string: add HX_strchr2 +- string: add HXQUOTE_URIENC mechanism for HX_strquote +Changes: +- defs: HXsizeof_member becomes FIELD_SIZEOF + (to match the Linux kernel's macro name) + + +v3.14.1 (2012-12-31) +==================== +Fixes: +- Restore forward-sorting order of ordered maps + (revert "map: always have needle as second argument") + + +v3.14 (2012-11-14) +================== +Fixes: +- io: use pathconf(3) to determine dirent size for dir traversal +- rand: avoid division by zero when calling HX_irand with lo==hi +- time: use C++ static_cast syntax for C++ mode +- headers: improve operability with C89 compile mode + + +v3.13 (2012-07-28) +================== +Enhancements: +- defs: add DEMOTE_TO_PTR +- option: new HXOPT_RQ_ORDER flag, allows unconditional POSIX-style parsing + (parsing terminates at first non-option encountered) +- option: add HXTYPE_SIZE_T +- time: add functions and macros for arithmetic and handling of timespec + with support for negative time values + * time: add HX_TIMESPEC_{EXP,FMT} + * time: add HX_TIMEVAL_{EXP,FMT} + * time: add the HX_timespec_isneg function + * time: add the HX_timespec_neg function + * time: add the HX_timespec_add function + * time: add the HX_timespec_mul function + * time: add the HX_timespec_mulf function +Changes: +- io: remove HX_REALPATH_SYMLINK +- time: rename HX_diff_timespec to HX_timespec_sub (old ABI kept) +- time: rename HX_diff_timeval to HX_timeval_sub (old ABI kept) +- string: make HX_memmem consider the special case of search_length=0 +- string: optimize search_length=1 case in HX_memmem +- string: speed up HX_memmem searches for search_length >=2 + + +v3.12.1 (2011-12-15) +==================== +Fixes: +- build: make build error-free when using -Wl,--no-undefined +- string: make HX_strdup(NULL) valid again + + +v3.12 (2010-12-03) +================== +Fixes: +- defs: resolve warning for users of const_cast*() when using -Wextra +- format: error handling for HXformat2_aprintf +- option: do not omit dashes when passthru'ing unknown two-part long opts +- option: do not omit arg following unknown unknown two-part long opts in pthru +- option: do run callback on HXTYPE_BOOL +- option: correct passthrough of squashed unknown short options +- option: do not stop early when printing help/usage +- option: avoid crash when passing an empty argv +- option: avoid crash when passing NULL for struct HXoptcb.arg0 +Enhancements: +- build: deactivate type-checking of the *_cast() macros for clang due to a + compiler bug involving nested structs-in-typeofs +- option: allow argc=NULL on HX_getopt +- option: error handling for HX_getopt +- option: support POSIXLY_CORRECT environment variable +- string: add a HX_strndup function +- string: add a HX_strnlen function +- mc: use an implicit minimum allocated length +Changes: +- format: renamed HXformat2_[afs]printf back to HXformat_[afs]printf +- io: add mode argument to HX_mkdir +- map: avoid 1<<31 in constants +- option: remove struct HXoptcb.arg0 +- option: remove struct HXoptcb.match_{ln,sh} by .flags +- option: let HX_getopt return code indicate system failure states +- option: remove struct HXoption.sval (replaced by .uptr) +- string: unline HX_strdup, HX_strlcat, HX_strlcpy, HX_strnlcat + + +v3.11 (2011-07-25) +================== +Enhancements: +- A LD_PRELOAD-able library libHX_rtcheck.so that adds global state correctness + checks, was added. +- add a HXQUOTE_BASE64 to HX_strquote +Changes: +- HX_strquote will return NULL for unknown types now instead of just + returning the input pointer + + +v3.10.1 (2011-04-06) +==================== +Fixes: +- defs: BUILD_BUG_ON_EXPR had erroneously returned 1 + + +v3.10 (2011-04-05) +================== +Fixes: +- build: resolve autoconf-2.68 warnings +- format: do not split arguments in %(lower) and %(upper) +Changes: +- defs: add array type checking in ARRAY_SIZE +- opt: use non-zero sentinel marker +- string: make HX_getl more resilient against errors +Enhancements: +- defs: add BUILD_BUG_ON_EXPR +- format: provide a %(substr) function +- io: add HX_readlink (zero-terminating mc-output readlink) +- io: add HX_realpath (supports relative-path output) + + +v3.9.1 (2011-01-17) +=================== +Fixes: +- libHX/io.h was not copied on `make install`, which has been fixed + + +v3.9 (2011-01-15) +================= +Fixes: +- Added missing __cplusplus guards to libHX/io.h +- Added missing includes to libHX/string.h +- Use __typeof__ in includes +Changes: +- For filesystem/filehandle-related functions, io.h should now be included + in userspace programs instead of misc.h +- libHX.so is now built with a symvers map file +Enhancements: +- hxdirstamp: new development helper program for library users + (Note to distros: should be in libHX-devel; it is only used during builds) +- io: new functions HXio_full{read,write} + + +v3.8 (2010-12-01) +================= +This was supposed to go into 3.7 but I forgot to merge in time.. +Changes: +- hexdump: colorize characters 0x00 thru 0x1F in tty mode + + +v3.7 (2010-12-01) +================= +Changes: +- libxml_helper: redo xml_newnode to take a parent and value string +- list: unify naming of reverse-direction functions +- misc: HX_zveclen now returns unsigned from (previous: int) +- dir: HXdir functions now work with struct HXdir * instead of void * +Fixes: +- list: avoid potential shadow warning when using HXclist_{shift,pop} +Enhancements: +- doc: add doc/api.txt that lists the minimum required versions for symbols + + +v3.6 (2010-08-16) +================= +Fixed: +- bitmap: set/clear/test had no effect due to wrong type selection +- bitmap: avoid left-shift larger than type on 64-bit +- string: fixed buffer overflow in HX_split when too few fields were present + in the input + + +v3.5 (2010-08-01) +================= +Fixed: +- format2: failure to skip escaped char in "%(echo foo\ bar)" was corrected +- proc: properly check for HXPROC_STDx--HXPROC_STDx_NULL overlap +- strquote: do not cause allocation with invalid format numbers +Enhancements: +- format2: add the %(exec) function +- format2: add the %(shell) function +- format2: security feature for %(exec) and %(shell) +- format2: add the %(snl) function +- string: HX_strquote gained HXQUOTE_LDAPFLT (LDAP search filter) support +- string: HX_strquote gained HXQUOTE_LDAPRDN (LDAP relative DN) support +Changes: +- format1: removed older formatter in favor of format2 +- format2: add check for empty key +- format2: function-specific delimiters +- format2: do nest-counting even with normal parentheses +- format2: check for zero-argument function calls +- hashmap: do not needlessy change TID when no reshape was done +- string: HX_basename (the fast variant) now recognizes the root directory +- string: HX_basename now returns the trailing component with slashes + instead of everything after the last slash (which may have been nothing) + + +v3.4 (2010-04-03) +================= +Changes: +- add explicit initialize/deinitialize functions HX_init, HX_exit +Enhancements: +- add the HX_memmem function +- add the HXlist_empty function +- documentation updates: HXlist traversal + + +v3.3 (2010-01-20) +================= +Bug fixes: +- format: fix incorrect copying of non-expanded % strings +- proc: avoid calling close(-1) to not trip up valgrind +- shconfig: fix incorrect parsing of "\'" +- shconfig: fix incorrect processing of "\"\\\0BCD" +- shconfig: be more strict with syntax +Enhancements: +- deque: add HXdeque_genocide2 +- format2: new format string (make-style) support +- mc: add HXmc_zvecfree +- shconfig: add HX_shconfig_map to return all entries of a shconfig file +- rand: add HX_drand ('double'-type bounds and return value) +- rand: avoid some function call overhead in HX_irand + + +v3.2 (2009-10-11) +================= +Enhancements: +- opt: add HXTYPE_MCSTR for storing into hxmc_t *s +- string: add HX_strquote + + +v3.1 (2009-09-13) +================= +Enhancements: +- added HXbitmap_* functions +Fixes: +- mc: HXmc_strcpy produced a zero-length string when NULL was copied + + +v3.0.1 (2009-08-31) +=================== +Fixes: +- map: avoid underflow in value-based tree comparison + + +v3.0 (2009-08-27) +================= +Changes: +- automatically skip building testcases if C++ compiler not available + (reminder: libHX itself does not require a C++ compiler) +- arbtree: HXbtree was removed in favor of the new HXmap +- clist: clist.h moved into list.h +- format: HXformat_* now uses struct HXformat_map, + so that it does not tie itself to HXbtree +- mc: fix an alignment-induced overallocation +- rand: use faster modulo-based variant for numbers within RAND_MAX range +- rand: use libc rand() almost exclusively, only use /dev/urandom for seed +Enhancements: +- defs: add HXsizeof_member and HXtypeof_member +- map: new map API, with hash-based maps and classic rbtree-based maps +- time: add time delta functions (HX_diff_timeval/HX_diff_timespec) +Fixes: +- format: memory leaks fixes in HXformat + + +v2.9 (2009-07-11) +================= +Fixes: +- string: fixed number of fields and trailing NULL in HX_split4 +Enhancements: +- string: add HX_basename_exact + + +v2.8 (2009-07-01) +================= +Enhancements: +- HXproc now knows about HXPROC_NULL_*, which can be used to discard I/O +- HXproc: expressly prohibit HXPROC_STD* for HXproc_run_sync + + +v2.7 (2009-04-08) +================= +Fixes: +- install missing wx_helper.hpp + + +v2.6 (2009-03-28) +================= +Documentation: +- install documentation +- update project URLs +- add section about Miscellaneous functions +Changes: +- arbtree: add "flat view" operation +- misc: added HX_fls +- misc: make HX_time_compare otime-capable +- add wx_helper.hpp + + +v2.5 (2009-02-11) +================= +Fixes: +- proc: fix fd setup when the standard channels are already closed + + +v2.4 (2009-02-05) +================= +Documentation updates. A few internal cleanups, nothing user-visible. + + +v2.3 (2009-01-13) +================= +Fixes: +- defs: only use __builtin_offsetof with GCC >= 4 +- misc: fix time_compare on FreeBSD to actually use mtimespec +- mc: handle HXmc_length(NULL) +- dir: do not cause directory traversal to restart after 2^32 entries + + +v2.2 (2009-01-01) +================= +Fixes: +- defs/cast: avoid warning between conversion from type[] to type * +- defs/cast: add fallback defs for const_castN() +- arbtree: correctly set errno (to ENOENT) in HXbtree_find and _get +- string: document behavior details of HX_basename + +Changes: +- removed old HX_vfsystem + +Enhancements: +- defs: add HXSIZEOF_Z* +- defs: add HX_STRINGIFY +- proc: initial code +- string: add HX_split4 function + + +v2.1 (2008-12-23) +================= +- defs: fix bogus offsetof macro for non-GCC +- defs: add a pair of guarding parentheses in static_cast() +- doc: generate PDF file from LyX document + + +v2.0 (2008-12-23) +================= +Fixes: +- arbtree: reject illegal flag combinations +- arbtree: correctly set errno in HXbtree_find and HXbtree_get +- arbtree: do not return dangling pointer in HXbtree_del +- defs: add a working offsetof() and containerof() for C++ mode +- defs: use GCC's __builtin_offsetof +- defs: resolve warnings with signed_cast() for char* -> const char* conversions +- dir: HX_rrmdir: do not stop on error +- opt: fix interpretation of strings during conversion to bool + (all strings that were not empty and not 0 were interpreted as "true", + and this included the strings "no", "off" and "false", which should + actually have mapped to, well, "false".) +- rand: use autoconf to detect presence of unix functions +- string: replace HX_strrev implementation by one that does not allocate + + +New feature: Type-checking casts. +- defs: enable type-checking signed_cast() +- defs: add signed_cast<> for C++ mode +- defs: rewrite static_cast() to not cause -Wshadow warnings when nested +- defs: rewrite const_cast() to do type checking + (actually, const_cast1(), cosnt_cast2() and const_cast3() were introduced. + const_cast() is kept to not break program compilation.) + + +New misc code: +- ctype_helper: initial version +- deque: add struct HXdeque_node->char *sptr as a typed variant for ptr +- mc: add HXmc_setlen() +- opt: HXTYPE_BOOL and HXTYPE_NONE now take int * (instead of unsigned int *) + + +New arbtree code: +- arbtree: add struct HXbtree_node->char *skey and char *sdata +- arbtree: support arbitrary key/data duplication +- arbtree: add HXbtree_init2 + + +Removals: +- mc: remove HXmc_dup + [you can use HXmc_meminit(old, HXmc_length(old))] +- string: HX_strmid behavior changed for length=0 + [no more "remaining string", now returns a zero-length string] + + +v1.28 (2008-11-18) +================== +- add HXTYPE_{U,}INT{8,16,32,64} +- add includedir to cflags (libHX.pc) + + +v1.27 (2008-12-23) +================== +No functional changes for Linux platforms. + +- build: fixed compile errors with i586-mingw32msvc cross compile +- regenerated the Makefile.in files in the tarball with an updated + version of automake-tranquility so that they are now + POSIX-compliant and work with BSD make + + +v1.26 (2008-10-12) +================== +- add HX_hexdump() for debugging within programs +- fix double free in the error path of HX_getopt() when a long option preceded + a short option of which the latter had problems (i.e. missing argument) +- add actual typechecking to signed_cast() +- add typechecking to static_cast(), + (but this is normally disabled to avoid compile interruption) + + +v1.25 (2008-09-07) +================== +- install missing misc.h +- HXmc: pointer was not automatically updated after hmc_trunc() +- HXmc: rename functions and put them into the HX* namespace (API change) +- HXmc: make code resistant to memory allocation failure + + +v1.23 (2008-09-02) +================== +- code cleanup: misc.h has been split off libHX.h +- add defs.h + + +v1.22 (2008-07-16) +================== +- need to use lstat() on directory operations such as mkdir and rrmdir +- use RTLD_LAZY when opening dynamic libraries +- add libxml_helper + + +v1.18 (2008-06-10) +================== +- implement reverse iterating through HXlist +- remove deprecated HXlist_init_head() and HXclist_init_head() + [replaced by HXlist_init() and HXclist_init()] +- added HX_ffs() + + +v1.17 (2008-05-08) +================== +- HXlist: added HXlist_for_each_safe, HXlist_for_each_entry_safe +- HXclist: added HXclist_del + + +v1.15 (2008-04-04) +================== +- HXformat: add %(ifempty) and %(ifnempty) tags +- libHX.h: split into {arbtree,deque,option,string}.h (and libHX.h) +- Add inline-doubly-linked-list data structures + + +v1.10.2 (2007-12-06) +==================== +- [r105]: pass up NULL from memory allocation error +- [r108]: only return success on EEXIST when HXF_KEEP was given +- [r112]: HX_dirname() incorrectly computed the path + + +v1.10.1 (2007-09-17) +==================== +- [r96]: Fix output of line-wrapped help text +- tarball: in libHX 1.10.0 I forgot to provide the configure - sorry + (but you could regenerate it using ./autogen.sh if you have autotools) |