[2/4] msi: Honor msidbComponentAttributesPermanent.
Hans Leidekker
hans at codeweavers.com
Tue Nov 16 02:07:07 CST 2010
---
dlls/msi/files.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index db1a962..9aeaaf3 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -925,12 +925,6 @@ static UINT ITERATE_RemoveFiles(MSIRECORD *row, LPVOID param)
install_mode = MSI_RecordGetInteger(row, 5);
comp = get_loaded_component(package, component);
- if (!comp)
- {
- ERR("Invalid component: %s\n", debugstr_w(component));
- return ERROR_FUNCTION_FAILED;
- }
-
if (!comp->Enabled)
{
TRACE("component is disabled\n");
@@ -944,6 +938,12 @@ static UINT ITERATE_RemoveFiles(MSIRECORD *row, LPVOID param)
return ERROR_SUCCESS;
}
+ if (comp->Attributes & msidbComponentAttributesPermanent)
+ {
+ TRACE("permanent component, not removing file\n");
+ return ERROR_SUCCESS;
+ }
+
dir = msi_dup_property(package->db, dirprop);
if (!dir)
return ERROR_OUTOFMEMORY;
@@ -1027,6 +1027,12 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package )
continue;
}
+ if (file->Component->Attributes & msidbComponentAttributesPermanent)
+ {
+ TRACE("permanent component, not removing file\n");
+ continue;
+ }
+
if (file->Version)
{
ver = msi_get_disk_file_version( file->TargetPath );
--
1.7.1
More information about the wine-patches
mailing list