Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BCJ2 support #15

Merged
merged 7 commits into from
Apr 29, 2022
Merged

Add BCJ2 support #15

merged 7 commits into from
Apr 29, 2022

Conversation

bodgit
Copy link
Owner

@bodgit bodgit commented Apr 29, 2022

This is the one major missing feature as you invariably cannot extract x86 executables or libraries without it.

Fixes #4
Fixes #6
Fixes #13
Fixes #14

io.SectionReader is needed if there are multiple packed streams in the case of
a complex coder.
Saves having to iterate over each coder to calculate the totals each
time.
Code previously cheated and passed a single io.ReadCloser which won't
work for complex coders.

Also tweak the decompressor signature to be an explicit slice rather
than variadic. Technically a breaking API change but there are no
external decompressors.
Now I (hopefully) understand how the bind pairs work, support complex
coders and decompressor chaining (which was probably working by fluke
before).
Contains various I/O helpers.
@bodgit bodgit added the enhancement New feature or request label Apr 29, 2022
@bodgit bodgit self-assigned this Apr 29, 2022
@bodgit bodgit merged commit 60312a6 into master Apr 29, 2022
@bodgit bodgit deleted the bcj2 branch April 29, 2022 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

sevenzip: TODO complex coders Fail to decompress with 7z file containing *.exe file BCJ2 support
1 participant