# BIBTOOL Change Log

### Gerd Neugebauer

###

## Release 2.68 [April 13, 2020]

- Initialization bug in key.c fixed which came up when using a title format without setting a fmt parameter.
- Nasty bug in the memory management fixed which could have appeared during extracting by aux file.
- Casting error and incomplete path in rewrite.c fixed.
- Handling of extracting by aux file improved.
- Record extended by attribute `lineno`. This attribute carries the line number of the initiating .
- The format of the error messages has been slightly streamlined. Double spaces are avoided; two colons in one message are avoided.
- The format of the messages of `check_rule` include file and line number.
- Warning for double fields added.
- The empty output file is used to signal that the output should be suppressed.
- The resources `check.warning.rule` and `check.error.rule` have been introduced to allow semantic checks to be classified as warning or error.
- The behaviour of the resource `check.double` has been generalized. The requirement that double entries to be adjacent has been dropped. This has the impact that the processing is slightly slower.
- New resource file `unique.field` intruduced. With this resource it is possible to specify additional unique constraints for fields. If different records have the same value for one of those fields then a warning is issued.
- Static library renamed from libbib.a to libbibtool.a.
- Environment variables added to reference card.
- New source files check.c and check.h intruduced.

## Release 2.67 [January 14, 2017]

- Treatment of empty values for key separators fixed.
- Resource `parse.exit.on.error` added to force a stop when a parsing error is encountered. The default is false, i.e. an error recovery is attempted.
- Error messages for parsing resource arguments improved. The usual pointer is used there as well.
- Documentation extended to cover the exit codes of BIBTOOL.
- Some updates in the documentation files for the new TEX live: removing old font commands.

## Release 2.66 [October 30, 2016]

- lib/biblatex.rsc fixed.
- Resource `keep.field` added to get rid of unknown fields.
- Internal memory management rewritten to get rid of unused memory some time in the future. For now just the C code is changed incompatibly if the macro `COMPLEX_SYMBOL` is defined upon compilation.
- Refactoring applied to make use of the C99 feature stdbool.h.

## Release 2.65 [June 14, 2016]

- Hash function and value storing for field name mapping during xref expansion fixed.

## Release 2.64 [June 6, 2016]

- New resource `expand.xdata` introduced to control the expansion of xdata references.
- New resource `crossref.map` introduced to add a field name mapping for cross-refs.
- New resource `clear.crossref.map` introduced to clear the field name mapping for cross-refs.
- io.c introduced to contain input and output file parameters.
- Documentation switched to LuaLATEX.

## Release 2.63 [January 16, 2016]

- Omission of the previous release fixed.

## Release 2.62 [January 16, 2016]

- Combined rewrite and delete bug fixed.
- Minor improvements for the distribution.
- README renamed to README.md to comply with the conventions of the GitHub repository.

## Release 2.61 [July 12, 2015]

- New resource `rename.field` introduced to conditionally rename a field.
- Typedef `String` for `Uchar*` and used across.
- Duplicate file doc/bibtool.tex in the distribution tar ball eliminated.

## Release 2.60 [June 9, 2015]

- The field name and other symbols may start with any allowed character. Non-alpha characters at the beginning are treated as warning only.

## Release 2.59 [March 14, 2015]

- Fix in print.c to omit an empty line after overflowing lines.
- Fix in print.c to avoid an overflow situation.

## Release 2.58 [February 9, 2015]

- Library tex_def.rsc extended with the primitives `\i` and `\j`.
- The source tar is signed. The key of the author can be obtained from `pgp.mit.edu`.
- `Test` renamed to `test`.

## Release 2.57 [April 18, 2014]

- Segfault in deTeX fixed.
- Compiler warnings silenced.

## Release 2.56 [April 14, 2014]

- Disambiguating numbers adapted to fit to documentation.
- Configuration of regex fixed to work on Linux.
- Documentation typos fixed.
- Signed characters fro translation tables changed to unsigned.
- Autoconf configuration improved.

## Release 2.55 [April 15, 2012]

- Library biblatex.rsc added. It contains capitalizations of fields used in bibLATEX.
- Fix for a misbehavior when selecting entries according to an aux file with deeply nested @strings.

## Release 2.54 [February 21, 2012]

