CHANGELOG

Released through https://bibliophile.sourceforge.net under the GPL licence.
Do whatever you like with this -- some credit to the author(s) would be appreciated.

A collection of PHP classes to manipulate bibtex files.

If you make improvements, please consider contacting the administrators at bibliophile.sourceforge.net so that your improvements can be added to the release package.

Mark Grimshaw 2004/2005/2006
https://bibliophile.sourceforge.net

################################################
v2.2.1
2023-04-14 - Cai Wingfield
Bring into compatibility with PHP version 8.

v2.2
24/April/2006 - Esteban Zimanyi and Mark Grimshaw
1/ A 4th array, $this->undefinedStrings, is now returned that holds field values that are judged to be undefined strings. i.e. they are a non-numeric value that is not defined in a @string{...} entry and not enclosed by braces or double-quotes. This array will be empty unless the following condition is met:
($this->removeDelimit || $this->expandMacro && $this->fieldExtract)
2/ When an undefined string is found in function removeDelimiters return the empty string. Return $this->undefinedStrings in the last position to allow compatibility with previous versions.
3/ Fix management of preamble in function returnArrays.

v2.1
7/February/2006 - Esteban Zimanyi and Mark Grimshaw
Minor debugging to catch more unusually formatted entries.


v2.0
3/February/2006 - Esteban Zimanyi and Mark Grimshaw
Substantial work on PARSEENTRES.php (mainly by Esteban) to:
1/  handle @strings concatenated from other @strings.
2/  handle all different types of comments possible.
3/  clean-up the code.
4/  handles more unusual formatting of white space between and inside entries.

v1.5.4
17/June/2005 - Mark Grimshaw
month fields that have multiple dates (e.g. dec # " 5--9," or nov # " 29" # "--" # dec # " 2") are correctly parsed. (list($startMonth, $startDay, $endMonth, $endDay) = $parseMonth->init($monthField);)

v1.5.3
10/June/2005 - Mark Grimshaw
Fixed excessive expansion of @strings in bibtex imports.

v1.5.2
5/May/2005 - Mark Grimshaw and Guillaume Gardey.
1/  Corrections to PARSEENTRIES when handling concatenations using '#'
2/  Corrections to the example commandline code for PARSECREATORS.

v1.5.1
30th April 2005 - Mark Grimshaw
1/  Ensure entries such as journal = {{Journal of } # JRNL23} are properly parsed and expanded with a hanging '}' removed.

v1.5
28th April 2005 - Mark Grimshaw
1/  Fixed a bug when parsing @preamble in PARSEENTRIES.php
2/  Made efficiency and accuracy improvements in PARSECREATORS.php
3/  Added class PARSEMONTH to split a bibtex month field into day and month components.
	list($month, $day) = $parseMonth->init($monthField);
4/  Added class PARSEPAGE to split a bibtex pages field into page start and page end components.
	list($start, $end) = $parsePage->init($pagesField);

v1.4
25th August 2004
1/  Expand macros added by Guillaume Gardey.
2/  Discard comments on same line as @string.
3/  A few bug fixes.
4/  PARSEENTRIES can parse PHP strings. (loadBibTeXString)
5/  Supports user defined BibTeX macro. (loadStringMacro)

v1.3
20th August 2004
1/  @string<spaces>{...} now correctly parsed.
2/  Any final "," left on the end of the last field in an entry is now removed.

v1.2
15th August 2004
Corrected bug in extraction of values from @string.
v1.1
15th August 2004
1/  Added another flag to PARSEENTRIES to decide whether to remove enclosing "..." or {...} from string and entry fields.
2/  Some debugging and simplification.  Both flags now have a default value of TRUE.

v1.0
14th August 2004
Initial release: PARSEENTRIES.php, PARSECREATORS.php
