Changes:
- Added preliminary support for Inno Setup 6.1.0
- Added support for a modified Inno Setup 5.4.2 variant
- Fixed output directory being created for unsupported installers
- Fixed some safe non-ASCII characters being stripped from filenames
- Fixed handling of path separators in Japanese and Korean installers
- Fixed build with newer Boost versions
- Windows: Fixed heap corruption
- Windows: Fixed garbled output
Windows alwasy uses 0x5C as directory seperator even with codepages
that map this byte to a different character (unless it is part of a
multi-byte character). Specifically this affects Japanese (cp 932) and
Korean (cp 949) where the path seperator ends up as ¥ or ₩ respectively.
Fixes: issue #101
Changes:
- Added support for Inno Setup 6.0.0 installers
- Added support for pre-release Inno Setup 5.6.2 installers used by GOG
- Added support for two modified Inno Setup 5.5.7 variants
- Added support for Inno Setup 1.3.0 to 1.3.23
- Added support for My Inno Setup Extensions installers older than
3.0.6.1
- Added support for modified Inno Setup variants using an alternative
setup loader magic
- Added support for using boost_{zlib,bzip2} when statically linking
Boost
- Added support for automatically reading external setup.0 files
- Encoding for non-Unicode installers is now determined from the
languages supported by the installer, overridable using the
--codepage option
- Implemented parsing of GOG Galaxy architecture constraints
- The architecture-specific suffixes @32bit and @64bit are now used to
disambiguate colliding files
- Fixed extracting files from slices larger than 2 GiB with 32-bit
builds
- Fixed output path for files with absolute paths (canonicalization now
strips all unsafe characters)
- Fixed output directory being created even when not extracting files
- Fixed a hang when using the --language option
- Improved checksum verification for files reconstructed from GOG
Galaxy file parts
- Changed header parsing to select the first version without warnings
and failing that the first without errors
- Changed filesystem and output encoding to WTF-8 (extended UTF-8) to
represent broken UTF-16 data
- File parts are extracted in the output file order to allow calculating
the output file checksum in more cases.
- If the file parts could not be re-ordered, the file is read back
to calculate the checksum when extracting. When testing only,
no warning is displayed that the checksum could not be calculated.
Fixes: issue #81
This implementation is based on the My Inno Setup Extensions changelog
http://web.archive.org/web/20010306024721/http://www.wintax.nl/isx/
as well as source for ISX version 2.0.10 and 3.0.6.1 plus some RE.
The oldest ISX version available to be tested was 1.3.10.
Fixes: issue #85
The previously supported "1.3.21" was really a misidentified 1.3.24.
This is mostly based on the Inno Setup changelog for version 1.3:
http://www.jrsoftware.org/files/is1.3-whatsnew.htm
Only installers for the following versions were available to be tested:
- 1.3.3
- 1.3.9
- 1.3.10
- 1.3.21
These characters are not allowed in filenames on Windows.
This fixes files with absolute paths escaping the current directory
under Windows or resulting in an error when using an output directory.
Fixes: issue #69
Changes:
- Added support for Inno Setup 5.6.0 installers
- Added support for new GOG installers with GOG Galaxy file parts
- Added support for encrypted installers with the --password (-P) and
--password-file options
- Added a --show-password option to print password check information
- Added a --check-password option to abort if the provided password
does not match the stored checksum
- Added a --info (-i) convenience option to print information about
the installer
- Added a --list-sizes option to print file sizes even with --quiet
or --silent
- Added a --list-checksums option to print file checksums
- Added a --data-version (-V) option to print the data version and exit
- Added a --no-extract-unknown (-n) option to abort on unknown
Inno Setup data versions
- Fixed building in paths that contain regex expressions
- Fixed case-sensitivity in parent directory when creating
subdirectories
- Fixed .bin slice file names used with Inno Setup versions older
than 4.1.7
- Fixed build with newer libc++ versions
- Made loading of .bin slice files case-insensitive
- The --test option can now be combined with --extract to abort on
file checksum errors
- Now compiles in C++17 mode if supported