- Fixed patches not being fully applied until GUI exited.
- Fixed disabled GUI if either path couldn't be opened.
- Added support for CRC32-POSIX! (
cksum
from GNU coreutils) - Fixed support for large files (+ added unit tests for file size type)
- Fixed buffer overflow in tests
- Fixed tests depending on each other
- Improved CLI help:
- Fixed algorithm table being printed to stdout rather than stderr on errors
- Changed list of available algorithms to print short info about each one
- Changed usage to be printed only on errors related to input arguments
- Added blank linke between usage and error messages
- Reworded things a little
- Changed strip to strip everything in build script
- Refactoring:
- Replaced CRC class hierarchy with simple factories
- Introduced CRC::Specs that replaces getters and big CRC constructor
- Replaced private methods in CRC with pimpl idiom
- Flattened file hierarchy in lib/
- Fixed file names not following snake case convention
- Fixed test function names not following camelCase convention
- Moved types coupled to CRC inside CRC
- Changed tests to automatically test all future CRCs (by using CRC factory)
- Organized #includes
- Replaced CRC class hierarchy with simple factories
- Restored support for CRC16CCITT and CRC16IBM in CLI
- Restored support for calculating CRCs in CLI
- Fixed CLI --help returning 1 instead of 0
- Added optimization flags to build script
- Removed test binaries from distribution in build script
- Further code cleanup:
- CRC32, CRC16IBM and CRC16CCITT implementations merged into common code
- Improved CLI error handling
- Improved progress handling
- Removed stdin/stdout support leftovers
- Replaced exit() calls with return statements
- Fixed -p, -i and -o arguments
- Added unit tests so these options never break again
- Added unit tests using Catch framework
- Fixed broken CRC16CCITT support (even though it's currently unused)
- Fixed patch computing
- Changed the algorithm - turns out the parameters were wrong since day zero
- Fixed build problems
- Switched to waf build system (replaces shell scripts)
- Switched to Qt
- Improved overall code quality
- Incorporated C++11 features:
- smart pointers
- throwing integers replaced with proper exceptions
- improved type system
- Removed debug macros
- Incorporated C++11 features:
- Switched to semantic versioning
- Changed version maintenance to be based on git tags
- Fixed -p argument
- Fixed --overwrite argument
- Removed pipe support (its performance was deplorable, anyway)
- Simplified code
- Replaced makefile with a shell script that compiles fine under GNU/Linux, Cygwin and MinGW
- Support for files larger than 4GB
- Simplified CLI parameters
- Removed CLI parameter support for types other than CRC32
- Removed --compute option
- Fixed bug in --position
- Added sanity check: input path == output path
- Added warning when not specifying all CRC digits
- Fully reversed CRC16
- Removed brute force routines
- Improved code quality
- got rid of many unnecessary methods in CRC
- added
FileFactory
- moved
FileAdapter
IFile
- Removed warning when printing to stdout without proper redirection
- Optimized I/O wrappers (buffer size increased from 1B to 8K)
- Added simple progressbar
- Added support for negative --position
- Changed --help so that it fits to 80 characters
- Improved makefile
- Wrapped everything in
CRC
andFile
classes - Introduced I/O buffered wrappers that replace reading whole file into RAM
- Added initial CRC16-CCITT support
- Added initial CRC16-IBM support
- Added fallback bruteforce approach
- Added polynomial inverse algorithm (not yet used)
- Added option to compute the checksum rather than patching the file
- Added nice debug everywhere
- CRC32 support
- Support for arbitrary position
- Option to overwrite or insert the patch
- Support for reading from stdin and writing to stdio