22 April 2004 Peter B Clements

	* README: Updated to include new commandline options.

	* par2cmdline.vcproj: Update VS .NET project file with new
	  version number.

	* Released: Version 0.4.

15 April 2004 Peter B Clements

	* par2cmdline.sln, par2cmdline.vcproj: Updated.

	* commandline.cpp, commandline.h, par1repairer.cpp, par1repairer.h,
	  par2cmdline.cpp, par2cmdline.h, par2creator.cpp, par2creator.h,
	  par2creatorsourcefile.cpp, par2creatorsourcefile.h, par2repairer.cpp,
	  par2repairer.h, reedsolomon.h, par2cmdline.h: Handle -v and -q
	  options from the command line to change the amount of messages displayed.

14 April 2004 Peter B Clements

	* commandline.h, commandline.cpp: Add -c<n> option to allow the
	  number of recovery blocks to be directly specified rather than
	  indirectly via the -r<n> option. Add -l option to allow the
	  recovery file size to be limited so that the largest will have
	  just enough recovery data to reconstruct the larget source file.

	* par2creator.h, par2creator.cpp: Use the recovery block count 
	  specified via the command line instead of the redundancy % if
	  given. Allocate the sizes of recovery files so the are limited
	  if requested.

12 April 2004 Peter B Clements

	* config.h.in, configure, configure.ac: Detect what defines are
	  required to enable 64 bit file system support and whether or
	  not fseeko() is available.

	* diskfile.cpp: Use fseeko and 64 bit file operations if they
	  are available.

	* par2cmdline.h: Change order of include files.

	* par2repairer.cpp: When verifying files with long filenames,
	  display a shorter version of the filename.

	* datablock.h: Change DataBlock::GetDiskFile so that in returns
	  a non const DiskFile.

	* par2repairer.cpp, par2creator.cpp: Only keep source files open
	  when they are actually needed. This should allow par2 creation
	  and repair to work with large file sets on OS's with a limit
	  on the number of files that can be open simultaneously.

	* Makefile.in, aclocal.m4, config.guess, config.sub, configure, 
	  depcomp, install-sh, missing, mkinstalldirs: Updated Automake to 
	  version 1.8.3 and Autoconf to version 2.59.

	* configure.ac, config.h.in, configure: Check for getopt() and 
	  getopt_long().

19 August 2003 Peter B Clements

	* Updated par2creator.cpp: When creating par2 files the wrong
	  number of bytes would be reported as written to disk.

13 August 2003 Peter B Clements

	* Updated par2cmdline.h: Recorrected spelling of STDC_HEADERS!

	* Updated par1repairersourcefile.cpp, par2repairersourcefile.cpp:
	  Don't treat ':' as a path separator on non Windows platforms.

2 August 2003 Peter B Clements

	* Updated par1fileformat.h, par2fileformat.h: Use memcmp when
	  comparing MAGIC strings and PACKETTYPE strings.

	* Updated par2repairer.cpp: When a good packet is found after bad
	  data, use memcpy to copy the packet header. Don't attempt to get
	  the block count directly from the verification packet (which
	  might be missing). 

	* Updated par2repairersourcefile.cpp: Add function to set the block
	  count when the verification packet is missing.
 
1 August 2003 Peter B Clements

	* Updated par2cmdline.h: Included <iomanip>.

31 July 2003 Peter B Clements

	* Updated reedsolomon.h: Added debugging code.

29 July 2003 Peter B Clements

	* Updated galois.h: Use typename when refering to a typedef 
	  in another class.

	* Updated par1repairer.cpp: Cast size of fileentry in memcpy.

	* Updated par2repairersourcefile.h: Add function to set the block
	  count for a file when the verification packet is missing.

25 July 2003 Peter B Clements

	* Updated par2cmdline.h: Correct spelling of STDC_HEADERS.

16 July 2003 Peter B Clements

	* Release: Version 0.3.

15 July 2003 Peter B Clements

	* Added config.guess, config.sub: Autoconf files.

	* Updated configure, Makefile.in: Updated by Autoconf.

	* Updated configure.ac: Changed par2cmdline version number. Added
	  call to AC_CANONICAL_HOST.

	* Updated par2cmdline.vcproj: Updated version number.

3 July 2003 Peter B Clements

	* Updated aclocal.m4, depcomp, INSTALL, install-sh,
	  mkinstalldirs: Upgrade Autoconf to version 1.75 from 1.6.3.

	* Updated Makefile.am: Changed CXXFLAGS to AM_CXXFLAGS.

24 June 2003 Peter B Clements

	* Updated commandline.cpp, commandline.h: Added "redundancyseet"
	  member to record whether or not the value of "redundancy" has been
	  specified so that 0% reduncancy is permissible.

	* Updated par2creator.cpp: Detect situation where no recovery
	  blocks are being created and skip related code sections.

