aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/msuengine.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-01-16 16:35:36 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-01-16 22:59:50 -0600
commit5ed5a24fae06b35351235d708b6ab410d8310d33 (patch)
tree1b3e15d3d1fdb5b81c2bb8095f64c8f40a44c464 /src/burn/engine/msuengine.cpp
parenteee408f4f52823038ca6da83693efd135c8511c8 (diff)
downloadwix-5ed5a24fae06b35351235d708b6ab410d8310d33.tar.gz
wix-5ed5a24fae06b35351235d708b6ab410d8310d33.tar.bz2
wix-5ed5a24fae06b35351235d708b6ab410d8310d33.zip
Add BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT.
Make BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT uninstall even if detected absent. Remove fPseudoBundle.
Diffstat (limited to 'src/burn/engine/msuengine.cpp')
-rw-r--r--src/burn/engine/msuengine.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/burn/engine/msuengine.cpp b/src/burn/engine/msuengine.cpp
index 44386a6d..091bbe62 100644
--- a/src/burn/engine/msuengine.cpp
+++ b/src/burn/engine/msuengine.cpp
@@ -124,6 +124,10 @@ extern "C" HRESULT MsuEnginePlanCalculatePackage(
124 execute = pPackage->Msu.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; 124 execute = pPackage->Msu.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE;
125 break; 125 break;
126 126
127 case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT:
128 execute = BOOTSTRAPPER_ACTION_STATE_INSTALL;
129 break;
130
127 default: 131 default:
128 execute = BOOTSTRAPPER_ACTION_STATE_NONE; 132 execute = BOOTSTRAPPER_ACTION_STATE_NONE;
129 break; 133 break;
@@ -134,10 +138,15 @@ extern "C" HRESULT MsuEnginePlanCalculatePackage(
134 switch (pPackage->requested) 138 switch (pPackage->requested)
135 { 139 {
136 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; 140 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough;
141 case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough;
137 case BOOTSTRAPPER_REQUEST_STATE_REPAIR: 142 case BOOTSTRAPPER_REQUEST_STATE_REPAIR:
138 execute = BOOTSTRAPPER_ACTION_STATE_INSTALL; 143 execute = BOOTSTRAPPER_ACTION_STATE_INSTALL;
139 break; 144 break;
140 145
146 case BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT:
147 execute = pPackage->Msu.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE;
148 break;
149
141 default: 150 default:
142 execute = BOOTSTRAPPER_ACTION_STATE_NONE; 151 execute = BOOTSTRAPPER_ACTION_STATE_NONE;
143 break; 152 break;
@@ -172,6 +181,7 @@ extern "C" HRESULT MsuEnginePlanCalculatePackage(
172 switch (pPackage->requested) 181 switch (pPackage->requested)
173 { 182 {
174 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; 183 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough;
184 case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough;
175 case BOOTSTRAPPER_REQUEST_STATE_REPAIR: 185 case BOOTSTRAPPER_REQUEST_STATE_REPAIR:
176 rollback = !pPackage->fPermanent ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; 186 rollback = !pPackage->fPermanent ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE;
177 break; 187 break;