diff --git a/CHANGELOG b/CHANGELOG index 0b7154c..8a3e69e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,7 @@ innoextract 1.10 (TBD) - Added support for Inno Setup 6.3.x installers - - Added preliminary support for Inno Setup 6.4.0 + - Added support for Inno Setup 6.4.0 installers - Added support for a modified Inno Setup 5.3.10 variant - Added unit tests, enable with BUILD_TESTS - Replaced USE_ARC4 build option with BUILD_DECRYPTION diff --git a/src/setup/header.cpp b/src/setup/header.cpp index e13d650..bbe9df9 100644 --- a/src/setup/header.cpp +++ b/src/setup/header.cpp @@ -340,8 +340,12 @@ void header::load(std::istream & is, const version & version) { winver.load(is, version); - back_color = util::load(is); - if(version >= INNO_VERSION(1, 3, 3)) { + if(version < INNO_VERSION_EXT(6, 4, 0, 1)) { + back_color = util::load(is); + } else { + back_color = 0; + } + if(version >= INNO_VERSION(1, 3, 3) && version < INNO_VERSION_EXT(6, 4, 0, 1)) { back_color2 = util::load(is); } else { back_color2 = 0; @@ -588,10 +592,12 @@ header::flags header::load_flags(std::istream & is, const version & version) { flagreader.add(BackSolid); } flagreader.add(AlwaysUsePersonalGroup); - flagreader.add(WindowVisible); - flagreader.add(WindowShowCaption); - flagreader.add(WindowResizable); - flagreader.add(WindowStartMaximized); + if(version < INNO_VERSION_EXT(6, 4, 0, 1)) { + flagreader.add(WindowVisible); + flagreader.add(WindowShowCaption); + flagreader.add(WindowResizable); + flagreader.add(WindowStartMaximized); + } flagreader.add(EnableDirDoesntExistWarning); if(version < INNO_VERSION(4, 1, 2)) { flagreader.add(DisableAppendDir); @@ -623,7 +629,7 @@ header::flags header::load_flags(std::istream & is, const version & version) { if(version >= INNO_VERSION(1, 3, 1)) { flagreader.add(UsePreviousAppDir); } - if(version >= INNO_VERSION(1, 3, 3)) { + if(version >= INNO_VERSION(1, 3, 3) && version < INNO_VERSION_EXT(6, 4, 0, 1)) { flagreader.add(BackColorHorizontal); } if(version >= INNO_VERSION(1, 3, 10)) { diff --git a/src/setup/version.cpp b/src/setup/version.cpp index fbdbc07..7f68af2 100644 --- a/src/setup/version.cpp +++ b/src/setup/version.cpp @@ -184,7 +184,8 @@ const known_version versions[] = { { "Inno Setup Setup Data (6.0.0) (u)", INNO_VERSION_EXT(6, 0, 0, 0), version::Unicode }, { "Inno Setup Setup Data (6.1.0) (u)", INNO_VERSION_EXT(6, 1, 0, 0), version::Unicode }, { "Inno Setup Setup Data (6.3.0)", INNO_VERSION_EXT(6, 3, 0, 0), version::Unicode }, - { "Inno Setup Setup Data (6.4.0)", INNO_VERSION_EXT(6, 4, 0, 0), version::Unicode }, + { "Inno Setup Setup Data (6.4.0)", /* prerelease */ INNO_VERSION_EXT(6, 4, 0, 0), version::Unicode }, + { "Inno Setup Setup Data (6.4.0.1)", /* 6.4.0 */ INNO_VERSION_EXT(6, 4, 0, 1), version::Unicode }, }; } // anonymous namespace