Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR builds on #39 and adds support for individual files larger than 4 Gib and for archives containing more than 65535 files, both for reading and for writing.
The new code to handle large files or large archives was lightly tested against Info-Zip (
zip
andunzip
under Linux).For small files and small archives, the only change is in how files are added to ZIP archives in write mode: instead of adding a data descriptor after the file data (it is unclear how to do this correctly for files larger than 4 Gib), we patch the local file header with the final sizes and CRC. The latter is what Info-Zip does, apparently.
Tiny change in the API: the "extra" data attached to files used to be exposed as a string in the
entry
record and as arguments to theadd
functions. This was not quite right, since this data is actually a list of (tag, data) blocks. For simplicity, this PR removes the "extra" field and optional arguments from the API.Closes: #35