- Command line parameter `-V` documented.
- Resource `key.make.alias` added to create new `@ALIAS` records for any newly generated key.
- Resource `apply.alias` added to expand the `@ALIAS` records.
- Resource `apply.include` added to expand the `@INCLUDE` records.
- Resource `apply.modify` added to expand the `@MODIFY` records.
- Error message for `-o` without parameter added.
- `@ALIAS` and `@INCLUDE` records where not printed. This has been fixed.
- A test suite for BIBTOOL has been integrated. It requires Perl to be present on the system on which the tests should be run.

## Release 2.53 [September 25, 2011]

- In `tex.define` spaces before the = are ignored instead of leading to unwanted definitions.
- An initialization error showed up on MacOS. This has been fixed.
- The prepared makefiles for various operating systems missed an entry for `crossref.[cho]`.
- Typo in help text and copyright year fixed.

## Release 2.52 [June 6, 2011]

- A few incompatibilities with signed and unsigned characters which showed up on MacOS only have been fixed.
- A few compiler warnings have been fixed.

## Release 2.51 [May 12, 2010]

- Bug fix in names.c: The classification of name parts erroneously has used a wrong translation under certain circumstances.

## Release 2.50 [May 12, 2010]

- Bug fix in names.c: The classification of name parts erroneously has used a wrong translation under certain circumstances.
- Bug fix in key.c: The classification of name parts erroneously has considered, to be a first name under certain circumstances. This has been improved.
- Improvement in names.c and key.c concerning printing in debug mode.

## Release 2.49 [February 8, 2007]

- New resource `expand.crossref` introduced. This resource enables the expansion of fields inherited via the cross-ref mechanism.
- Bug fix in names.c: The classification of name parts erroneously has considered the initials V., I., and X. to be Roman numerals belonging to the jr part under special circumstances. This has been improved.
- Name formatting now uses a fractional part to restrict the number of name parts considered.
- New resource `expand.crossref` introduced. This resource enables the expansion of fields inherited via the cross-ref mechanism.
- Bug fix in print.c: Some national characters have been lost. It was necessary to use an unsigned character as elsewhere.

## Release 2.48 [August 6, 2004]

- Resource `print.terminal.comma` introduced. This resource can be used to request commas after the last record even if it contradicts the rules of BIB TEX.
- makefile.in for configure extended to support the variable `INSTALLPREFIX` to be prepended to installation directories.
- Bug fix in main.c: Some compilers didn't like the method true().
- Bug fix for kpathsea under Suse 9.1.
- Bug fixes in expansion.
- BIBTCL has been taken out of the default making since it has caused troubles on several machines.
- The printing of Strings honors now the dependencies that BIB TEX relies on. This has been accomplished by a change in the printing routine for databases. No new resource is involved.
- Minor modification to the C API.
- Feature: When searching for an aux file and none is found then `.aux` is appended and a reopen is tried with the new name.
- Feature: When `expand.macros` is set the macros will be suppressed automatically. No need to set `print.entry.types` any more.
- The boolean resource `select.crossrefs` has been introduced. This resource can be used to force cross-referenced entries for selected entries to be included in the output.
- Feature: deleted entries are not reported as ,,written'' by the statistics any more.
- Bug fix: Bug in extracting by aux file. Crossrefed entries where sometimes ignored.
- Bug fix: Bug in parsing of backslashes in resources has been fixed. Unfortunately this bug appeared in one of the examples in the manual.
- Bug fix: Bug in expansion introduced in 2.47 has been fixed. An error occurred when expanding macros.
- The resource loading with `resource` now issues a warning when the file could not be found.
- The meaning of post for the format specifiers %d and %D has been documented.
- Bug fix: BIBTOOL has misinterpreted pre for the format specifier %t and %T due to an over-optimization. This has been fixed.
- Bug fix: BIBTOOL has ignored `preserve.key.case` for cross-referenced keys. This has been fixed.
- Bug fix: Some compilers don't like it if static strings are modified. Thus I have made them dynamic.
- Experimental feature `regexp.syntax` added.

## Release 2.47 [January 16, 2003]

- Bug fix: BIBTOOL looped when parsing unbalanced blocks due to a too short type in parse.c. This has been fixed and some error messages have been improved.
- Some additions to the documentation due to Patrice Dumas.
- Resource `fmt.word.separator` introduced. This resource can be used to mark additional characters to be considered as word separators.
- Bug fix: BIBTOOL looped when a malformed string of some kind was given to expansion. This has been fixed in `expand()`.
- Bug fix: BIBTOOL crashed when called with empty format string due to an uninitialized variable. This has been fixed in `parse_fmt()`.
- Bug fix: Documentation bug fixed. The default for `sort.key` should be `%s($key)`. This has been fixed in Lib/default.rsc and the manual.

