diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-04-04 17:38:26 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-04-05 13:52:11 -0500 |
commit | 75f4dce4ea53b82f99932573f27ccfc799d0c5c1 (patch) | |
tree | 4225579b861b4998138c19e9108d3cf91b13ad80 /src/burn/engine/core.cpp | |
parent | 44c2ca035c1a5d52a6b3299ba3abbb8b88f7f1c0 (diff) | |
download | wix-75f4dce4ea53b82f99932573f27ccfc799d0c5c1.tar.gz wix-75f4dce4ea53b82f99932573f27ccfc799d0c5c1.tar.bz2 wix-75f4dce4ea53b82f99932573f27ccfc799d0c5c1.zip |
Add option for BundlePackage to be hidden in ARP like MsiPackage.
Requires support for this feature in the nested bundle.
Simplest implementation of 4454
Diffstat (limited to 'src/burn/engine/core.cpp')
-rw-r--r-- | src/burn/engine/core.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp index 0bbf7039..be8c011f 100644 --- a/src/burn/engine/core.cpp +++ b/src/burn/engine/core.cpp | |||
@@ -1044,6 +1044,12 @@ static HRESULT CoreRecreateCommandLine( | |||
1044 | ExitOnFailure(hr, "Failed to append relation type to command-line."); | 1044 | ExitOnFailure(hr, "Failed to append relation type to command-line."); |
1045 | } | 1045 | } |
1046 | 1046 | ||
1047 | if (pInternalCommand->fArpSystemComponent) | ||
1048 | { | ||
1049 | hr = StrAllocConcatFormatted(psczCommandLine, L" /%ls", BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT); | ||
1050 | ExitOnFailure(hr, "Failed to append system component to command-line."); | ||
1051 | } | ||
1052 | |||
1047 | if (fPassthrough) | 1053 | if (fPassthrough) |
1048 | { | 1054 | { |
1049 | hr = StrAllocConcatFormatted(psczCommandLine, L" /%ls", BURN_COMMANDLINE_SWITCH_PASSTHROUGH); | 1055 | hr = StrAllocConcatFormatted(psczCommandLine, L" /%ls", BURN_COMMANDLINE_SWITCH_PASSTHROUGH); |
@@ -1633,6 +1639,29 @@ extern "C" HRESULT CoreParseCommandLine( | |||
1633 | } | 1639 | } |
1634 | } | 1640 | } |
1635 | } | 1641 | } |
1642 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT), BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT, lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT))) | ||
1643 | { | ||
1644 | // Get a pointer to the next character after the switch. | ||
1645 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT)]; | ||
1646 | |||
1647 | // Switch without an argument is allowed. An empty string means FALSE, everything else means TRUE. | ||
1648 | if (L'\0' != wzParam[0]) | ||
1649 | { | ||
1650 | if (L'=' != wzParam[0]) | ||
1651 | { | ||
1652 | fInvalidCommandLine = TRUE; | ||
1653 | TraceLog(E_INVALIDARG, "Invalid switch: %ls", argv[i]); | ||
1654 | } | ||
1655 | else | ||
1656 | { | ||
1657 | pInternalCommand->fArpSystemComponent = L'\0' != wzParam[1]; | ||
1658 | } | ||
1659 | } | ||
1660 | else | ||
1661 | { | ||
1662 | pInternalCommand->fArpSystemComponent = TRUE; | ||
1663 | } | ||
1664 | } | ||
1636 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1)) | 1665 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1)) |
1637 | { | 1666 | { |
1638 | if (i + 3 >= argc) | 1667 | if (i + 3 >= argc) |