Browse Source

Add support for Inno Setup 5.5.0 installers

pull/1/head
Daniel Scharrer 14 years ago
parent
commit
e392055b59
  1. 2
      README.md
  2. 2
      VERSION
  3. 19
      src/setup/header.cpp
  4. 4
      src/setup/header.hpp
  5. 4
      src/setup/icon.cpp
  6. 1
      src/setup/icon.hpp
  7. 2
      src/setup/version.cpp

2
README.md

@ -1,7 +1,7 @@
# Inno Extract - A tool to unpack installers created by Inno Setup
[Inno Setup](http://www.jrsoftware.org/isinfo.php) is a tool to create installers for Microsoft Windows applications. Inno Extracts allows to extract such installers under non-windows systems without running the actual installer using wine. Inno Extract currently supports installers created by Inno Setup 1.2.10 to 5.4.3.
[Inno Setup](http://www.jrsoftware.org/isinfo.php) is a tool to create installers for Microsoft Windows applications. Inno Extracts allows to extract such installers under non-windows systems without running the actual installer using wine. Inno Extract currently supports installers created by Inno Setup 1.2.10 to 5.5.0.
Inno Extract is available under the ZLIB license - see the LICENSE file.

2
VERSION

@ -1,3 +1,3 @@
Inno Extract 1.2-git
Inno Setup 1.2.10 to 5.4.3
Inno Setup 1.2.10 to 5.5.0
(C) 2011-2012 Daniel Scharrer <daniel@constexpr.org>

19
src/setup/header.cpp

@ -211,6 +211,11 @@ void header::load(std::istream & is, const version & version) {
} else {
uninstallable.clear();
}
if(version >= INNO_VERSION(5, 5, 0)) {
is >> encoded_string(close_applications_filter, version.codepage());
} else {
close_applications_filter.clear();
}
if(version >= INNO_VERSION(5, 2, 5)) {
is >> ansi_string(license_text);
is >> ansi_string(info_before);
@ -389,7 +394,9 @@ void header::load(std::istream & is, const version & version) {
disable_program_group_page = stored_enum<stored_bool_auto_no_yes>(is).get();
}
if(version >= INNO_VERSION(5, 3, 6)) {
if(version >= INNO_VERSION(5, 5, 0)) {
uninstall_display_size = load_number<uint64_t>(is);
} else if(version >= INNO_VERSION(5, 3, 6)) {
uninstall_display_size = load_number<uint32_t>(is);
} else {
uninstall_display_size = 0;
@ -524,6 +531,13 @@ void header::load(std::istream & is, const version & version) {
if(version >= INNO_VERSION(5, 3, 9)) {
flags.add(DisableWelcomePage);
}
if(version >= INNO_VERSION(5, 5, 0)) {
flags.add(CloseApplications);
flags.add(RestartApplications);
flags.add(AllowNetworkDrive);
} else {
options |= AllowNetworkDrive;
}
options |= flags;
@ -615,6 +629,9 @@ NAMES(setup::header::flags, "Setup Option",
"signed uninstaller",
"use previous language",
"disable welcome page",
"close applications",
"restart applications",
"allow network drive",
"uninstallable",
"disable dir page",
"disable program group page",

4
src/setup/header.hpp

@ -89,6 +89,9 @@ struct header {
SignedUninstaller,
UsePreviousLanguage,
DisableWelcomePage,
CloseApplications,
RestartApplications,
AllowNetworkDrive,
// Obsolete flags
Uninstallable,
@ -140,6 +143,7 @@ struct header {
std::string app_modify_path;
std::string create_uninstall_registry_key;
std::string uninstallable;
std::string close_applications_filter;
std::string license_text;
std::string info_before;
std::string info_after;

4
src/setup/icon.cpp

@ -90,6 +90,9 @@ void icon_entry::load(std::istream & is, const version & version) {
if(version >= INNO_VERSION(5, 4, 2)) {
flags.add(ExcludeFromShowInNewInstall);
}
if(version >= INNO_VERSION(5, 5, 0)) {
flags.add(PreventPinning);
}
options = flags;
}
@ -102,6 +105,7 @@ NAMES(setup::icon_entry::flags, "Icon Option",
"use app paths",
"folder shortcut",
"exclude from show in new install",
"prevent pinning",
"run minimized",
)

1
src/setup/icon.hpp

@ -41,6 +41,7 @@ struct icon_entry : public item {
UseAppPaths,
FolderShortcut,
ExcludeFromShowInNewInstall,
PreventPinning,
// obsolete options:
RunMinimized
);

2
src/setup/version.cpp

@ -141,6 +141,8 @@ const known_version versions[] = {
{ "Inno Setup Setup Data (5.3.10) (u)", INNO_VERSION_EXT(5, 3, 10, 0), true },
{ "Inno Setup Setup Data (5.4.2)", INNO_VERSION_EXT(5, 4, 2, 0), false },
{ "Inno Setup Setup Data (5.4.2) (u)", INNO_VERSION_EXT(5, 4, 2, 0), true },
{ "Inno Setup Setup Data (5.5.0)", INNO_VERSION_EXT(5, 5, 0, 0), false },
{ "Inno Setup Setup Data (5.5.0) (u)", INNO_VERSION_EXT(5, 5, 0, 0), true },
};
} // anonymous namespace

Loading…
Cancel
Save