## Release 2.46 [February 12 2002]

- Resource `sort.cased` introduced to allow the sorting order to take advantage of upper and lower case characters. The default is false which is the previous behavior.

## Release 2.45 [October 22 2001]

- Resource `suppress.initial.newline` introduced to suppress the empty line at the beginning of the output file.
- Bug fix: Some C compilers don't like the initialization of static variables with `stderr`. The code has been moved to a initialization routine.
- Bug fix: `-R` disables the reading of the resource at the end of processing of command line arguments.
- Bug fix: Parsing of select arguments with backslashes were not treated correctly.
- Minor documentation bugs fixed.

## Release 2.44 [April 7 1999]

- Key generation fixed to expand BIB TEX strings. The current behavior is likely to change again in a future release.
- Updated to work with kpathsea 3.1 (partially).
- Searching for the kpathsea library is now the default in the configure script. Thus it is possible to simply place BIBTOOL in a web2c tree. This only requires that the directory is named bibtool and bibtool is added to the file lists in Makefile, configure, and configure.in of the web2c main directory.
- `check.double` message improved.
- Initialization bug for kpathsea fixed.
- Bug fix for cross referencing: normalization to lowercase was missing twice.
- Bug fix in the TEX reading routines: spaces after active characters are not ignored. All characters are treated as unsigned. This seems to be preferable for extended ASCII characters.
- Key generation routines adapted to work with multiple databases. The symbol table is no longer abused to store information for the key generation. This may slow down the key generation a little bit. If it turns out to be a problem I will use a better algorithm.
- Minor modifications in makefiles.
- The configuration of BIBTCL is now done automatically.
- New data type introduced: `Uchar` will hold Unicode characters in a future release. I just have to find regexp routines to work with UTF-8.
- Extraction extended to allow negation of the regular expression and string matching result. New resources `select.non` and `select.by.non.string` to specify such a request. C function `add_extract()` extended to cover negated values and the former function `add_s_extract()`.

## Release 2.43 []

- Additional library `braces.rsc` to translate quotes as field delimiters into braces.
- `bibtool -h` reports now also the library path. This can be used by external scripts to find the installation directory of BIBTOOL.
- Bug fix: comments are no longer crippled.
- Minor bug fix in rewriting code: empty pattern works again.
- The regression tests have revealed a bug fix in the key generation code. I am not aware of the change that has let to this effect but the new behavior is correct. Before, the macro expansion was suppressed under certain circumstances.
- BIBTCL: `bibtool count db` added.
- BIBTCL: `bibtool missing` ignores the case of the field name.
- BIBTCL: consistently renaming `record` to `entry`.
- Minor modifications of makefile to correctly generate libbib.a and install the header files.
- Reorganization of the code; header files are now in their own directory. I don't have the appropriate information for some DOS compilers yet. Thus minor modifications in the makefile might be required.
- C function `entry_statistics()` removed. The functionality can be modeled with the new C function `db_count()`. This takes into account that several databases can be managed internally.
- C function `save_word()` renamed to `add_word()`. `list_words()` removed since it has been used for debugging only.
- EntryTypes implementation changed. The API doesn't change. Data type `StringTab` is now local to symbols.c. Data type `Rule` is now local to rewrite.c.

## Release 2.42 []

- New selection operation introduced. The selection with regular expressions is complemented by a selection according to simple sub-strings. This selection is initiated with the new resource `select.string` which takes the same arguments as the resource `select` but does comparison for a sub-string instead of regular expression matching. The value of `select.case.sensitive` is taken into account but at run-time and not at specification time. Certain characters can be ignored for the comparison. Those are contained in the new string resource `select.ignored`.
- New resource `print.entry.types` introduced. This resource controls the entry types and the order in which they are printed. In fact the macro printing facility is obsolete with this new resource.
- New resource `clear.ignored.words` introduced. In fact this is a function which deletes all ignored words. Thus it is possible to determine all ignored words at run-time-even the compiled in defaults.
- Bug fixed: selection honors the resource `print.all.strings` now.
- Makefiles slightly improved. Less manual adaption. Installation of all library files - even on Solaris.
- Name formatting omission fixed: Translation and length are taken into account correctly. The new name format sign * has been introduced to denote the inheritance of the translation from the calling format.
- Restriction relaxed. Now it is possible to declare up to MAXINT entry types and not only 4096. The `Record` data structure and the associated macros have been modified slightly to accomplish this.
- Bug in the aux file selection mechanism fixed. This bug caused some cross referenced entries to be missing under special circumstances.
- Bug in key.c fixed which caused a crash because an initialization was missing under certain circumstances.
- Make target libbib.a added. This is known to work on UNIX. I would like to get feedback for other systems.
- Minor bug in names.c fixed.
- Minor bug in print.c fixed. `print.wide.equal` does not have exceptions any more.
- Minor bug in print.c fixed. Deleted fields are treated better.
- Bug in database.c fixed which caused macro expansion to fail under certain circumstances.
- BIBTCL: `bibtool format` allows to use the full power of format specifications.
- BIBTCL: `bibtool sprint` added which returns the formatted string representation of an entry.
- BIBTCL: Bug in `$rec set \$key ...` fixed.
- Minor changes in the C interface (Just wait for the compiler or linker to complain about different arguments:-).

