Changes with APR-ICONV 1.1.1

  *) Fix syntax error in 1.1.0 candidate.  [Paul Querna] 

Changes with APR-ICONV 1.1.0

  *) Correctly resolve to APR-1.0, never APR-0.9 in ./buildconf
     [William Rowe]

  *) APR_ICONV1_PATH distinguishes between our apr-iconv 0.9 and 1.x
     flavors (the pool arguments to several internal functions changed
     in 1.0, so the loadable charset modules are not binary compatible.)
     To maintain APR-iconv 1.0 compatibility, first APR_ICONV1 is used,
     if it is set then the older 0.9 flavor APR_ICONV_PATH won't be 
     searched.  apr-iconv 0.9 and 1.0 will only coexist if both the
     APR_ICONV1_PATH and APR_ICONV_PATH variables are both set to their
     respective charset directories.  [William Rowe]

Changes with APR-ICONV 1.0.2

  *) Fix libapriconv.rc for Win32 builds [William Rowe, Justin Erenkrantz]

Changes with APR-ICONV 1.0.1

Changes with APR-ICONV 1.0.0

  *) Add the possiblity of a DESTDIR prefix to Makefile.in to make it
     consistent with the behaviour of apr and apr-util. [Graham Leggett]

Changes with APR-ICONV 0.9.5

Changes with APR-ICONV 0.9.4

  *) Add -v option to iconv program. [Justin Erenkrantz]

  *) Add api_version.h. [Justin Erenkrantz]

  *) A fourth pass at a build system. [Justin Erenkrantz]

  *) A third pass at a build system. [Justin Erenkrantz]

Changes with APR-ICONV 0.9.3

Changes with APR-ICONV 0.9.2

  *) A second pass at a working build system - now builds on linux,
     some namespace protection added.
     [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]

  *) A first blush at a working build system.
     [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]

  *) First set of changes for APR compatibility (eliminated __inline).
     [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]

  *) Source moved from the apr library into it's own repository
     due to size concerns.  Still requires portability overhaul.
