Releases: rikyoz/bit7z
Bit7z v4.0.10
Changes from v4.0.9
- Added support for disabling format detection via file extension (workaround for #277).
- Now compiling the library with the options
-DBIT7Z_AUTO_FORMAT=ON -DBIT7Z_DETECT_FROM_EXTENSION=OFF
will make it only use file signatures for format detection.
- Now compiling the library with the options
- Added support for Zstd archive format.
- Fixed getting last error code on old versions of MSVC.
- Fixed and improved path sanitization (close issue #268).
- Fixed int8_t storage in BitPropVariant on Arm architectures.
- Fixed arm alignment compiler errors (by @petermarko in #286).
- Allowed specifying path to 7z library in tests (by @petermarko in #288).
- Use the
BIT7Z_TESTS_7Z_LIBRARY_PATH
build option to set the path to 7-Zip shared library to be used for running the tests of bit7z.
- Use the
- Allowed running tests on target when cross-compiling (by @petermarko in #289).
- Fixed BitArchiveReader's isMultiVolume() and volumesCount() (close issue #291).
- Now these methods will take into account when a multi-volume archive is opened with the whole archive format rather than
BitFormat::Split
, and they will report the correct result.
- Now these methods will take into account when a multi-volume archive is opened with the whole archive format rather than
- Fixed tests with musl (by @petermarko in #292).
New Contributors
- @petermarko made their first contribution in #286
Full Changelog: v4.0.9...v4.0.10
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.9
Changes from v4.0.8:
- Fixed unbuffered streams causing poor performance with MSVC 2015 (by @C-53 in #250).
- Added support for checking archive start at the beginning of a file (closes #235 and #236).
- Fixed long path support for UNC paths (closes #240).
- Increased maximum dictionary size limit for LZMA (closes issue #256).
- Add support for using format properties in BitInputArchive (closes issue #248).
- Improved the error handling in OpenCallback.
- Improved Windows API usages in fsutil.
- Updated CPM.cmake to v0.40.2.
- Fixed missing change from v3 in README (closes issue #245).
- Fixed the badges in the README.
- Improved the README and the Wiki.
Full Changelog: v4.0.8...v4.0.9
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.8
Changes from v4.0.7:
- Fixed missing header (gcc14) (by @SGSSGene in #218).
- Fixed build failing when cross-compiling using MinGW on Linux (closed issue #222).
- Fixed conversion from
FILETIME
tofile_time_type
when using libstdc++. - Rewrote directory indexing algorithm to not use recursion (closed issue #223).
- This fixes possible stack overflow errors that could happen while indexing deeply nested directory structures.
- Optimized
BitArchiveReader::items()
. - Optimized indexing of directories.
- Disabled buffering of file streams to improve performance (issue #224).
- Now bit7z is considerably faster while reading and writing files during extraction and compression operations.
- For example, this graph shows the improvement in the runtime of a test program between v4.0.7 and v4.0.8:
- There is still some overhead compared to 7-zip which will require some more work. I plan to remove it for the next version v4.1.
- Fixed support for BSD operating systems (closed issue #230).
- Added
BitOutputArchive::addDirectoryContents
andBitFileCompressor::compressDirectoryContents
methods (closed issue #226).
Full Changelog: v4.0.7...v4.0.8
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.7
Changes from v4.0.6:
- Fixed missing conversion from tstring to path in
BitItemsVector::indexPaths
(closes #199). - Updated project version in
CMakeLists.txt
. - Fixed GitHub actions.
- Added
nativePath()
method toBitArchiveItem
. - Added support for recursively deleting the content of folder items within archives.
- Previously,
BitArchiveEditor
could only delete the metadata of the folder, not its content.// Deleting all the content of the "folder". // Note: if no policy is passed, the method will still use the old behavior. editor.deleteItem("folder", DeletePolicy::RecurseDirs);
- Previously,
- Fixed
BitOutputArchive::addFiles
overloads.- Previously, the method overload prevented you from using the method's default arguments.
- Now you can, for example, pass only one argument:
// Adds all the files within the given path, recursively including the ones inside subfolders. // Previously, you had to explicitly do archive.addFiles("directory/path/", "*", true); archive.addFiles("directory/path/");
- Optimized
BitArchiveReader::items()
.- From my tests, now the method is on average ~25% faster than before.
- Added missing headers in
bit7z.hpp
. - Updated minimum required version of CMake.
- Improved and updated the README.
Full Changelog: v4.0.6...v4.0.7
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.6
Changes from v4.0.5:
- Fixed creation and access time metadata of extracted files not being restored (partial fix for #184).
- Fixed error messages when opening file streams on MinGW.
- Fixed a linking issue with some versions of MinGW (issue #193).
- Fixed project version in CMakeLists.txt.
- Fixed
BIT7Z_DISABLE_USE_STD_FILESYSTEM
not working on old macOS toolchains (issue #194). - Allowed to use
BitInputArchive
'sConstIterator
in const variables.
Full Changelog: v4.0.5...v4.0.6
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.5
Changes from v4.0.4:
- Fixed building using some versions of GCC.
- Fixed building using GCC on macOS.
- Fixed a missing nullptr check when extracting to a fixed-size buffer.
- Fixed the empty name file alias not being used in some edge cases.
- Added a check for invalid indices in
BitInputArchive::extractTo
. - Avoided the unnecessary creation of a
FilesystemItem
object inOpenCallback
. - Added the option
BIT7Z_DISABLE_USE_STD_FILESYSTEM
, which makes bit7z always useghc::filesystem
instead ofstd::filesystem
.- This option allows you to work around any possible bug in compilers' implementation of
std::filesystem
(e.g., #181). - By default, this option is disabled, and bit7z will always try to use
std::filesystem
when available (as in previous versions).
- This option allows you to work around any possible bug in compilers' implementation of
- Fixed the
std::copy_n
warning in old versions of MSVC. - Defined
/Zc:__cplusplus
only when using MSVC 15.7 and later. - Updated examples in the README.
Full Changelog: v4.0.4...v4.0.5
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.4
Changes from v4.0.3:
- Fixed manually linking bit7z when enabling BIT7Z_AUTO_FORMAT (close issue #173).
- Improved error messages when opening file streams.
- Cleaned up unused code and fixed comments.
- Moved string utility functions to a separate source file.
- Improved tests.
- Fixed some static analysis warnings.
- Fixed some implicit signed/unsigned conversions.
- Added more compiler warning flags on GCC/Clang.
- Updated CPM.cmake to 0.38.6.
- Added a GitHub action for running tests using most bit7z build options combinations.
Full Changelog: v4.0.3...v4.0.4
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.3
Changes from v4.0.2:
- Fixed
bit7z::narrow
on Windows (close issue #172). - Updated the project version in
CMakeLists.txt
. - Fixed build on GCC 5.
- Improved the unit tests.
- Reduced code duplication in unit tests.
- Fixed some warnings from static analysis tools.
- Fixed the code formatting.
Full Changelog: v4.0.2...v4.0.3
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.2
Changes from v4.0.1:
- Fixed build on Android API level 23 and earlier (issue #157).
- Fixed some warnings from static analysis tools like PVS-Studio and clang-tidy.
- Fixed missing proper conversions between
tstring
andfs::path
throughout the code.- This should also fix some issues with correctly handling UTF-8 characters in strings.
- Added more tests for when compiling using
BIT7Z_USE_SYSTEM_CODEPAGE
. - Fixed support to using both
BIT7Z_USE_NATIVE_STRING
andBIT7Z_AUTO_PREFIX_LONG_PATHS
. - Always use
FormatMessageA
for error messages on Windows. - Fixed and improved
bit7z::to_tstring
.
Full Changelog: v4.0.1...v4.0.2
This is a maintenance release. For a full changelog of the other changes introduced by bit7z v4.0.x, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇
Bit7z v4.0.1
Changes from v4.0.0:
- Fix compression of filesystem items with names having non-ASCII characters
- Improve the README
Full Changelog: v4.0.0...v4.0.1
This is a maintenance release. For a full changelog of bit7z v4.0.x, please check https://github.com/rikyoz/bit7z/releases/tag/v4.0.0.
Binaries built using the default options with Clang10, GCC 9, MinGW 8, MSVC 2015, 2017, 2019, and 2022 👇