Home | Back


libHX 2.2 (January 01 2009)
===========================
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

Features:
- defs: add HXSIZEOF_Z*
- defs: add HX_STRINGIFY
- proc: initial code
- string: add HX_split4 function


libHX 2.1 (December 23 2008)
============================
- 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

- defs: add HX_STRINGIFY


libHX 2.0 (December 23 2008)
============================
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
- mc: change first argument type for HXmc_dup()
  [compatible change, no ABI version bump]
- 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]


libHX 1.28 (November 18 2008)
=============================
- add HXTYPE_{U,}INT{8,16,32,64}
- add includedir to cflags (libHX.pc)


libHX 1.27 (October 23 2008)
============================
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


libHX 1.26 (October 12 2008)
============================
- 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)


libHX 1.25 (September 07 2008)
==============================
- 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: HXmc_strcpy(hxmc, NULL) will no longer free the mc but act like
  HXmc_strcpy(hxmc, "")
- HXmc: make code resistant to memory allocation failure


libHX 1.23 (September 02 2008)
==============================
- code cleanup: misc.h has been split off libHX.h
- add defs.h


libHX 1.22 (July 16 2008)
=========================
- need to use lstat() on directory operations such as mkdir and rrmdir
- use RTLD_LAZY when opening dynamic libraries
- add libxml_helper


libHX 1.18 (June 10 2008)
=========================
- implement reverse iterating through HXlist
- remove deprecated HXlist_init_head() and HXclist_init_head()
  [replaced by HXlist_init() and HXclist_init()]
- added HX_ffs()


libHX 1.17 (May 08 2008)
========================
- HXlist: added HXlist_for_each_safe, HXlist_for_each_entry_safe
- HXclist: added HXclist_del


libHX 1.15 (April 04 2008)
==========================
- 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


libHX 1.10.2 (December 06 2007)
===============================
- [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


libHX 1.10.1 (September 17 2007)
================================
- [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)