\BibTool{} Change Log
BIBTOOL Change Log
Gerd Neugebauer
Release 2.57
- Segfault in deTeX fixed.
-
Compiler warnings silenced.
Release 2.56
- 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
- Library biblatex.rsc added. It contains capitalizations of
fields used in bibLATEX.
-
Fix for a misbehaviour when selecting entries according to an aux file
with deeply nested @strings.
Release 2.54
- 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
- In tex.define spaces before the = are ignored instead of
leading to unwanted definitions.
-
An intialization 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
- 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
- Bugfix in names.c: The classification of name parts
erroneously has used a wrong translation under certain circumstances.
Release 2.50
- Bugfix in names.c: The classification of name parts erroneously has
used a wrong translation under certain circumstances.
-
Bugfix 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
- New resource expand.crossref introduced. This resource
enables the expansion of fields inherited via the crossref mechanism.
-
Bugfix 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 crossref mechanism.
-
Bugfix in print.c: Some national characters have been lost. It was
necessary to use an unsigned character as elsewhere.
Release 2.48
- Resource print.terminal.comma introduced. This resource can
be used to request commas after the last record even if it contradicts the
rules of BIBTEX.
-
makefile.in for configure extended to support the variable
INSTALLPREFIX to be prepended to installation
directories.
-
Bugfix in main.c: Some compilers didn't like the method true().
-
Bugfix for kpathsea under Suse 9.1.
-
Bugfixes 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
BIBTEX 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.
-
Bugfix: Bug in extracting by aux file. Crossrefed entries where
sometimes ignored.
-
Bugfix: Bug in parsing of backslashes in resources has been fixed.
Unfortunately this bug appeared in one of the examples in the manual.
-
Bugfix: 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.
-
Bugfix: BIBTOOL has misinterpreted pre for the format specifier %t and
%T due to an over-optimization. This has been fixed.
-
Bugfix: BIBTOOL has ignored preserve.key.case for
cross-referenced keys. This has been fixed.
-
Bugfix: 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
- Bugfix: 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.
-
Bugfix: BIBTOOL looped when a malformed string of some kind was
given to expansion. This has been fixed in expand().
-
Bugfix: BIBTOOL crashed when called with empty format string due to an
uninitialized variable. This has been fixed in parse_fmt().
-
Bugfix: 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
- 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
- Resource suppress.initial.newline introduced to suppress the
empty line at the beginning of the output file.
-
Bugfix: Some C compilers don't like the initialization of static variables
with stderr. The code has been moved to a initialization routine.
-
Bugfix: -R disables the reading of the resource at the end of
processing of command line arguments.
-
Bugfix: Parsing of select arguments with backslashes were not treated
correctly.
-
Minor documentation bugs fixed.
Release 2.44
- Key generation fixed to expand BIBTEX 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 filelists in Makefile, configure, and configure.in of the
web2c main directory.
-
check.double message improved.
-
Initialization bug for kpathsea fixed.
-
Bugfix for cross referencing: normalization to lowercase was missing
twice.
-
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.
-
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 datatype 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/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.
-
Bugfix: comments are no longer crippled.
-
Minor bugfix in rewriting code: empty pattern works again.
-
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.
-
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.
Datatype StringTab is now local to symbols.c.
Datatype 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 substrings. This
selection is initiated with the new resource select.string
which takes the same arguments as the resource select but
does comparison for a substring instead of regular expression matching.
The value of select.case.sensitive 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
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 runtime-even the compiled in
defaults.
-
Bug fixed: selection honours 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 controlls whether
the equal sign is surrounded by spaces even if the alignment forces a
narrower layout.
-
New boolean resource print.comma.at.end which controlls
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 filename 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 aswell.
-
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 bugfix in key.c. The resource crossref.limit was
off by 1.
-
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.
-
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 behaviour 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 deletetion 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.
-
Formating 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 completetly.
-
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.
-
Several mistakes in the documentation corrected.
Release 2.37
- kpathsea support for searching BIBTEX files added.
-
Bugs fixed: Searching/key generation combination and aux file evaluation.
-
The distribution is now availlable 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 preceeded 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 incomatibility 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 booleans 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 BIBTEX.
-
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).
-
Bugfix 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
controlls 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 bugfix 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 BIBTEX
sources). This behaviour is now also performed by BIBTOOL.
Release 2.28
- Some additional updates for the new makefiles.
-
Bugfix 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
protptypes 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 mechnism 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.
-
Resource 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 bugfix 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 change 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
-
Hashindex was computed wrong for some strings with ASCII values >
127.
-
Hashtable enlarged and new algorithm for hashindex
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