2013-12-23  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    The table-driven code for polynomials of width < 8 using a table index
    width < 8 was producing a wrong checksum.
    Thanks to Radosław Gancarz.

2013-12-23  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    Small cleanups.

    * test/test.py:
    Small cleanups.
    Added a tests for special cases. For now, added crc-5 with non-inverted
    input. This test is currently failing.

2013-12-20  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    * test/test.py:
    Updated the generated code to cope with big Widths (>32 bits) on 32 bit
    processors.
    Since C89 does not give a way to specify the minimum length of a data type,
    the test does not validate C89 code using Widths > 32.
    For C99, the uint_fastN_t data types are used or long long, if the Width is
    unknown.

2013-07-25  Thomas Pircher   <tehpeh@gmx.net>

    * crc_opt.py:
    Removed warning about even polynomials. As Lars Pötter rightly pointed out,
    polynomials may be even.

    * doc/pycrc.xml:
    Added a caveat emptor about even polinomials.

#
# Version 0.8.1, 2013-05-17
#

2013-04-19  Thomas Pircher   <tehpeh@gmx.net>

    * qm.py:
    Updated qm.py from https://github.com/tpircher/quine-mccluskey.

2013-03-31  Thomas Pircher   <tehpeh@gmx.net>

    * README.md:
    Esplicitly stated that the output of pycrc is not considered a substantial
    part of the code of pycrc.

    * crc_symtable.py:
    Re-organised the symbol table: grouped the code by functionality, not by
    algorithm.

2013-02-25  Thomas Pircher   <tehpeh@gmx.net>

    * pycrc.py:
    * crc_algorithms.py:
    The input to the CRC routines can now be bytes or strings.

2013-02-19  Thomas Pircher   <tehpeh@gmx.net>

    * pycrc.py:
    Fixed a bug in the handling of hexstrings in Python3.
    Thanks to Matthias Kuehlewein.

    * test/test.py:
    Added --check-hexstring to the tests.

2013-02-19  Thomas Pircher   <tehpeh@gmx.net>

    * doc/pycrc.xml:
    Minor formatting change in the manpage.

    * qm.py:
    Better python3 compatibility.

    * test/check_files.sh:
    Added the files generated with the bwe algorithm to check_files.sh.

2013-01-12  Thomas Pircher   <tehpeh@gmx.net>

    * crc_models.py:
    Remove obsolete and unused 'direct' parameter.
    Merge pull request #2 from smurfix/master.
    Thanks to Matthias Urlichs.

    * test/test.py:
    Don't recurse into main() when an unknown algorithm is selected.
    Merge pull request #2 from smurfix/master.
    Thanks to Matthias Urlichs.

#
# Version 0.8, 2013-01-04
#

2013-01-04  Thomas Pircher   <tehpeh@gmx.net>

    * pycrc.py:
    * crc_parser.py:
    * crc_lexer.py:
    * crc_symtable.py:
    * crc_opt.py:
    * crc_models.py:
    * qm.py:
    * doc/pycrc.xml:
    * test/test.py:
    * test/performance.sh:
    Merged (private) bitwise-expression branch to main.
    This adds the highly experimental bitwise-expression (bwe) code generator
    target, which might one day be almost as fast as the table-driven code but
    much smaller.
    At the moment the generated code is bigger and slower than any other
    algorithm, so use at your own risk.

2013-01-02  Thomas Pircher   <tehpeh@gmx.net>

    * crc_opt.py:
    * doc/pycrc.xml:
    Now it is possible to specify the --include option multiple times.

2013-01-02  Thomas Pircher   <tehpeh@gmx.net>

    * doc/pycrc.xml:
    Completely revisited and reworked the documentation.

    * crc_opt.py:
    Updated the command line help screen with more useful command descriptions.

2013-01-01  Thomas Pircher   <tehpeh@gmx.net>

    * all *.py files:
    Removed the -*- coding: Latin-1 -*- string.
    Updated the copyright year to 2013.

    * COPYING:
    Updated the copyright year to 2013.

