*****************************************************************************
* Version 2.5                                                   25 Nov 2004 *
*****************************************************************************

Additions
=========

* New function: v_freeze_file(), which freezes Vars objects to a file.

* New macros: vi_read_image() and vi_write_image(), which read and write
  image files but guess the format from the file suffix.

* New macros: vi_gray_index() and vi_rgb_index(), which return an index
  into image data given the image width and pixel value.

* New getopts flag: V_OPT_RANGE, which accepts a numeric list spec, and a
  new function vl_parse_list() to parse such a spec into a list of flags.

* New functions to deal with Vars internal exceptions.

* New set of macros to declare and add to static vbuffers.

* New set of macros to allocate and deallocate multidimensional arrays.

* New macros: v_isdir(), v_islink(), V_LIMIT().

* New macro: V_PATHSEP, which is the path separator.

* New macro: V_ALLOCA_FMT(), which allocates a temporary string inside of a
  varargs function.

* The v_tempfile() function now works on Windoze.

* There's now a Python interface to most Vars functions.

* More Visual C++ fixes.

Changes
=======

* The vb_vprintf() function has been removed, since it doesn't work in all
  cases.

*****************************************************************************
* Version 2.4                                                   15 Jul 2004 *
*****************************************************************************

Changes
=======

* Removed obscure builtin math functions from parsers, since they were
  never used and aren't available on all systems.

* Rearranged sources to build cleanly with Visual C++.

*****************************************************************************
* Version 2.3                                                   31 Mar 2004 *
*****************************************************************************

Additions
=========

* Each object that supports iteration (arrays, lists, hashes and functions)
  now has a check at the start of its foreach() macro loop to see if nested
  iteration is being done.  If so, a fatal error results.

* New functions: vb_copy(), vr_copy() and vt_copy_with().

Changes
=======

* The v_copy() function no longer requires a temporary file.  It now gives
  a fatal error on unknown pointer types, instead of returning NULL.  The
  old version of v_copy() is now called v_fcopy(), which may go away in
  future.

* Now supports 64-bit machines.

Bug fixes
=========

* Doing interpolation on a spline function after using vf_set_cycle()
  caused a crash.  This is now fixed.

* The byte-swap flag is no longer clobbered by deep-copy operations.

*****************************************************************************
* Version 2.2                                                   12 Mar 2004 *
*****************************************************************************

Additions
=========

* The parser syntax has been expanded to include boolean tests: equality,
  inequality, greater than, and, or, etc.

* New function interpolation feature: a function can be marked 'cyclic', so
  that interpolation values wrap around at a certain point.  The function
  vf_set_cycle() controls wraparound.

* New vector function: vv_create_vector(), which creates a vector from
  explicit values.

* New macro: V_STRSUB, which checks for a substring in a string.

*****************************************************************************
* Version 2.1                                                    4 Feb 2004 *
*****************************************************************************

Additions
=========

* New function: vl_procinfo(), which returns information about running
  processes.

Changes
=======

* The default delimiters for the list splitting functions now include the
  '\r' character.

* The v_tempfile() function now creates temporary files in /tmp (or TMPDIR,
  if that is set).

Bug fixes
=========

* vi_get_rgb() now creates the RGB data if it doesn't exist.

*****************************************************************************
* Version 2.0                                                   10 Dec 2003 *
*****************************************************************************

Additions
=========

* New set of functions to deal with RGB, RGBA and grayscale images.

* New functions: v_compress() and v_uncompress(), which use zlib to do data
  compression.

* New function interpolation type: extrapolate.  This is like linear, but
  extrapolates values that are out of range.

* New function: v_tempfile(), which returns the name of a unique temporary
  file.

* New macro: V_ALLOCA(), which allocates memory on the stack.

* There's a new vars-config script, which prints the appropriate
  compilation and link flags for use by Makefiles.

Changes
=======

* Documentation is now autogenerated by Doxygen, in HTML format.  The GNU
  Info file is discontinued.

Bug fixes
=========

* Functions are now updated in vf_minimum() and vf_maximum(), so that the
  returned values are always correct.

* Matrix freeze format has been changed so that the optional size doesn't
  clash with reference IDs.

* Fixed obscure memory bug in vl_combine().

*****************************************************************************
* Version 1.9                                                   30 Apr 2003 *
*****************************************************************************

Additions
=========

* New functions: vf_differential() and vf_integral(), which numerically
  differentiate and integrate a function, respectively.

Changes
=======

* Buffers are now always flushed before reading via vb_fscan().  The
  function vb_flush() is now deprecated.

Bug fixes
=========

* A bug in the memory reallocation of matrices has been fixed.

* A bug in the reporting of parser errors has been fixed.

* The vr_grep() function now works as advertised, instead of matching
  everything.

*****************************************************************************
* Version 1.8                                                   10 Feb 2003 *
*****************************************************************************

Additions
=========

* New function: vb_vprintf(), which is similar to vb_printf() but prints
  from a va_list structure.

