Changes:
- Added support for Inno Setup 5.5.7 (and 5.5.8) installers
- Added a --collisions=rename-all option
- Changed --collisions=rename to omit the suffix for the file that
would have been extracted with --collisions=overwrite instead of the
first encountered file
- Fixed @lang suffix sometimes missing for the first file with the
--collisions=rename option
- Fixed build error with CMake 3.5
- Now compiles in C++14 mode if supported
- Unsafe characters in special constant strings (ie ':' in {code:…})
are now replaced with '$'
- Windows: Fixed error message if the source file could not be opened
- Windows: Fixed progress bar flickering while printing extracted
filenames
- Windows binaries: Fixed crash on platforms without AVX support
Previously the default first file was left without a suffix (unless it
is language-specific). Now the file that would be installed normally
is left without suffix.
The suffix was missing for the first file when the files in the
collision set differed by both language and component.
Old behavior (excluding --default-language interaction):
common | common | suffixes
language | component | first | others
------------------------------------------
✗ ✗ | file | file#c@l
✓ ✗ | file | file#c
✗ ✓ | file@l | file@l
✓ ✓ | file | file$i
New behavior:
common | common | suffixes
language | component | first | others
------------------------------------------
✗ ✗ | file@l | file#c@l
✓ ✗ | file | file#c
✗ ✓ | file@l | file@l
✓ ✓ | file | file$i
Previously this would fail under CMake older than 3.1 if "file" or
"variable" were variables.
For CMake 3.1+ this was fixed in commit 017057.
See: issue #50
This makes the build system more rubust against stray variables
coming from included CMake scripts provided by the system.
Fixes build with CMake 3.5 (tested with 3.5.0-rc3).
Fixes: issue #50
Changes:
- Added support for Inno Setup 5.5.6 installers
- Added support for a modified Inno Setup 5.5.0 variant
- Added support for building without iconv
(Windows-1252 and UTF-16LE only)
- Added warnings for .bin files that are not part of the installer
- Added a simple --include (-I) option to filter files thanks to
Alexandre Detiste
- Added a --list-languages option to list available languages
- Added a --exclude-temp (-m) option to not extract temporary files
- Added a --language-only option to skip language-independent files
- Added a --collisions option to abort or rename files on collision
- Added a --default-language option to prefer a language in case of
file collisions
- Added a --gog-game-id option to print the GOG.com game ID for
Galaxy-ready installers
- Added a --gog (-g) option to extract additional .bin files using
unrar or unar
- Fixed handling of spaces in the --data-dir option
- Fixed an infinite loop with truncated LZMA streams
- Fixed handling of forward slashes in stored file paths
- Fixed size display for powers of 1024
- Fixed loading headers if there are encrypted chunks
- Fixed file collisions not being handled case-insensitively
- Files will now be extracted into the same directory even if the
stored case differs
- Empty directories are now created correctly when extracting
- Skipped files in encrypted chunks are now listed individually
- Temporary files are now marked in file listings
- Error summary is now written to stderr when using --quiet
- Colors are now only enabled automatically if $TERM is set to
something other than "dumb"
- Improved error and warning messages
- Build system improvements
- Debug output can now be enabled separately from debug builds
- Windows: Added support for using the Win32 API for string encoding
conversion
- Windows: Fixed unicode console output