aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/exeengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/exeengine.cpp')
-rw-r--r--src/burn/engine/exeengine.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/burn/engine/exeengine.cpp b/src/burn/engine/exeengine.cpp
index cf10448f..b13650e5 100644
--- a/src/burn/engine/exeengine.cpp
+++ b/src/burn/engine/exeengine.cpp
@@ -165,7 +165,7 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage(
165 switch (pPackage->requested) 165 switch (pPackage->requested)
166 { 166 {
167 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: 167 case BOOTSTRAPPER_REQUEST_STATE_PRESENT:
168 execute = pPackage->Exe.fPseudoBundle ? BOOTSTRAPPER_ACTION_STATE_INSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; 168 execute = BOOTSTRAPPER_ACTION_STATE_NONE;
169 break; 169 break;
170 case BOOTSTRAPPER_REQUEST_STATE_REPAIR: 170 case BOOTSTRAPPER_REQUEST_STATE_REPAIR:
171 execute = pPackage->Exe.fRepairable ? BOOTSTRAPPER_ACTION_STATE_REPAIR : BOOTSTRAPPER_ACTION_STATE_NONE; 171 execute = pPackage->Exe.fRepairable ? BOOTSTRAPPER_ACTION_STATE_REPAIR : BOOTSTRAPPER_ACTION_STATE_NONE;
@@ -177,6 +177,9 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage(
177 case BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT: 177 case BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT:
178 execute = pPackage->Exe.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; 178 execute = pPackage->Exe.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE;
179 break; 179 break;
180 case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT:
181 execute = BOOTSTRAPPER_ACTION_STATE_INSTALL;
182 break;
180 default: 183 default:
181 execute = BOOTSTRAPPER_ACTION_STATE_NONE; 184 execute = BOOTSTRAPPER_ACTION_STATE_NONE;
182 break; 185 break;
@@ -187,9 +190,13 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage(
187 switch (pPackage->requested) 190 switch (pPackage->requested)
188 { 191 {
189 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; 192 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough;
193 case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough;
190 case BOOTSTRAPPER_REQUEST_STATE_REPAIR: 194 case BOOTSTRAPPER_REQUEST_STATE_REPAIR:
191 execute = BOOTSTRAPPER_ACTION_STATE_INSTALL; 195 execute = BOOTSTRAPPER_ACTION_STATE_INSTALL;
192 break; 196 break;
197 case BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT:
198 execute = pPackage->Exe.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE;
199 break;
193 default: 200 default:
194 execute = BOOTSTRAPPER_ACTION_STATE_NONE; 201 execute = BOOTSTRAPPER_ACTION_STATE_NONE;
195 break; 202 break;
@@ -210,6 +217,7 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage(
210 switch (pPackage->requested) 217 switch (pPackage->requested)
211 { 218 {
212 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; 219 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough;
220 case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough;
213 case BOOTSTRAPPER_REQUEST_STATE_REPAIR: 221 case BOOTSTRAPPER_REQUEST_STATE_REPAIR:
214 rollback = BOOTSTRAPPER_ACTION_STATE_NONE; 222 rollback = BOOTSTRAPPER_ACTION_STATE_NONE;
215 break; 223 break;
@@ -227,6 +235,7 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage(
227 switch (pPackage->requested) 235 switch (pPackage->requested)
228 { 236 {
229 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; 237 case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough;
238 case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough;
230 case BOOTSTRAPPER_REQUEST_STATE_REPAIR: 239 case BOOTSTRAPPER_REQUEST_STATE_REPAIR:
231 rollback = !pPackage->fPermanent ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; 240 rollback = !pPackage->fPermanent ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE;
232 break; 241 break;