## Release 2.41 []

- New Boolean resource `print.equal.right` which controls whether the = in normal entries is aligned right or left.
- New Boolean `resource print.wide.equal` which controls whether the equal sign is surrounded by spaces even if the alignment forces a narrower layout.
- New Boolean resource `print.comma.at.end` which control-ls whether the comma between fields is printed at the end or at the beginning of a field/value pair.
- New Boolean resource `print.deleted.entries` which controls the treatment of deleted entries. If this resource is true then delete entries are put as comments into the output. This is the old behavior and thus it is the default.
- Pseudo field `sortkey` added.
- Pseudo field `source` added which contains the file name the record has been read from or the empty string if this can not be determined.
- Makefile adapted to meet the description.
- configure creates ./config.h as well.
- Strings can be either local to a database or global. The output of macros does include local macros only. This is a point of incompatibility with previous versions.
- Massive extensions to BIBTCL.
- Cleaning of the sources and massive addition of documentation. Now the documentation of the C functions is present. Thus it becomes possible to use the BIBTOOL routines to write C programs. BIBTCL is a first application of this technique. Nevertheless a few changes seem possible before things are cut in stone.
- According to a suggestion by Oren Patashnik the term entry is used instead of record - at least in the documentation.
- Minor bug in print.c fixed which caused looping when small values for line length and alignment column was given.
- Minor bug-fix in key.c. The resource `crossref.limit` was off by 1.
- Some additions have been made to support new features in the forthcoming BIB TEX 1.0. They do not really work right now but just restrict the accepted input files.
- Flag `-with-kpathsea` added to configure.

## Release 2.40 []

- Sorting uses the new key instead of the old one as before. This has not been specified, but the new behavior might be more intuitive.
- `key.format=empty` fixed. `key.format` `short.need` and `long.need` are aliases for `new.short` and `new.long` resp.
- Some error messages slightly improved.
- Minor print bug fixed: additional commas appeared when the last field was deleted.
- Typo in documentation: I had typed `preserve.key` instead of `preserve.keys`. Shame on me:-) Some additional examples in the documentation.
- Field deletion completely covered by the rewriting mechanism. `delete.field` is kept for backward compatibility as an alias.

## Release 2.39 []

- The default for the pattern in the select resource is now '.'. Thus it is easier to select entries with a given type.
- New resource `preserve.keys` introduced. If this resource is on then key generation touches only entries with empty keys. The keys of other entries are left unchanged. Initially this resource is off.
- The disambiguation now respects the order of the entries. Previously it used the reverse order which was contra-intuitive.
- Formatting names: Names connected by or tight initials (A.U. Thor) are now treated better.
- Nasty little bug in the key specification parser fixed. This has (sometimes) let to a wrong evaluation of disjunctions.
- Minor bug in verbose messages fixed.
- AutoConf scripts added.

## Release 2.38 []

- Format specifier %d enhanced. It can fail now if no number is found in the field. The minus sign means padding to a fixed length. The plus sign means not to fail but use 0. The post specifier can be used to select another but the first number. E.g. %.2d means to use the second number.
- Format specifier %D introduced. It acts like %d but does not truncate the number. Thus larger numbers are used completely.
- Bug fixed. If the key format failed then the key was left empty. Now the default key is used as written in the documentation. Somehow the bug fix for the select statement has not made it into the last release. Now it should be in.
- Several mistakes in the documentation corrected.

## Release 2.37 []

