summaryrefslogtreecommitdiff
path: root/doc/changelog.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/changelog.txt')
-rw-r--r--doc/changelog.txt535
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)