2012-11-25  Thomas Pircher   <tehpeh@gmx.net>

    * crc_opt.py:
    * doc/pycrc.xml:
    Renamed abbreviations to bbb, bbf, tbl.

2012-11-18  Thomas Pircher   <tehpeh@gmx.net>

    * crc_opt.py:
    It is possible now to abbreviate the algorithms (bbb for bit-by-bit,
    bbf for bit-by-bit-fast and tbl for table-driven).
    Added the list of supported CRC models to the error message when an
    unknown model parameter was supplied.

    * doc/pycrc.xml:
    Documented the possibility to abbreviate the algorithms. Minor
    improvements.

2012-11-17  Thomas Pircher   <tehpeh@gmx.net>

    * README.md:
    Added a note to README.md that version 0.7.10 of pycrc is the last one
    known to work with Python 2.4.

    * doc/pycrc.xml:
    Updated a link to the list of CRC models.

2012-10-22  Thomas Pircher   <tehpeh@gmx.net>

    * README.md:
    Renamed from README.

    * doc/pycrc.xml:
    Updated link to the Catalogue of parametrised CRC algorithms.

#
# Version 0.7.11, 2012-10-20
#

2012-02-26  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    * pycrc.py:
    Improved Python3 compatibility. pycrc now requires Python 2.6 or later.

    * test/test.py:
    Added a test for compiled standard models.

2012-02-26  Thomas Pircher   <tehpeh@gmx.net>

    * crc_models.py:
    Fixed a wrong "check" value of the crc-64-jones model.

    * crc_symtable.py:
    Don't use snprintf() with c89 code, changed to sprintf().

    * test/test.sh:
    * test/test.py:
    Deleted test.sh shell script and replaced it with test.py.

#
# Version 0.7.10, 2012-02-13
#

2012-02-08  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    Bad-looking C code generated; make sure the bit-by-bit(fast) code does not
    contain two instructions on one line. Thanks to "intgr" for the fix.

    * crc_symtable.py:
    Some small code clean-up: use set() when appropriate.

2011-12-19  Thomas Pircher   <tehpeh@gmx.net>

    * crc_models.py:
    * doc/pycrc.xml:
    Added the models crc-12-3gpp, crc-16-genibus, crc-32-bzip2 and crc-64-xz.
    Taken from Greg Cook's Catalogue of parametrised CRC algorithms:
    http://regregex.bbcmicro.net/crc-catalogue.htm

2011-12-14  Thomas Pircher   <tehpeh@gmx.net>

    * doc/pycrc.xml:
    Fixed a mistake in the man page that still used the old model name
    crc-32mpeg instead of crc-32-mpeg.  Thanks to Marek Erban.

#
# Version 0.7.9, 2011-12-08
#

2011-12-08  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    Fixed a bug in the generated C89 code that included stdint.h.
    Thanks to Frank (ftheile).
    Closes issue 3454356.

2011-11-08  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    Fixed a bug in the generated C89 code when using a 64 bit CRC.

    * pycrc.py:
    Using the --verbose option made pycrc quit without error message.

#
# Version 0.7.8, 2011-07-10
#

2011-07-10  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    When generating C code for the C89 or ANSI standard, don't include <stdint.h>.
    This closes issue 3338930

    * crc_symtable.py:
    If no output file name is given while generating a C file, then pycrc will
    #include a hypothetical pycrc.h file instead of a stdout.h file.
    Also, added a comment on that line to make debugging easier.
    Closes issue 3325109.

    * crc_symtable.py:
    Removed unused variable "this_option_optind" in the generated option parser.

#
# Version 0.7.7, 2011-02-11
#

2011-02-11  Thomas Pircher   <tehpeh@gmx.net>

    * all files:
    Updated the copyright year.
    Fixed some coding style issues found by pylint and pychecker.

