<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- ====================================================================== -->
<!--  $Id: Changes.xml,v 0.00 2002/02/12 18:54:58 gene Exp $                -->
<!-- ====================================================================== -->

<changes>
 <devs>
  <person id="gene" email="gene@gerd-neugebauer.de">Gerd Neugebauer</person>
 </devs>

 <!-- ===================================================================== -->
 <release version="2.48" date="">
  <action dev="gene" type="change">
	BibTcl has been taken out of the default making since it has
	caused troubles on several maschines.
  </action>
  <action dev="gene" type="change">
	The printing of Strings honors now the dependencies that
	BibTeX relies on. This has been accomplished by a change in
	the printing routine for databases. No new resource is
	involved.
  </action>
  <action dev="gene" type="change">
	Minor modification to the C API.
  </action>
  <action dev="gene" type="add">
	Feature: When searching for an aux file and none is found then
	<tt>.aux</tt> is appended and a reopen is tried with the new
	name.
  </action>
  <action dev="gene" type="change">
	Feature: When expand.macros is set the macros will be
	suppressed automatically. No need to set
	<tt>print.entry.types</tt> any more.
  </action>
  <action dev="gene" type="add">
        The boolean resource <tt>select.crossrefs<tt> has been
        introduced. This resource can be used to force crossreferenced
        entries for selected entrie to be included in the output.
  </action>
  <action dev="gene" type="change">
	Feature: deleted entries are not reported as "written" by the
	statistics any more.
  </action>
  <action dev="gene" type="fix">
	Bugfix: Bug in extracting by aux file. Crossrefed entires
	where sometimes ignored.
  </action>
  <action dev="gene" type="fix">
	Bugfix: Bug in parsing of backslashes in resources has been
	fixed. Unfortunately this bug appeared in one of the
	examples in the manual.
  </action>
  <action dev="gene" type="fix">
	Bugfix: Bug in expansion introduced in 2.47 has been fixed. An
	error occured when expanding macros.
  </action>
  <action dev="gene" type="add">
	The resource loading with <code>resource</code> now issues a
	warning when the file could not be found.
  </action>
  <action dev="gene" type="doc">
	The meaning of post for the format specifiers %d and %D has
	been documented.
  </action>
  <action dev="gene" type="fix">
	Bugfix: BibTool has misinterpreted pre for the format
	specifier %t and %T due to an over-optimization. This has been
	fixed.
  </action>
  <action dev="gene" type="fix">
	Bugfix: BibTool has ignored <code>preserve.key.case</code> for
	crossreferenced keys. This has been fixed.
  </action>
  <action dev="gene" type="fix">
	Bugfix: Some compilers don't like it if static strings are
	modified. Thus I have made them dynamic.
  </action>
  <action dev="gene" type="add">
	Experimental feature <code>regexp.syntax</code> added.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.47" date="January 16, 2003">
  <action dev="gene" type="fix">
	Bugfix: BibTool looped when parsing unbalanced blocks due to a
	too short type in <code>parse.c</code>. This has been fixed
	and some error messages have been improved.
  </action>
  <action dev="gene" type="doc">
	Some additions to the documentation due to Patrice Dumas.
  </action>
  <action dev="gene" type="add">
	Resource <code>fmt.word.separator</code> introduced. This
	resource can be used to mark additional characters to be
	considered as word separators.
  </action>
  <action dev="gene" type="fix">
	Bugfix: BibTool looped when a malformed string of some kind
	was given to expansion. This has been fixed in
	<code>expand()</code>.
  </action>
  <action dev="gene" type="fix">
	Bugfix: BibTool crashed when called with empty format string
	due to an uninitialized variable. This has been fixed in
	<code>parse_fmt()</code>.
  </action>
  <action dev="gene" type="doc">
	Bugfix: Documentation bug fixed. The default for
	<code>sort.key</code> should be <code>%s($key)</code>. This
	has been fixed in<code>Lib/default.rsc</code> and the manual.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.46" date="February 12 2002">
  <action dev="gene" type="add">
	Resource <code>sort.cased</code> introduced to allow the
	sorting order to take advantage of upper and lower case
	characters. The default is false which is the previous
	behaviour.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.45" date="October 22 2001">
  <action dev="gene" type="add">
	Resource <code>suppress.initial.newline</code> introduced to
	suppress the empty line at the beginning of the output file.
  </action>
  <action dev="gene" type="fix">
	Bugfix: Some C compilers don&apos;t like the initialization of
	static variables with <code>stderr</code>. The code has been
	moved to a initialization routine.
  </action>
  <action dev="gene" type="fix">
	Bugfix: <code>-R</code> disables the reading of the resource
	at the end of processing of command line arguments.
  </action>
  <action dev="gene" type="fix">
	Bugfix: Parsing of select arguments with backslashes were not
	treated correctly.
  </action>
  <action dev="gene" type="doc">
	Minor documentation bugs fixed.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.44" date="April 7 1999">
  <action dev="gene" type="fix">
	Key generation fixed to expand BibTeX strings. The current
	behaviour is likely to change again in a future release.
  </action>
  <action dev="gene" type="update">
	Updated to work with kpathsea 3.1 (partially).
  </action>
  <action dev="gene" type="add">
	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 filelists in
	Makefile, configure, and configure.in of the web2c main
	directory.
  </action>
  <action dev="gene" type="fix">
	<code>check.double</code> message improved.
  </action>
  <action dev="gene" type="fix">
	Initialization bug for kpathsea fixed.
  </action>
  <action dev="gene" type="fix">
	Bugfix for cross referencing: normalization to lowercase was
	missing twice.
  </action>
  <action dev="gene" type="fix">
	Bugfix in the TeX reading routines: spaces after active
	characters are not ignored. All characters are treated as
	unsigned. This seems to be preferrable for extended ASCII
	characters.
  </action>
  <action dev="gene" type="update">
	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.
  </action>
  <action dev="gene" type="update">
	Minor modifications in makefiles.
  </action>
  <action dev="gene" type="add">
	The configuration of BibTcl is now done automatically.
  </action>
  <action dev="gene" type="add">
	New datatype introduced: <code>Uchar</code> will hold UniCode
	characters in a future release. I just have to find regexp
	routines to work with UTF-8.
  </action>
  <action dev="gene" type="update">
	Extraction extended to allow negation of the regular
	expression/string matching result. New resources
	<code>select.non</code> and <code>select.by.non.string</code>
	to specify such a request. C function
	<code>add_extract()</code> extended to cover negated values
	and the former function	<code>add_s_extract()</code>.
  </action>
 </release>

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

 <!-- ===================================================================== -->
 <release version="2.42" date="">
  <action dev="gene" type="add">
	New selection operation introduced. The selection with regular
	expressions is complemented by a selection according to simple
	substrings. This selection is initiated with the new resource
	<code>select.string</code> which takes the same arguments as
	the resource <code>select</code> but does comparison for a
	substring instead of regular expression matching. The value of
	<code>select.case.sensitive</code> is taken into account but
	at runtime and not at specification time. Certain characters
	can be ignored for the comparison. Those are contained in the
	new string resource <code>select.ignored</code>.
  </action>
  <action dev="gene" type="add">
	New resource <code>print.entry.types</code> introduced. This
	resource controlls the entry types and the order in which they
	are printed. In fact the macro printing facility is obsolete
	with this new resource.
  </action>
  <action dev="gene" type="add">
	New resource <code>clear.ignored.words</code> introduced. In
	fact this is a function which deletes all ignored words. Thus
	it is possible to determine all ignored words at runtime--even
	the compiled in defaults.
  </action>
  <action dev="gene" type="fix">
	Bug fixed: selection honours the resource
	<code>print.all.strings</code> now.
  </action>
  <action dev="gene" type="update">
	Makefiles slightly improved. Less manual adaption.
	Installation of all library files -- even on Solaris.
  </action>
  <action dev="gene" type="fix">
	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.
  </action>
  <action dev="gene" type="update">
	Restriction relaxed. Now it is possible to declare up to
	MAXINT entry types and not only 4096. The <code>Record</code>
	data structure and the associated macros have been modified
	slightly to accomplish this.
  </action>
  <action dev="gene" type="fix">
	Bug in the aux file selection mechanism fixed. This bug caused
	some cross referenced entries to be missing under special
	circumstances.
  </action>
  <action dev="gene" type="fix">
	Bug in <code>key.c</code> fixed which caused a crash because
	an initialization was missing under certain circumstances.
  </action>
  <action dev="gene" type="add">
	Make target <code>libbib.a</code> added. This is known to work
	on UNIX. I would like to get feedback for other systems.
  </action>
  <action dev="gene" type="fix">
	Minor bug in <code>names.c</code> fixed.
  </action>
  <action dev="gene" type="fix">
	Minor bug in <code>print.c</code> fixed.
	<code>print.wide.equal</code> does not have exceptions any
	more.
  </action>
  <action dev="gene" type="fix">
	Minor bug in <code>print.c</code> fixed. Deleted fields are
	treated better.
  </action>
  <action dev="gene" type="fix">
	Bug in <code>database.c</code> fixed which caused macro
	expansion to fail under certain circumstances.
  </action>
  <action dev="gene" type="update">
	BibTcl: <code>bibtool format</code> allows to use the full
	power of format specifications.
  </action>
  <action dev="gene" type="add">
	BibTcl: <code>bibtool sprint</code> added which returns the
	formatted string representation of an entry.
  </action>
  <action dev="gene" type="fix">
	BibTcl: Bug in <code>$rec set \$key ...</code> fixed.
  </action>
  <action dev="gene" type="update">
	Minor changes in the C interface (Just wait for the compiler
	or linker to complain about different arguments:-).
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.41" date="">
  <action dev="gene" type="add">
	New boolean resource <code>print.equal.right</code> which
	controls whether the = in normal entries is aligned right or
	left.
  </action>
  <action dev="gene" type="add">
	New boolean <code>resource print.wide.equal</code> which
	controlls whether the equal sign is surrounded by spaces even
	if the alignment forces a narrower layout.
  </action>
  <action dev="gene" type="add">
	New boolean resource <code>print.comma.at.end</code> which
	controlls whether the comma between fields is printed at the
	end or at the beginning of a field/value pair.
  </action>
  <action dev="gene" type="add">
	New boolean resource <code>print.deleted.entries</code> 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.
  </action>
  <action dev="gene" type="add">
	Pseudo field <code>sortkey</code> added.
  </action>
  <action dev="gene" type="add">
	Pseudo field <code>source</code> added which contains the
	filename the record has been read from or the empty string if
	this can not be determined.
  </action>
  <action dev="gene" type="fix">
	Makefile adapted to meet the description.
  </action>
  <action dev="gene" type="add">
	configure creates <code>./config.h</code> aswell.
  </action>
  <action dev="gene" type="add">
	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.
  </action>
  <action dev="gene" type="add">
	Massive extensions to BibTcl.
  </action>
  <action dev="gene" type="doc">
	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.
  </action>
  <action dev="gene" type="doc">
	According to a suggestion by Oren Patashnik the term entry is
	used instead of record -- at least in the documentation.
  </action>
  <action dev="gene" type="fix">
	Minor bug in <code>print.c</code> fixed which caused looping
	when small values for line length and alignment column was
	given.
  </action>
  <action dev="gene" type="fix">
	Minor bugfix in <code>key.c</code>. The resource
	<code>crossref.limit</code> was off by 1.
  </action>
  <action dev="gene" type="add">
	Some additions have been made to support new features in the
	forthcoming BibTeX 1.0. They do not really work right now but
	just restrict the accepted input files.
  </action>
  <action dev="gene" type="add">
	Flag <code>--with-kpathsea</code> added to configure.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.40" date="">
  <action dev="gene" type="add">
	Sorting uses the new key instead of the old one as before.
	This has not been specified, but the new behaviour might be
	more intuitive.
  </action>
  <action dev="gene" type="fix">
	<code>key.format=empty</code> fixed. <code>key.format</code>
	<code>short.need</code> and <code>long.need</code> are aliases
	for <code>new.short</code> and <code>new.long</code> resp.
  </action>
  <action dev="gene" type="update">
	Some error messages slightly improved.
  </action>
  <action dev="gene" type="fix">
	Minor print bug fixed: additional commas appeared when the
	last field was deleted.
  </action>
  <action dev="gene" type="doc">
	Typo in documentation: I had typed <code>preserve.key</code>
	instead of <code>preserve.keys</code>. Shame on me:-) Some
	additional examples in the documentation.
  </action>
  <action dev="gene" type="update">
	Field deletetion completely covered by the rewriting
	mechanism. <code>delete.field</code> is kept for backward
	compatibility as an alias.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.39" date="">
  <action dev="gene" type="update">
	The default for the pattern in the select resource is now
	&quot;.&quot;. Thus it is easier to select entries with a
	given type.
  </action>
  <action dev="gene" type="add">
	New resource <code>preserve.keys</code> 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.
  </action>
  <action dev="gene" type="update">
	The disambiguation now respects the order of the entries.
	Previously it used the reverse order which was
	contra-intuitive.
  </action>
  <action dev="gene" type="update">
	Formating names: Names connected by ~ or tight initials (A.U.
	Thor) are now treated better.
  </action>
  <action dev="gene" type="fix">
	Nasty little bug in the key specification parser fixed. This
	has (sometimes) let to a wrong evaluation of disjunctions.
  </action>
  <action dev="gene" type="fix">
	Minor bug in verbose messages fixed.
  </action>
  <action dev="gene" type="add">
	AutoConf scripts added.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.38" date="">
  <action dev="gene" type="add">
	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.
  </action>
  <action dev="gene" type="add">
	Format specifier %D introduced. It acts like %d but does not
	truncate the number. Thus larger numbers are used completetly.
  </action>
  <action dev="gene" type="fix">
	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 bugfix for the select statement has
	not made it into the last release. Now it should be in.
  </action>
  <action dev="gene" type="doc">
	Several mistakes in the documentation corrected.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.37" date="">
  <action dev="gene" type="add">
	kpathsea support for searching BibTeX files added.
  </action>
  <action dev="gene" type="fix">
	Bugs fixed: Searching/key generation combination and aux file
	evaluation.
  </action>
  <action dev="gene" type="add">
	The distribution is now availlable in two forms: as a gzipped
	tar file and as a zip archive.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.36" date="">
  <action dev="gene" type="add">
	Added sample file for interfacing BibTool with Tcl:
	<code>Tcl/bibtool.tcl</code>.
  </action>
  <action dev="gene" type="add">
	Added sample file for interfacing BibTool with Perl:
	<code>Perl/bibtool.pl</code>.
  </action>
  <action dev="gene" type="fix">
	Minor bug fix in string parsing routines. E.g. select from
	command line was not evaluated properly.
  </action>
  <action dev="gene" type="fix">
	Minor bug fixed. <code>add.field</code> now works again as
	described in the documentation.
  </action>
  <action dev="gene" type="fix">
	Minor bug fixed. Command line argument <code>-r</code> issued
	a warning when everything was ok.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.35" date="">
  <action dev="gene" type="update">
	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 <code>crossref.limit</code>
	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.
  </action>
  <action dev="gene" type="add">
	New boolean resource <code>check.do.delete</code> introduced.
	If this resource is on then the double entries are not only
	preceeded by ### instead of @ but deleted completely.
  </action>
  <action dev="gene" type="add">
	New boolean resource <code>sort.macros</code> introduced. If
	this is on then the macro definitions are sorted
	alphabetically. Default: on
  </action>
  <action dev="gene" type="update">
	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.
  </action>
  <action dev="gene" type="fix">
	Minor bug fixed. The searching for <code>.bibtoolrsc</code>
	went wrong.
  </action>
  <action dev="gene" type="fix">
	Minor bug fixed. <code>output.file</code> resource acted
	incorrect.
  </action>
  <action dev="gene" type="add">
	<code>print.all.strings</code> acts like described in the
	documentation.
  </action>
  <action dev="gene" type="update">
	Resource arguments in the command line can have unbalanced
	braces in strings now. Still there is no escape character
	defined.
  </action>
  <action dev="gene" type="update">
	Internally BibTool can handle more than one database
	simultaneously. This is needed for the SQL interface.
	Let&apos;s see how this can be used otherwise.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.34" date="">
  <action dev="gene" type="update">
	Default value of <code>key.expand.macros</code> changed to on.
	This seems to be a more sensible default value. (Possible
	incomatibility to old version)
  </action>
  <action dev="gene" type="add">
	<code>new.format.type</code> 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.
  </action>
  <action dev="gene" type="add">
	The format specifiers for counting names/words/characters have
	been added. Those act as booleans which force backtracking if
	they fail. The qualifier # is used to enable counting.
  </action>
  <action dev="gene" type="update">
	When writing macro files undefined macros are written as
	<code>_string</code> instead of <code>@STRING</code>. Thus
	they are comments to BibTeX.
  </action>
  <action dev="gene" type="update">
	The command line options <code>-x</code> and <code>-X</code>
	now also set <code>print.all.strings</code> to off. (This has
	no effect yet)
  </action>
  <action dev="gene" type="doc">
	The documentation has been updated.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.33" date="">
  <action dev="gene" type="add">
	Reference card added (prepared for A4 paper).
  </action>
  <action dev="gene" type="fix">
	Bugfix in <code>rewrite.c</code>. <code>add.field</code> no
	longer crashes.
  </action>
  <action dev="gene" type="update">
	Format specifiers %n and %N now also use the post argument.
	This argument is used to restrict the number of characters
	transferred.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.32" date="">
  <action dev="gene" type="add">
	New resource <code>select.fields</code> introduced. This
	resource controlls which fields are considered when selecting
	with <code>-X</code>.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.31" date="">
  <action dev="gene" type="update">
	I have moved to a new job. My email address has been changed
	in all files (maybe I have missed some?).
  </action>
  <action dev="gene" type="fix">
	The resource <code>select.case.sensitive</code> behaved
	contra-intuitive. This has been fixed. This means that old
	scripts might need adaption.
  </action>
  <action dev="gene" type="update">
	<code>select</code> and <code>rewrite.rule</code> can take
	several fields now. Thus you can specify several selections or
	rewrites more compact.
  </action>
  <action dev="gene" type="doc">
	The survey of related programs in the documentation has been
	enlarged.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.30" date="">
  <action dev="gene" type="fix">
	Minor bugfix in <code>s_parse.c</code>. Resource
	specifications in the command line may have let to an overflow
	of an array. This has been fixed.
  </action>
  <action dev="gene" type="add">
	New resource <code>print.parentheses</code> introduced. This
	resource allows the user to specify whether {} or () should be
	used to delimit each entry.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.29" date="">
  <action dev="gene" type="update">
	Support for compilation without the GNU Regular Expression
	Library improved.
  </action>
  <action dev="gene" type="update">
	The <code>@comment</code> is really more liberal than I
	thought. This prefix is simply ignored (As I have read in the
	BibTeX sources). This behaviour is now also performed by
	BibTool.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.28" date="">
  <action dev="gene" type="update">
	Some additional updates for the new makefiles.
  </action>
  <action dev="gene" type="fix">
	Bugfix in <code>print.c</code> which let to additional strings
	after the regular end of an entry.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.27" date="">
  <action dev="gene" type="update">
	Reorganization of the files. Slight corrections of function
	protptypes in various files. Change of the
	<code>Makefile</code> to support Amiga SAS/C.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.26" date="">
  <action dev="gene" type="fix">
	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.
  </action>
  <action dev="gene" type="update">
	The TeX macro mechnism has been enhanced to allow one to
	define single character macros. This means <code>tex.define</code>
	automatically makes a character active if it is encountered as
	macro name of a definition.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.25" date="">
  <action dev="gene" type="update">
	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.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.24" date="">
  <action dev="gene" type="doc">
	Documentation for regular expressions added.
  </action>
  <action dev="gene" type="add">
	Resource <code>select</code> and
	<code>select.case.sensitive</code> added. The selection allows
	to specify a regular expression for arbitrary fields. This
	subsumes the old <code>extract.regex</code> which is kept for
	backward compatibility.
  </action>
  <action dev="gene" type="fix">
	A bugfix in 2.23 corrected.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.23" date="">
  <action dev="gene" type="update">
	Some minor modifications for DEC-Alpha.
  </action>
  <action dev="gene" type="update">
	Some minor modifications for the native HP C compiler.
  </action>
  <action dev="gene" type="fix">
	Some bugs in <code>key.c</code> fixed.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.22" date="">
  <action dev="gene" type="update">
	\par (double newlines) is preserved now. <code>parse.c</code>
	has been modified. The line breaking algorithm in
	<code>print.c</code> has been adapted.
  </action>
  <action dev="gene" type="fix">
	Allocation bug in <code>stack.c</code> fixed.
  </action>
  <action dev="gene" type="fix">
	Bug in <code>expand.c</code> which added garbage to expanded
	strings.
  </action>
  <action dev="gene" type="update">
	Some improvements for non-ANSI C compilers (I really
	don&apos;t know why I continue this).
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.21" date="">
  <action dev="gene" type="add">
	Preserving of case of keys introduced. For this purpose the
	resource <code>preserve.key.case</code> has been introduced.
	The management of the list of old keys is done in
	<code>macros.c</code> mainly. Minor change in
	<code>print.c</code> and <code>parse.c</code>.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.20" date="">
  <action dev="gene" type="fix">
	Minor bug fix in <code>sort.order</code>.
  </action>
  <action dev="gene" type="update">
	Compression method changed to gzip.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.19" date="">
  <action dev="gene" type="add">
	Key format specifiers t, w, W introduced. w, W, t and T take a
	post argument to limit the number of characters to use.
  </action>
  <action dev="gene" type="add">
	<code>sort.order</code> introduced to sort fields in an entry.
  </action>
  <action dev="gene" type="update">
	Wrong mail addresses in many files corrected.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.18" date="">
  <action dev="gene" type="fix">
	Rewriting missed some multiply occurring patterns.
	(<code>rewrite.c</code>)
  </action>
  <action dev="gene" type="add">
	Resource <code>rewrite.limit</code> added.
  </action>
  <action dev="gene" type="fix">
	Problem with recursive resources fixed. (<code>parse.c</code>)
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.17" date="">
  <action dev="gene" type="doc">
	The documentation is now compatible with LaTeX2e.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.16" date="">
  <action dev="gene" type="add">
	New resource <code>print.newline</code> introduced to control
	the number of empty lines between entries.
  </action>
  <action dev="gene" type="add">
	MSDOS support: Imitating emtex search path initialization as
	option.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.15" date="">
  <action dev="gene" type="fix">
	Some problems with 8-bit characters fixed.
  </action>
  <action dev="gene" type="add">
	String expansion before key generation added:
	<code>key.expand.macro</code>
  </action>
  <action dev="gene" type="fix">
	Hashindex was computed wrong for some strings with ASCII
	values &gt; 127.
  </action>
  <action dev="gene" type="update">
	Hashtable enlarged and new algorithm for hashindex
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.14" date="">
  <action dev="gene" type="fix">
	<code>delete.field</code> bug fixed. The deletion of the last
	field lead to the deletion of all fields. (<code>rewrite.c</code>)
  </action>
  <action dev="gene" type="update">
	Comments added to <code>print.c</code>.
  </action>
  <action dev="gene" type="add">
	Target zip in <code>Makefile</code>.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.13" date="">
  <action dev="gene" type="add">
	Yet more modifications for the MSDOS port.
	What a brain-dead OS.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.12" date="">
  <action dev="gene" type="update">
	Version 2.12 of GNU regex library integrated.
  </action>
  <action dev="gene" type="update">
	<code>alloca.c</code> is no longer needed.
  </action>
  <action dev="gene" type="fix">
	Some improvements for the MSDOS port.
  </action>
  <action dev="gene" type="fix">
	<code>aux.[ch]</code> renamed to <code>tex_aux.[ch]</code> resp.
  </action>
  <action dev="gene" type="fix">
	Resource search path seems to work now.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.11" date="">
  <action dev="gene" type="fix">
	Some typos fixed.
  </action>
  <action dev="gene" type="update">
	Redefinition of entry types enabled.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.10" date="">
  <action dev="gene" type="add">
	String/Macro expansion added: <code>expand.macros</code>.
  </action>
  <action dev="gene" type="update">
	Case in-sensitive treatment of ignored words.
  </action>
  <action dev="gene" type="update">
	Some additional targets in <code>Makefile</code>.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.09" date="">
  <action dev="gene" type="update">
	<code>Makefile</code> enhanced.
  </action>
  <action dev="gene" type="update">
	Error/verbose/debug messages improved.
  </action>
  <action dev="gene" type="fix">
	Hell, I forgot to remove trace statements.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.08" date="">
  <action dev="gene" type="update">
	Comment parsing and printing improved.
  </action>
  <action dev="gene" type="add">
	symbol.type introduced.
  </action>
  <action dev="gene" type="update">
	Minor improvement of non-ANSI support.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.07" date="">
  <action dev="gene" type="update">
	Printing improved. Rewriting of macro names completed and
	documented.
  </action>
  <action dev="gene" type="fix">
	Truncating bug in <code>print.c</code> fixed.
  </action>
  <action dev="gene" type="update">
	Minor improvement of non-ANSI support.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.06" date="">
  <action dev="gene" type="add">
	UN*X man pages for <code>sbuffer()</code>, <code>pxfile()</code>
  </action>
  <action dev="gene" type="update">
	Absolute path name use improved.
  </action>
  <action dev="gene" type="fix">
	Minor bug fixed.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.05" date="">
  <action dev="gene" type="add">
	Semantic checks with regular expressions.
  </action>
  <action dev="gene" type="update">
	Crossref modification when key generation is enabled.
  </action>
  <action dev="gene" type="fix">
	Preference bug for search path building fixed.
  </action>
  <action dev="gene" type="update">
	Rewriting enhanced.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.04" date="">
  <action dev="gene" type="add">
	String parser introduced. Error checking/messages improved.
  </action>
  <action dev="gene" type="update">
	Undocumented command line options changed.
  </action>
  <action dev="gene" type="add">
	Command line specification of resources introduced.
  </action>
  <action dev="gene" type="fix">
	Minor bug fixes.
  </action>
  <action dev="gene" type="update">
	Code slightly reorganized. (I really found a static array)
  </action>
  <action dev="gene" type="update">
	Samples directory renamed to <code>Lib</code>.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.03" date="">
  <action dev="gene" type="add">
	Field rewriting introduced.
  </action>
  <action dev="gene" type="update">
	Resource <code>optimize</code> is obsolete. The functionality can be
	achieved by field rewriting.
  </action>
  <action dev="gene" type="add">
	Resource search path introduced.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.02" date="">
  <action dev="gene" type="fix">
	Minor bug fixes.
  </action>
  <action dev="gene" type="update">
	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.
  </action>
  <action dev="gene" type="add">
	Checking double entries feature introduced.
  </action>
  <action dev="gene" type="add">
	Printing TABs can be emulated by SPACEs.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.01" date="">
  <action dev="gene" type="fix">
	Bug fixes.
  </action>
  <action dev="gene" type="add">
	Print representation for items introduced.
  </action>
  <action dev="gene" type="update">
	Distribution improved.
  </action>
  <action dev="gene" type="add">
	Resource samples added.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="2.0" date="">
  <action dev="gene" type="add">
	Major revision.
  </action>
  <action dev="gene" type="add">
	Sorting integrated.
  </action>
  <action dev="gene" type="add">
	Resources introduced.
  </action>
  <action dev="gene" type="update">
	Several command line options deleted.
  </action>
  <action dev="gene" type="update">
	Key formatting improved.
  </action>
  <action dev="gene" type="doc">
	Draft Documentation.
  </action>
 </release>

 <!-- ===================================================================== -->
 <release version="1.7" date="">
 </release>

</changes>