- kpathsea support for searching BIB TEX files added.
- Bugs fixed: Searching/key generation combination and aux file evaluation.
- The distribution is now available in two forms: as a gzipped tar file and as a zip archive.

## Release 2.36 []

- Added sample file for interfacing BIBTOOL with Tcl: Tcl/bibtool.tcl.
- Added sample file for interfacing BIBTOOL with Perl: Perl/bibtool.pl.
- Minor bug fix in string parsing routines. E.g. select from command line was not evaluated properly.
- Minor bug fixed. `add.field` now works again as described in the documentation.
- Minor bug fixed. Command line argument `-r` issued a warning when everything was ok.

## Release 2.35 []

- Inheritance via crossref can be used to access fields in another entry when creating keys. E.g. this means that crossreferencing inproceedings can access the booktitle of the proceedings. The new resource `crossref.limit` restricts the number of crossrefs followed. E.g. 0 means do not follow crossrefs (as it has been in previous releases). The default is 32.
- New Boolean resource `check.do.delete` introduced. If this resource is on then the double entries are not only preceded by ### instead of @ but deleted completely.
- New Boolean resource `sort.macros` introduced. If this is on then the macro definitions are sorted alphabetically. Default: on
- The handling of comments has been changed completely. Comments are now attached to the preamble/string/normal entry following them. Especially during sorting the comments are rearranged as well. This seems useful to keep comments on macro definitions and the definitions together. The last comment always stays at the end.
- Minor bug fixed. The searching for .bibtoolrsc went wrong.
- Minor bug fixed. `output.file` resource acted incorrect.
- `print.all.strings` acts like described in the documentation.
- Resource arguments in the command line can have unbalanced braces in strings now. Still there is no escape character defined.
- Internally BIBTOOL can handle more than one database simultaneously. This is needed for the SQL interface. Let's see how this can be used otherwise.

## Release 2.34 []

- Default value of `key.expand.macros` changed to on. This seems to be a more sensible default value. (Possible incompatibility to old version)
- `new.format.type` introduced. This command can be used to specify formatting rules for names. It is used in conjunction with the %p format specification which has been added.
- The format specifiers for counting names/words/characters have been added. Those act as boo leans which force backtracking if they fail. The qualifier # is used to enable counting.
- When writing macro files undefined macros are written as `_string` instead of `@STRING`. Thus they are comments to BIB TEX.
- The command line options `-x` and `-X` now also set `print.all.strings` to off. (This has no effect yet)
- The documentation has been updated.

## Release 2.33 []

- Reference card added (prepared for A4 paper).
- Bug fix in rewrite.c. `add.field` no longer crashes.
- Format specifiers %n and %N now also use the post argument. This argument is used to restrict the number of characters transferred.

## Release 2.32 []

- New resource `select.fields` introduced. This resource controls which fields are considered when selecting with `-X`.

## Release 2.31 []

- I have moved to a new job. My email address has been changed in all files (maybe I have missed some?).
- The resource `select.case.sensitive` behaved contra-intuitive. This has been fixed. This means that old scripts might need adaption.
- `select` and `rewrite.rule` can take several fields now. Thus you can specify several selections or rewrites more compact.
- The survey of related programs in the documentation has been enlarged.

## Release 2.30 []

- Minor bug fix in s_parse.c. Resource specifications in the command line may have let to an overflow of an array. This has been fixed.
- New resource `print.parentheses` introduced. This resource allows the user to specify whether or () should be used to delimit each entry.

## Release 2.29 []

- Support for compilation without the GNU Regular Expression Library improved.
- The `@comment` is really more liberal than I thought. This prefix is simply ignored (As I have read in the BIB TEX sources). This behavior is now also performed by BIBTOOL.

## Release 2.28 []

- Some additional updates for the new makefiles.
- Bug fix in print.c which let to additional strings after the regular end of an entry.

## Release 2.27 []

- Reorganization of the files. Slight corrections of function prototypes in various files. Change of the Makefile to support Amiga SAS/C.

## Release 2.26 []

- Minor bug in key.c fixed. One step further to a 8-bit clean program. I wonder which 8-bit traps are still hidden in BIBTOOL.
- The TEX macro mechanism has been enhanced to allow one to define single character macros. This means `tex.define` automatically makes a character active if it is encountered as macro name of a definition.

## Release 2.25 []

- Finally all separators can be arbitrary strings. Only allowed characters are used (as it has been done in version 1.*). I hope this finally fixes the bug in key.c which I had troubles with in the previous versions.

## Release 2.24 []

