From 5ed5a24fae06b35351235d708b6ab410d8310d33 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 16 Jan 2022 16:35:36 -0600 Subject: Add BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT. Make BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT uninstall even if detected absent. Remove fPseudoBundle. --- src/burn/engine/exeengine.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/burn/engine/exeengine.cpp') 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( switch (pPackage->requested) { case BOOTSTRAPPER_REQUEST_STATE_PRESENT: - execute = pPackage->Exe.fPseudoBundle ? BOOTSTRAPPER_ACTION_STATE_INSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; + execute = BOOTSTRAPPER_ACTION_STATE_NONE; break; case BOOTSTRAPPER_REQUEST_STATE_REPAIR: execute = pPackage->Exe.fRepairable ? BOOTSTRAPPER_ACTION_STATE_REPAIR : BOOTSTRAPPER_ACTION_STATE_NONE; @@ -177,6 +177,9 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage( case BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT: execute = pPackage->Exe.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; break; + case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: + execute = BOOTSTRAPPER_ACTION_STATE_INSTALL; + break; default: execute = BOOTSTRAPPER_ACTION_STATE_NONE; break; @@ -187,9 +190,13 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage( switch (pPackage->requested) { case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; + case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough; case BOOTSTRAPPER_REQUEST_STATE_REPAIR: execute = BOOTSTRAPPER_ACTION_STATE_INSTALL; break; + case BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT: + execute = pPackage->Exe.fUninstallable ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; + break; default: execute = BOOTSTRAPPER_ACTION_STATE_NONE; break; @@ -210,6 +217,7 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage( switch (pPackage->requested) { case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; + case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough; case BOOTSTRAPPER_REQUEST_STATE_REPAIR: rollback = BOOTSTRAPPER_ACTION_STATE_NONE; break; @@ -227,6 +235,7 @@ extern "C" HRESULT ExeEnginePlanCalculatePackage( switch (pPackage->requested) { case BOOTSTRAPPER_REQUEST_STATE_PRESENT: __fallthrough; + case BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT: __fallthrough; case BOOTSTRAPPER_REQUEST_STATE_REPAIR: rollback = !pPackage->fPermanent ? BOOTSTRAPPER_ACTION_STATE_UNINSTALL : BOOTSTRAPPER_ACTION_STATE_NONE; break; -- cgit v1.2.3-55-g6feb