This repository has been archived by the owner on Jan 30, 2021. It is now read-only.
Releases: rr-/CRC-manipulator
Releases · rr-/CRC-manipulator
Maintenance
Little GUI bugfixes
GUI version didn't compute checksums properly...
...until it exited, where it magically flushed the output to the target files.
Now the checksums should be updated directly after patching.
- Fixed blocking GUI if path didn't exist.
POSIX love
- 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
CLI love
- 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
Bugfixes
Test support
Implemented unit tests for CRC patching and CRC checksum computing.
CRC16CCITT fixes
Although it's currently unavailable for user usage, CRC16CCITT was broken in two ways:
- Since the C++11 refactors, patching stopped working altogether
- The parameters were wrong (it didn't swap the checksum when it should)
Build fixes
0.3.1 Improved text placement in README
Major code overhaul
- 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