14 June 2003 Peter B Clements

	* Updated galois.h: Corrected bug in the initialisation of log[0] in
	  GaloisTable.

11 June 2003 Peter B Clements

	* Updated par1repair.cpp, par1repairer.h: Detect buggy version
	  of smartpar which creates PAR1 files with invalid 16k hash
	  values, Change alignement of temporary buffer used for
	  PAR1FILEENTRYs to 8 bytes.

7 June 2003 Peter B Clements

	* Update par2cmdline.h: Added <cassert> header include.

3 June 2003 Peter B Clements

	* Updated verificationhashtable.h: Fixed bug where blocks of data
	  that have the same crc and hash would not be correctly
	  recognised.

26 May 2003 Peter B Clements

	* Release: Version 0.2.

	* Added config.h.in, configure, configure.ac, depcomp, missing,
	  mkinstalldirs, stamp-h.in: Autoconf configuration files. 
	* Added NEWS

	* Added par1fileformat.h, par1fileformat.cpp: Specifies the
	  layout of PAR 1.0 files.

	* Added par1repairer.h, par1repairer.cpp: Encapsulates the details
	  of repairing using PAR 1.0 files.

	* Added par1repairersourcefile.h, par1repairersourcefile.cpp: 
	  Stores details of a source file.

	* Added test1, test2, test3, test4, test5, test6, testdata.tar.gz:
	  Test files for "make check".

	* Changed commandline.cpp, commandline.h: Add "version" member 
          and set it according to whether the recovery file is a .PAR file
	  or a .PAR2 file. Rename "par2filename" member to "parfilename".

	* Changed creatorpacket.cpp: Made "string creator" a local variable
	  in CreatorPacket::Create instead of a global. Commented out code
	  that does nothing.

	* Changed criticalpacket.h: Corrected bug in 
          CriticalPacketEntry::operator= which failed to return *this.

	* Changed descriptionpacket.cpp: Commented out code which does
	  nothing.

	* Changed diskfile.cpp: Updated wildcard matching code to permit
	  multiple "?" in wildcard. Adjusted the list of characters that
	  are accepted in filenames to include all with bit 7 set and
	  also spaces. Removed restrictions on many other permitted
	  characters.

	* Changed diskfile.h: Removed cygwin and linux ifdefs which are
	  now handled by autoconf.

	* Changed galois.cpp: Move the constructors for GaloisTable and
	  GaloisLongMultiplyTable to galois.h.

	* Changed galois.h: Changed GaloisTable, Galois, and 
	  GaloisLongMultipleTable into templates. Corrected bug in
	  Galois::pow and Galois::operator^ which incorrectly returned 0
	  for x^0 when it should always return 1. Added Galois8 and
	  Galois16 typedefs for PAR1 and PAR2.

	* Changed letype.h: Added leu16 type for use in PAR1 processing.

	* Changed mainpacket.cpp: Commented out code which does nothing.

	* Changed md5.cpp: Adjusted ROL macro to include masking to correct
	  for bug on Alpha CPUs. Added operator<<() and print() to MD5Hash.

	* Changed md5.h: Added copy and assignment operators for MD5Hash.

	* Changed par2cmdline.cpp: Made "string version" a local variable
	  instead of global. Use Par1Repairer or Par2Repaire as appropriate
	  when verifying or repairing PAR1 and PAR2 files.

	* Changed par2cmdline.h: Adjusted to conditionally include headers
	  and to define various types based on the autoconf configuration.

	* Changed par2cmdline.sln, par2cmdline.vcproj: Updated.

	* Changed par2creator.cpp: Called Commandline::GetParFilename instead
	  of CommandLine::GetPar2Filename.

	* Changed par2creator.h: Redifine rs as ReedSolomon<Galois16>.

	* Changed par2creatorsourcefile.cpp: Comment out code which does
	  nothing. Added typecasts between 32bit and 64bit values.

	* Changed par2fileformat.cpp: Adjusted initialisation code.

	* Changed par2fileformat.h: Use packed attribute for gnu compilers.

	* Changed par2repairer.cpp: Get filename using
	  CommandLine::GetParFilename.

	* Changed par2repairer.h: Redefine rs as ReedSolomon<Galois16>.

	* Changed par2repairersourcefile: Add typecast from 32bit to 64bit.

	* Changed README: Update details of how to compile the source code
	  using the configure script.

	* Changed recoverypacket.cpp: Commented out code which does nothing.

	* Changed ReedSolomon.cpp: Move ReedSolomon constructor to
	  ReedSolomon.h. Created template specialisations for Galois8 and
	  Galois16 for SetInput, SetOutput, and Process.

	* Changed ReedSolomon.h: Converted ReedSolomon to a template.

	* Changed verificationhashtable.cpp: Removed unused code.

	* Changed verificationpacket.cpp: Commented out code that does 
	  nothing.

7 May 2003 Peter B Clements

	* Version 0.1: Initial release.

