msi: Look at the requested action instead of the action taken in MSI_SetFeatureStates.

This commit is contained in:
Hans Leidekker 2010-10-06 15:44:54 +02:00 committed by Alexandre Julliard
parent a9c3195eb8
commit 85874c07b9
1 changed files with 4 additions and 4 deletions

View File

@ -1785,7 +1785,7 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
BOOL feature_state = ((feature->Level > 0) && BOOL feature_state = ((feature->Level > 0) &&
(feature->Level <= level)); (feature->Level <= level));
if ((feature_state) && (feature->Action == INSTALLSTATE_UNKNOWN)) if (feature_state && feature->ActionRequest == INSTALLSTATE_UNKNOWN)
{ {
if (feature->Attributes & msidbFeatureAttributesFavorSource) if (feature->Attributes & msidbFeatureAttributesFavorSource)
msi_feature_set_state(package, feature, INSTALLSTATE_SOURCE); msi_feature_set_state(package, feature, INSTALLSTATE_SOURCE);
@ -1814,7 +1814,7 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
{ {
BOOL selected = feature->Level > 0 && feature->Level <= level; BOOL selected = feature->Level > 0 && feature->Level <= level;
if (selected && feature->Action == INSTALLSTATE_UNKNOWN) if (selected && feature->ActionRequest == INSTALLSTATE_UNKNOWN)
{ {
msi_feature_set_state(package, feature, feature->Installed); msi_feature_set_state(package, feature, feature->Installed);
} }
@ -1839,7 +1839,7 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry ) LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry )
{ {
if (cl->component->ForceLocalState && if (cl->component->ForceLocalState &&
feature->Action == INSTALLSTATE_SOURCE) feature->ActionRequest == INSTALLSTATE_SOURCE)
{ {
msi_feature_set_state(package, feature, INSTALLSTATE_LOCAL); msi_feature_set_state(package, feature, INSTALLSTATE_LOCAL);
break; break;
@ -1850,7 +1850,7 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
{ {
component = cl->component; component = cl->component;
switch (feature->Action) switch (feature->ActionRequest)
{ {
case INSTALLSTATE_ABSENT: case INSTALLSTATE_ABSENT:
component->anyAbsent = 1; component->anyAbsent = 1;