- Documentation for regular expressions added.
- Resources `select` and `select.case.sensitive` added. The selection allows to specify a regular expression for arbitrary fields. This subsumes the old `extract.regex` which is kept for backward compatibility.
- A bug fix in 2.23 corrected.

## Release 2.23 []

- Some minor modifications for DEC-Alpha.
- Some minor modifications for the native HP C compiler.
- Some bugs in key.c fixed.

## Release 2.22 []

- \par (double newlines) is preserved now. `parse.c` has been modified. The line breaking algorithm in print.c has been adapted.
- Allocation bug in stack.c fixed.
- Bug in expand.c which added garbage to expanded strings.
- Some improvements for non-ANSI C compilers (I really don't know why I continue this).

## Release 2.21 []

- Preserving of case of keys introduced. For this purpose the resource `preserve.key.case` has been introduced. The management of the list of old keys is done in macros.c mainly. Minor changes in print.c and parse.c.

## Release 2.20 []

- Minor bug fix in `sort.order`.
- Compression method changed to gzip.

## Release 2.19 []

- Key format specifiers t, w, W introduced. w, W, t and T take a post argument to limit the number of characters to use.
- `sort.order` introduced to sort fields in an entry.
- Wrong mail addresses in many files corrected.

## Release 2.18 []

- Rewriting missed some multiply occurring patterns. (rewrite.c)
- Resource `rewrite.limit` added.
- Problem with recursive resources fixed. (parse.c)

## Release 2.17 []

- The documentation is now compatible with LATEX 2e.

## Release 2.16 []

- New resource `print.newline` introduced to control the number of empty lines between entries.
- MSDOS support: Imitating emtex search path initialization as option.

## Release 2.15 []

- Some problems with 8-bit characters fixed.
- String expansion before key generation added: `key.expand.macro`
- Hash index was computed wrong for some strings with ASCII values > 127.
- Hash table enlarged and new algorithm for hash index

## Release 2.14 []

- `delete.field` bug fixed. The deletion of the last field lead to the deletion of all fields. (rewrite.c)
- Comments added to print.c.
- Target zip in Makefile.

## Release 2.13 []

- Yet more modifications for the MSDOS port. What a brain-dead OS.

## Release 2.12 []

- Version 2.12 of GNU regex library integrated.
- alloca.c is no longer needed.
- Some improvements for the MSDOS port.
- aux.[ch] renamed to tex_aux.[ch] resp.
- Resource search path seems to work now.

## Release 2.11 []

- Some typos fixed.
- Redefinition of entry types enabled.

## Release 2.10 []

- String/Macro expansion added: `expand.macros`.
- Case in-sensitive treatment of ignored words.
- Some additional targets in Makefile.

## Release 2.09 []

- Makefile enhanced.
- Error/verbose/debug messages improved.
- Hell, I forgot to remove trace statements.

## Release 2.08 []

- Comment parsing and printing improved.
- `symbol.type` introduced.
- Minor improvement of non-ANSI support.

## Release 2.07 []

- Printing improved. Rewriting of macro names completed and documented.
- Truncating bug in print.c fixed.
- Minor improvement of non-ANSI support.

## Release 2.06 []

- UN*X man pages for `sbuffer()`, `pxfile()`
- Absolute path name use improved.
- Minor bug fixed.

## Release 2.05 []

- Semantic checks with regular expressions.
- Crossref modification when key generation is enabled.
- Preference bug for search path building fixed.
- Rewriting enhanced.

## Release 2.04 []

- String parser introduced. Error checking/messages improved.
- Undocumented command line options changed.
- Command line specification of resources introduced.
- Minor bug fixes.
- Code slightly reorganized. (I really found a static array)
- Samples directory renamed to Lib.

## Release 2.03 []

- Field rewriting introduced.
- Resource `optimize` is obsolete. The functionality can be achieved by field rewriting.
- Resource search path introduced.

## Release 2.02 []

- Minor bug fixes.
- Static array in key generation routine made dynamic. There is still a limit which can be reached when a short TEX macro expands into very long text.
- Checking double entries feature introduced.
- Printing TABs can be emulated by SPACEs.

## Release 2.01 []

- Bug fixes.
- Print representation for items introduced.
- Distribution improved.
- Resource samples added.

## Release 2.0 []

- Major revision.
- Sorting integrated.
- Resources introduced.
- Several command line options deleted.
- Key formatting improved.
- Draft Documentation.

## Release 1.7 []