msi: A feature state of INSTALLSTATE_ABSENT translates into a component state of INSTALLSTATE_UNKNOWN.
This commit is contained in:
parent
4f11b1af28
commit
d83aa64c57
|
@ -849,6 +849,9 @@ void ACTION_UpdateComponentStates(MSIPACKAGE *package, LPCWSTR szFeature)
|
||||||
|
|
||||||
newstate = feature->ActionRequest;
|
newstate = feature->ActionRequest;
|
||||||
|
|
||||||
|
if (newstate == INSTALLSTATE_ABSENT)
|
||||||
|
newstate = INSTALLSTATE_UNKNOWN;
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry )
|
LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry )
|
||||||
{
|
{
|
||||||
MSICOMPONENT* component = cl->component;
|
MSICOMPONENT* component = cl->component;
|
||||||
|
@ -879,7 +882,7 @@ void ACTION_UpdateComponentStates(MSIPACKAGE *package, LPCWSTR szFeature)
|
||||||
if ( f->ActionRequest != INSTALLSTATE_LOCAL &&
|
if ( f->ActionRequest != INSTALLSTATE_LOCAL &&
|
||||||
f->ActionRequest != INSTALLSTATE_SOURCE )
|
f->ActionRequest != INSTALLSTATE_SOURCE )
|
||||||
{
|
{
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY( clist, &f->Components, ComponentList, entry )
|
LIST_FOR_EACH_ENTRY( clist, &f->Components, ComponentList, entry )
|
||||||
|
|
|
@ -2667,30 +2667,21 @@ static void test_featureparents(void)
|
||||||
r = MsiGetComponentState(hpkg, "canis", &state, &action);
|
r = MsiGetComponentState(hpkg, "canis", &state, &action);
|
||||||
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
||||||
}
|
|
||||||
|
|
||||||
state = 0xdeadbee;
|
state = 0xdeadbee;
|
||||||
action = 0xdeadbee;
|
action = 0xdeadbee;
|
||||||
r = MsiGetComponentState(hpkg, "monoceros", &state, &action);
|
r = MsiGetComponentState(hpkg, "monoceros", &state, &action);
|
||||||
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
||||||
}
|
|
||||||
|
|
||||||
state = 0xdeadbee;
|
state = 0xdeadbee;
|
||||||
action = 0xdeadbee;
|
action = 0xdeadbee;
|
||||||
r = MsiGetComponentState(hpkg, "lepus", &state, &action);
|
r = MsiGetComponentState(hpkg, "lepus", &state, &action);
|
||||||
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
ok( r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r );
|
||||||
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
ok( state == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", state);
|
||||||
todo_wine
|
|
||||||
{
|
|
||||||
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
ok( action == INSTALLSTATE_UNKNOWN, "Expected INSTALLSTATE_UNKNOWN, got %d\n", action);
|
||||||
}
|
|
||||||
|
|
||||||
state = 0xdeadbee;
|
state = 0xdeadbee;
|
||||||
action = 0xdeadbee;
|
action = 0xdeadbee;
|
||||||
|
|
Loading…
Reference in New Issue