msi: Component attributes are bitmasks.
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index ffaa216..f5e75b3 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -1800,19 +1800,14 @@
{
component = cl->component;
- switch (component->Attributes)
- {
- case msidbComponentAttributesLocalOnly:
- msi_component_set_state( component, INSTALLSTATE_LOCAL );
- break;
- case msidbComponentAttributesSourceOnly:
- msi_component_set_state( component, INSTALLSTATE_SOURCE );
- break;
- case msidbComponentAttributesOptional:
+ if (component->Attributes & msidbComponentAttributesOptional)
msi_component_set_state( component, INSTALLSTATE_DEFAULT );
- break;
- default:
- msi_component_set_state( component, INSTALLSTATE_LOCAL );
+ else
+ {
+ if (component->Attributes & msidbComponentAttributesSourceOnly)
+ msi_component_set_state( component, INSTALLSTATE_SOURCE );
+ else
+ msi_component_set_state( component, INSTALLSTATE_LOCAL );
}
if (component->ForceLocalState)