* New function: v_memerr_hook(), which declares a memory error hook
  function to be called instead of the usual v_fatal().

* New macro: V_STRNEQ(), which tests for string inequality.

Changes
=======

* Updated to use latest autoconf/automake.

* Removed dmalloc support (valgrind is much better).

*****************************************************************************
* Version 1.7                                                   23 May 2002 *
*****************************************************************************

Additions
=========

* New sets of functions to efficiently deal with vectors, arrays and
  matrices.

* Two new graph functions: vg_node_list() and vg_node_links().

Bug fixes
=========

* Minor efficiency fix to function interpolation.

*****************************************************************************
* Version 1.6                                                   16 May 2001 *
*****************************************************************************

Additions
=========

* Added support for dmalloc debugging.

* Now uses libtool to support shared libraries.

*****************************************************************************
* Version 1.5                                                   27 Sep 2000 *
*****************************************************************************

Additions
=========

* New list function: vl_join_text().

* Freeze/thaw functions now read DOSified files.

Bug fixes
=========

* vs_type() now returns V_NULL if passed NULL.

*****************************************************************************
* Version 1.4                                                   26 Jun 2000 *
*****************************************************************************

Additions
=========

* Graphs and queues can now be frozen and thawed.

* New system function: v_parse_date().

*****************************************************************************
* Version 1.3                                                    2 Feb 2000 *
*****************************************************************************

Additions
=========

* Binary I/O now deals with byte-swapping across machines.

* New interpolation functions: vf_get_point(), vf_delete_point(),
  vf_empty(), vf_points_x(), vf_points_fx().

* New copying function: v_copy(), which can make an exact copy of a nested
  data structure.

* New hash function: vh_entry_count().

* New system function: v_lock().

* New freeze/thaw functions, which can save and restore data structures in
  editable ASCII format.

* Now has a regression test suite.

* Various extra files now distributed in the 'contrib' directory.

* New hook function for fatal errors.

Changes
=======

* Old compatibility aliases have been removed.

Bug fixes
=========

* A few memory glitches have been removed.

* Made v_fread() recover from errors better.

* Fixed bug in v_filename() -- didn't remove the initial /.

* Fixed bug in vh_values() -- wasn't copying the scalar values, but only
  referring to them.

* Fixed bug in vf_point_count() -- wasn't updating function before return.

* Fixed bug in vf_get_range() -- returned maximum value was the same as the
  minimum value.

* Fixed bug in vl_search(), when the exact-match flag is set (returned
  V_NOTFOUND, instead of an exact match).

* Fixed bug in vf_value_spline() -- wasn't always initialising the spline
  data.

* Debugging I/O output for variables is now triggered by V_DBG_IO, instead
  of V_DBG_INFO (like it should've been).

*****************************************************************************
* Version 1.2                                                   21 Apr 1999 *
*****************************************************************************

Changes
=======

* Vars binary data file format now supports more than 32768 entries.

* Changed v_read_with() to v_open_with(), which uses regexps instead of
  suffixes.

* vs_sgetref() now returns empty string when passed NULL, so that other
  macros can work properly.

* vl_get() now doesn't create intermediate 'undef' values when getting
  out-of-range entries.

Bug fixes
=========

* vl_splice() bug fixed, stopping spurious 'undef' entries being appended
  to lists.

*****************************************************************************
* Version 1.1                                                   27 Jan 1999 *
*****************************************************************************

Additions
=========

* New interpolation functions, with linear, Lagrange and spline
  interpolation supported.

* New system function: v_test().

* New parser function: vp_error_undef().

* New graph functions: vg_path_length(), vg_path_exists(), vg_path_cache(),
  vg_use_cache(), vg_path_info(), vg_caching().  Renamed vg_find_path() to
  vg_path_list().

* New scalar function: vs_sstore_len().

* Library now tries to free() all its internally malloc()ed memory, so that
  memory monitoring utilities (e.g. dmalloc) don't report spurious things.

Changes
=======

* Removed GA stuff -- unused, and it doesn't really work properly.

* Removed drem() from parser functions.  Solaris hasn't got it.

* Now uses GNU autoconf/automake/libtool for installation.

Bug fixes
=========

* Fixed bug in vp_eval() -- strings with no final newline gave parse
  errors.

* Fixed bug in vg_tsort() -- cycle check didn't work properly.

* Fixed bug in vl_reverse() -- wasn't reversing the list!

* Fixed bugs in vl_match() and vl_reverse() -- wasn't copying the scalar
  values.

* Fixed bug in v_usage() -- core dumped if no options were declared.

* Fixed RE_DUP_MAX duplication problem in FreeBSD.

* Fixed memory leak in vl_destroy().

* Fixed bug in vl_split_string() -- was modifying possible read-only string
  argument.

*****************************************************************************
* Version 1.0                                                   11 Jun 1998 *
*****************************************************************************

Initial version.
