** Version 2.14.1 - 7 Nov 2017

* Bug Fixes

  - Fixed a spelling error.
  - Made relative path mode on Win32 to work.


** Version 2.14 - 12 Sep 2017

* New Features

  - Optimizations to the fuzzy hashing engine. (hash generator can run as twice
    as fast and comparison can run 1.5 through 5 times faster [heavily depends
    on the data and platform] than the previous release)

* Bug Fixes

  - Fixed issue when certain memory allocation is failed.


** Version 2.13 - 24 Apr 2015

* New Features

  - Added fuzzy_set_total_input_length function to the API.
  - Added support for files up to 192GB.
  - Added support for arbitrary length input from the standard input.

* Bug Fixes

  - Fixed issue when comparing hashes from relatively simple files.
  - Fixed portability issues.


** Version 2.12 - 24 Oct 2014

* Bug Fixes

  - Fixed issue when comparing identical hashes but with different
    block sizes.


** Version 2.11.1 - 27 Sep 2014

* Bug Fixes

  - Made libfuzzy compile as a shared library again.


** Version 2.11 - 11 Sep 2014

* New Features

  - Added fuzzy_clone function to the API.
  - Moved to modern Win32 compiler.

* Bug Fixes

  - Fixed edge case on signature generaion. Behavior now matches v2.9 again.


** Version 2.10 - 17 Jul 2013

* New Features

  - Fuzzy Hashing engine re-written to be thread safe.

* Bug Fixes

  - Able to handle long file paths on Win32.
  - Fixed bug on comparing signatures with the same block size.
  - Fixed crash on comparing short signatures.
  - Fixed memory leak


** Version 2.9 - 23 Jul 2012

* New Features

  - Added warning message for when some data on stdin is not hashed.
  - Can now hash up to 512MB of data on stdin.
  - Added clustering mode to group together matching files

* Bug Fixes

  - Fixed incorrect match scores for hashes with long filenames.


** Version 2.8 - 25 May 2012

* New Features

  - Converted to C++

* Bug Fixes

  - Fixed filename display on Win32.
  - Fixed support for large files on some platforms.
  - Fixed errors in handling command line argument processing.


** Version 2.7 - 30 Sep 2011

* New Features

  - Added the capability to process the first 100MB of data
    from standard input.

  - Added a warning message when the program does not process
    any file large enough to produce a meaningful result.

* Bug Fixes

  - Standard errors are now sent to stderr, not stdout.


** Version 2.6 - 28 Sep 2010

* New Features

  - Modified the output file format to allow for proper escaping of
    filenames with quotation marks in them.

* Bug Fixes

  - Added quotation marks to filenames in CSV matching mode.


** Version 2.5 - 6 May 2010

* New Features

  - Added API documentation

  - Added return values indicating errors in API functions

  - Added compatibility for compiling with C++

* Bug Fixes

  - Added parameter validation to API functions

  - Fixed some cosmetic errors in error handling


** Version 2.4 - 25 Feb 2010

* New Features

  - Added -k mode to compare unknown signatures against known signatures.



** Version 2.3 - 10 Jan 2010

* New Features

  - Added -a mode to display all 'matches', regardless of score.



** Version 2.2 - 22 Jul 2009

* New Features

  - Added capability to compare two or more files containing signatures
    against one another.

* Bug Fixes

  - Changed default behavior to exit program on invalid command line flags



** Version 2.1 - 1 Jan 2009

* New Features

  - Added fuzzy_hash_filename function to hash an entire file given
    only its filename. Avoids issues on Win32 systems.

* Bug Fixes

  - Fixed -p mode to display output




** Version 2.0 - 2 Apr 2008

* New Features

  - Created fuzzy hashing API/DLL
  - Added support for filenames with Unicode characters on Win32
  - Added threshold mode
  - Added CSV mode

* Bug Fixes

  - Fixed extra characters appearing during verbose mode




** Version 1.1 - 14 Aug 2006

* New Features

  - First public release
  - Added verbose mode to display filenames as they're being hashed
  - Added -d mode to make finding similar files in the same directory tree
      both easier and faster. Removes the need for two command lines and
      many extraneous lines of output.
  - Added -p mode to improve -d mode. Prints bi-directional matches together
    and omits self matches.
  - Added LARGEFILE_SOURCE define to Linux version to allow processing
    of large files. (You never know...)

* Bug Fixes

  - Fixed cosmetic errors in usage message. Updated man page.




** Version 1.0 - 31 Mar 2006

* New Features

 - Released internally
 - Added silent mode, -s. All error messages are suppressed.

* Bug Fixes

 - Fixed failure to close files after reading in engine.c
 - Fixed routine to read headers of matching hashes on Windows.
 - Fixed handling of symbolic links
 - Fixed cosmetic bug to display error messages if file open fails
     (e.g. Permission denied, etc)
 - Removed quotation marks from the signatures but not the file names.
     Filenames may contain spaces, but signatures may not. Two bytes
     per line adds up when we starting compiling large hash sets.
 - Redirected all error messages to stderr instead of stdout
 - Removed duplicate defines at the start of engine.c
 - Replaced all references to u32 with C99 standard uint32_t
 - Added error checking for memory allocation in main.c:main() and
     engine.c:hash_file()
 - Removed useless logical AND of 0xFFFFFFFF from rolling hash update



** Version 0.1 - 4 Nov 2005

* New Features

 - Proof of concept
 - This version supports recursion, relative and bare file names, and
     can perform positive matching using a previous output.
