This NEWS file records noteworthy changes, very tersely.
See the manual for detailed information.

  Copyright 2010-2022 Jose E. Marchesi.

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.

 Version 1.9 (16 April 2022)
* Utilities:
  . Fix bug preventing recins and recset to work when /tmp is
    in a different mount point.
  . Fix a segfault that occured when csv2rec was presented with
    invalid data.
  . Fix long option name for -j/--join.
* Format:
  . New special field %singular to mark fields whose contents
    must be unique in the containing record set.
* librec:
  . Fix a segmentation fault when there are blank characters before
    the list of fields in %type fields.
* Documentation:
  . New manual chapter discussing the ob-rec.el major mode.
  . Do not claim that recins creates non-existent files.
* Other fixes:
  . CVE-2021-46019
  . CVE-2021-46022
  . CVE-2021-46022
  . gnulib updated.

 Version 1.8 (3 January 2019)
* Utilities:
  . Fix the build of readrec with recent bash headers.
* librec:
  . Fix evaluation of sexes containing #NAME expressions.
  . Make numeric results from aggregated functions signed.
* readred:
  . readrec --help now shows the help message and returns,
    instead of waiting for input.
* Emacs mode:
  . rec-mode.el now supports case-insensitive searches.
  . rec-mode.el now defines it's own faces.
  . ob-rec.el was switched to lexical binding to satisfy later
    org-mode versions.
* It is now possible to run the testsuite in parallel.
* Other fixes:
  . gnulib updated.
  . GNU/Hurd build fixed.
  . Aggregate functions now work properly in Aarch64 and powerpc.

 Version 1.7 (25 March 2014)
* Utilities:
  . rec2csv now supports a -d option to change the delimiter
    character in CSV files.
  . It is now possible to specify several recfiles in the
    command line containing anonymous records.
* Format:
  . Support for restricting the fields that can appear in records
    with the new %allowed special field.
  . If a tab separates a field name and a field value is now
    ignored and not considered part of the field value.
* librec:
  . The current version of the library is now 1.
* Emacs mode:
  . It now possible to jump several records while navigating
    using a prefix argument to the next/previous commands.
* Documentation:
  . The examples in the manual have been improved, and well as many
    other aspects: formatting, English, etc.  Special thanks to Karl
    Berry for pointing out the problems and suggesting solutions.
* Internal cleanup and code factorization.
* Many, many, many bug fixes :D

 Version 1.6 (03 November 2013)
* Utilities:
  . Support for joins and foreign keys.
  . Grouping records by one or more fields.
  . Sorting recors by several fields.
  . Specifying rewrite rules in field expressions.
  . Writing field values in rows.
  . Dot-notation in selection expressions.
  . Support for the >= and <= operators in selection expressions.
  . Aggregated functions: sum, min, max, avg.
  . New bash loadable builtin `readrec'.
* Format:
  . New UUID field type.
  . User provided arbitrary constraints with %constraint.
  . Pre-defined constants MIN and MAX can now be used in ranges.
* librec:
  . New high-level API: rec_db_query, rec_db_insert, rec_db_delete and
    rec_db_set.
  . Documentation in the rec.h header file extended and improved.
* Emacs mode:
  . Texinfo manual describing the usage of rec-mode.
  . Support for a mode hook.
  . Comments are now supported in records.
  . add-change-log-entry in a recfile now does the right thing.
  . Commands for copying/killing fields and records.
  . Support for undo in navigation mode.
  . Field folding.
  . Editing methods for the several field types.
  . Statistics.
* Documentation:
  . The user manual has been restructured and expanded.
* Internal cleanup and code factorization.
* Many, many, many bug fixes :D

 Version 1.5 (13 January 2012)
* The utilities will now ask interactively for a password if it was
  not provided with the -s command line option.  This avoids security
  problems related to shell history files.
* Support for octal and hexadecimal numbers has been added.  They can
  be used in both the records and selection expressions.
* It is now possible to select a given number of random records in
  many of the utilities using the -m command line option.
* The -n option now accepts a list of indexes, supporting ranges.
* The new -U (uniq) option for recsel removes duplicated fields in the
  output records.
* The new -q (quick) option allows to quickly search for the desired
  record without having to provide a complete selection expression.
* Auto generated fields are now considered integers by default.  This
  avoids repetitive patterns in record descriptors involving %auto and
  %type.
* Tab characters are now allowed in blank lines betwwen records.
* The API in rec.h is now better documented with comments, and
  improved.
* recfix now exits with an error status if there is a parse error in
  some input file.
* The usage of the internal data structures has been _vastly_
  improved, resulting in a much faster operation.
* Internal cleanup and code factorization.
* Many, many, many bug fixes :D

 Version 1.4 (03 November 2011)
* Support for encryption with the new %confidential special field.
* Support for named types with the new %typedef special field.
* Support for sorting with the new %sort special field.
* Recutils support for org-babel is now included in the distribution
  as ob-rec.el.  It allows to read rec data into org documents in both
  raw and table formats.
* It is now possible to use double quotes for delimiting string
  literals in selection expressions, as well as single quotes.
  Unescapted newline characters are also supported.
* The manual has been vastly improved.
* recfix now supports several operations: check, sort, encrypt and
  decrypt.
* recins now generates parseable locale independent dates when
  generating time-stamps in auto-fields.
* Lots of bug fixes.

 Version 1.3 (11 February 2011)
* A quite bad (and embarrassing) bug introduced in 1.2 has been
  fixed.  The bug was causing recins, recdel and recset to report
  random integrity failures, due to a uninitialized variable.
* New special field %size, that allows to define constraints in the
  size of record sets.
* Several fixes in the user manual.
* Little portability issue that prevented one of the tests to compile
  in macos x has been fixed.
* Translations updates.

 Version 1.2 (4 February 2011)
* New utility rec2csv, to export rec data to csv files.
* Support for auto-incremented fields and timestamps with the new
  %auto field in record descriptors.
* Support for comments in enum type descriptions.
* recset now supports a new "set or add field" operation, implementing
  the common case of setting the value of a field in case it exists,
  or else add it to the record.
* The flavor of regular expressions accepted in both selection
  expressions and type descriptions is now documented in the user
  manual.
* Translations for German, Finnish, Swedish and Dutch.
* recdel now performs an integrity check before to complete the
  deletion.
* The utilities no longer "expand" the contents of remote descriptors
  in the local ones.
* recset and recins no longer destroy the permissions of the rec file
  that is being modified.
* Many fixes in the documentation.
* Lots of bug fixes.

 Version 1.1 (24 December 2010)
* New utility recfmt, to format records based on templates.
* Improvements in selection expressions:
  . Support ranges in field subscripts.
  . New date operators: before (<<), after (>>) and sametime (==).
  . New ternary conditional operator (?:).
  . New string concatenation operator (&).
* libcsv is now embedded in the source distribution, so it is no
  longer required to have it installed to build csv2rec.
* Portability problems fixed.  The programs have been tested in the
  following systems:
  . GNU/Linux
  . FreeBSD 6.4
  . MacOS X
  . mingw32
  . Solaris 8
  . AIX 5.1
  . HP-UX 11.00
  . IRIX 6.5
  . Tru64 (OSF/1 5.1)
  . Cygwin 1.7
* Lots of bug fixes.

 Version 1.0 (3 December 2010)
* Initial release.
  . User manual.
  . Library (librec).
  . Utilities: recinf, recsel, recins, recdel, recset, recfix, csv2rec,
    mdb2rec.
  . Experimental Emacs mode (rec-mode.el).
