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
Don't imply that the file is not an Inno Setup installer if it looks
like one but we could not determine the setup header location or
failed to parse the data version number.
Instead suggest to file a bug report.
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
This relied on internal CMake variables and did not detected all
compiler and flag changes which could influence library search changes.
Users should clear the build directory when making such config changes.
This was needed with older CMake versions to work around CMake searching
under lib with -m32 instead of under lib32 for platforms where lib
contains 64-bit binaries. This has since been fixed in CMake and users
of older CMake versions can add the lib32 directories to
CMAKE_LIBRARY_PATH to work around the issue on their end.
With newer CMake and Boost versions these checks fail because the
boost-config.cmake files shipped with Boost use imported targets instead
of library paths and try_compile does not add these imported targets to
the generated project.
See: https://gitlab.kitware.com/cmake/cmake/issues/11260
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