2010-12-13  Thomas Pircher   <tehpeh@gmx.net>

    * crc_opt.py:
    Substituted the deprecated function atoi() with int(). Closes issue 3136566.
    Thanks to Tony Smith.

    * doc/pycrc.xml:
    Updated the documentation using Windows-style calls to the Python interpreter.

#
# Version 0.7.6, 2010-10-21
#

2010-10-21  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    Fixed a minor bug in the command line parsing of the generated main function.

2010-08-07  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py, crc_parser.py, crc_lexer.py:
    Rewritten macro parser from scratch. Simplified the macro language.

2010-08-03  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py: changed a simple division (/) to a integer division (//)
    for Python3 compatibility.

#
# Version 0.7.5, 2010-03-28
#

2010-03-27  Thomas Pircher   <tehpeh@gmx.net>

    * crc_symtable.py:
    C/C++ code can now be generated for the table-driven algorithm with widths
    that are not byte-ligned or less than 8.
    This feature was heavily inspired by a similar feature in Danjel McGougan's
    Universal Crc (http://mcgougan.se/universal_crc/).

    W A R N I N G: introduced new variable crc_shift, member of the crc_cfg_t
                   structure, that must be initialised manually when the width
                   was undefined during C/C++ code generation.

2010-03-27  Thomas Pircher   <tehpeh@gmx.net>

    * crc_opt.py, crc_algorithms.py:
    Python implementation of the table-driven algorithm can handle widths less
    than 8.
    * crc_symtable.py:
    Suppressed warnings of unused cfg structure on partially defined models.

2010-03-26  Thomas Pircher   <tehpeh@gmx.net>

    * pycrc.py, crc_opt.py, crc_algorithms.py, crc_symtable.py:
    Removed half-baken and confusing --direct option.

2010-02-10  Thomas Pircher   <tehpeh@gmx.net>

    * pycrc.py, crc_opt.py: minor code cleanup.

#
# Version 0.7.4, 2010-01-24
#

2010-01-24  Thomas Pircher   <tehpeh@gmx.net>

    * crc_models.py: changed the xor-in value of the crc-64-jones model.
    * crc_models.py: Set xmodem parameters equal to the zmodem parameters.

2009-12-29  Thomas Pircher   <tehpeh@gmx.net>

    * pycrc.py, crc_opt.py, crc_parser: uniform error messages.
    * crc_opt.py: added a warning for even polynomials.

2009-11-12  Thomas Pircher   <tehpeh@gmx.net>

    * crc_models.py: added crc-16-modbus. Closes issue 2896611.

2009-11-07  Thomas Pircher   <tehpeh@gmx.net>

    * crc_opt.py: Fix for unused variable argv.
    Closes issue 2893224. Thanks to Marko von Oppen.

#
# Version 0.7.3, 2009-10-25
#

2009-10-25  Thomas Pircher   <tehpeh@gmx.net>

    * crc_models.py: renamed crc-32mpeg to crc-32-mpeg.

2009-10-19  Thomas Pircher   <tehpeh@gmx.net>

    * crc_models.py: added crc-64-jones CRC model. Thanks to Waterspirit.

#
# Version 0.7.2, 2009-09-30
#

2009-09-30  Thomas Pircher   <tehpeh@gmx.net>

    * pycrc.py: fixed a bug that caused the result of the Python table-driven
    code not being evaluated at all.
    Closes issue 2870630. Thanks to Ildar Muslukhov.

#
# Version 0.7.1, 2009-04-05
#

2009-03-26  Thomas Pircher   <tehpeh@gmx.net>

	* crc_models.py: added crc-32mpeg. Thanks to Thomas Edwards.

#
# Version 0.7, 2009-02-27
#

2009-02-15  Thomas Pircher   <tehpeh@gmx.net>

	* crc_algorithms.py: code tidy-up.
	* crc_algorithms.py, crc_opt.py: added --direct option.
	* crc_symtable.py: added --direct option for the generated code.

2009-02-03  Thomas Pircher   <tehpeh@gmx.net>

	* crc_opt.py: added --check-hexstring option. Closes issue 2545183.
	Thanks to Arnim Littek.

2009-01-31  Thomas Pircher   <tehpeh@gmx.net>

	* crc_opt.py: added a check for extra arguments on the command line.
	Closes issue 2545185. Thanks to Arnim Littek.

2008-12-24  Thomas Pircher   <tehpeh@gmx.net>

	* doc/pycrc.xml: Added one more example.

#
# Version 0.6.7, 2008-12-11
#

2008-12-11  Thomas Pircher   <tehpeh@gmx.net>

	* all files: run Python's 2to3 script on the files.
	* all files: check the code on a x64 platform.
	* crc_opt.py: fixed a bug that raised an exception when an unknown model
	was selected.

#
# Version 0.6.6, 2008-06-05
#

2008-06-05  Thomas Pircher   <tehpeh@gmx.net>

	* crc_symtable.py: fixed a bug in the print_params function. Closes issue
	1985197. Thanks to Artur Lipowski.

2008-03-03  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.xml: new license: Creative Commons Attribution-Share Alike 3.0
	Unported License.

#
# Version 0.6.5, 2008-03-03
#

2008-03-02  Thomas Pircher   <tehpeh@gmx.net>

	* crc_models.py: added dallas-1-wire 8 bit CRC.

2008-02-07  Thomas Pircher   <tehpeh@gmx.net>

	* crc_symtable.py: fixed a problem with the generated code for
	bit-by-bit-fast algorithms. Thanks to Hans Bacher.

2007-12-19  Thomas Pircher   <tehpeh@gmx.net>

	* crc_models.py: added r-crc-16 model (DECT (cordless digital standard)
	packets A-field according to ETSI EN 300 175-3 v2.1.1).
	Thanks to "raimondo".

2007-12-10  Thomas Pircher   <tehpeh@gmx.net>

	* crc_symtable.py: added extern "C" declaration to the generated C header
	file. Thanks to Nathan Royer.

2007-12-10  Thomas Pircher   <tehpeh@gmx.net>

	* crc_algorithms.py: changed the API to take the CRC model direct as
	parameter. Deleted the need for an obscure "opt" object.

2007-12-09  Thomas Pircher   <tehpeh@gmx.net>

	* crc_opt.py: added --crc-type and --include-file options.
	* crc_models.py: added new file to handle CRC models

#
# Version 0.6.4, 2007-12-05
#

2007-12-05  Thomas Pircher   <tehpeh@gmx.net>

	* crc_symtable.py: fixed a bug in the code generator for the table-driven
	algorithm. Thanks to Tom McDermott. Closes issue 1843774

#
# Version 0.6.3, 2007-10-13
#

2007-10-13  Thomas Pircher   <tehpeh@gmx.net>

	* crc_symtable.py: fixed some portability problems in the generated code.
	Thanks to Helmut Bauer. Closes issue 1812894

2007-09-10  Thomas Pircher   <tehpeh@gmx.net>

	* crc_opt.py: added new models: crc-5, crc-15, crc-16-usb, crc-24, crc-64.
	The new models are taken from Ray Burr's CrcMoose.
	* pycrc.py: --check-file works now with --width < 8. Closes issue 1794343
	* pycrc.py: Removed unnecessary restriction on the width when using the
	bit-by-bit-fast algorithm. Closes issue 1794344

#
# Version 0.6.2, 2007-08-25
#

2007-08-25  Thomas Pircher   <tehpeh@gmx.net>

	* crc_opt.py: the parameter to --check-string was ignored. Closes issue
	1781637
	* pycrc.py: the parameter to --check-string was ignored. Closes issue
	1781637

2007-08-18  Thomas Pircher   <tehpeh@gmx.net>

	* crc_symtable.py: simplified the table-driven code. Closes issue 1727128

2007-08-18  Thomas Pircher   <tehpeh@gmx.net>

	* crc_parser.py: changed the macro language syntax to a better format
	* crc_lexer.py: changed the macro language syntax to a better format
	* crc_symtable.py: changed the macro language syntax to a better format
	* crc_parser.py: Renamed crc_code_gen.py to crc_parser.py
	* all files: Documented the usage of the crc_* modules

#
# Version 0.6.1, 2007-08-12
#

2007-08-12  Thomas Pircher   <tehpeh@gmx.net>

	* test/test.sh: Added test for C89 compilation
	* test/main.c: Added a test case to loop over the input bytes one by one
	* crc_symtable.py: Bugfix in the source code generator for C89:
	Compilation error due to mismatch of parameters in the crc_finalize
	funtion
	* crc_symtable.py: Changes related to 919107: Code generator includes
	reflect() function even if not needed

2007-07-22  Thomas Pircher   <tehpeh@gmx.net>

	* crc_symtable.py: Fixed a typo in the C89 source code generator.
	Thanks to Helmut Bauer

2007-06-10  Thomas Pircher   <tehpeh@gmx.net>

	* all files: Tidied up the documentation
	* all files: Code cleanup

2007-05-15  Thomas Pircher   <tehpeh@gmx.net>

	* crc_opt.py: Deleted obsolete options

#
# Version 0.6, 2007-05-21
#

2007-05-15  Thomas Pircher   <tehpeh@gmx.net>

	* crc_opt.py: Added the --std option to generate C89 (ANSI) compliant code
	* crc_symtable.py: Reduced the size of the symbol table by re-arranging
	items

2007-05-13  Thomas Pircher   <tehpeh@gmx.net>

	* test/test.sh: Added a new check to the test script which validate all
	possible combination of undefined parameters
	* crc_code_gen.py: Made the generated main function cope with command line
	arguments

2007-05-12  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: Added the --generate table option
	* pycrc.py: Added a template engine for the code generation. Split up
	pycrc.py into smaller modules

2007-04-11  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: Added obsolete options again tor legacy reasons.
	Added a better handling of the --model parameter.

2007-04-07  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: Changed licence to the MIT licence. This makes the additional
	clause for generated source code obsolete.
	Changed all command line options with underscores to hyphen (e.g.
	table_driven becomes table-driven).
	Added the option --generate which obsoletes the old options --generate_c
	--generate_h etc.

#
# Version 0.5, 2007-03-25
#

2007-03-25  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: Fixed bug 1686404: unhandled exception when called with
	both options --table_idx_width and --check_file
	* pycrc.py: Eliminated useless declaration of crc_reflect, when not used
	* pycrc.py: Corrected typos in the documentation

#
# Version 0.4, 2007-01-26
#

2007-01-27  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: Eliminated needless documentation of not generated functions

2007-01-23  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: Added more parameter sets (now supported: crc-8, crc-16, citt,
	kermit, x-25, xmodem, zmodem, crc-32, crc-32c, posix, jam, xfer) from
	http://homepages.tesco.net/~rainstorm/crc-catalogue.htm
	* doc/pycrc.xml: Many corrections to the manual (thanks Francesca)
	Documented the new parameter sets
	* test/test.sh: added some new tests, disabled the random loop

2007-01-21  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: Added Doxygen documentation strings to the functions.
	Added the --symbol_prefix option
	Added the --check_file option

	* doc/pycrc.xml: Corrected many typos and bad phrasing (still a lot to do)
	Documented the --symbol_prefix option	                 

2007-01-17  Thomas Pircher   <tehpeh@gmx.net>

	* test/test.sh: Added a non-regression test on the generated C source

#
# Version 0.3, 2007-01-14
#

2007-01-14  Thomas Pircher   <tehpeh@gmx.net>

	* pycrc.py: first public release pycrc v0.3
