msi: Honor msidbComponentAttributesNeverOverwrite.
authorHans Leidekker <hans@codeweavers.com>
Fri, 12 Nov 2010 14:05:35 +0000 (15:05 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 12 Nov 2010 14:43:17 +0000 (15:43 +0100)
dlls/msi/files.c

index 47aa74fbb8061214592d7c71e54ec57d7b7a6d25..b3a61767f5b6ac11aca93f68e328515b2fd27c7e 100644 (file)
@@ -227,6 +227,14 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
         if (file->state != msifs_missing && !mi->is_continuous && file->state != msifs_overwrite)
             continue;
 
+        if (file->state == msifs_overwrite &&
+            (file->Component->Attributes & msidbComponentAttributesNeverOverwrite))
+        {
+            TRACE("not overwriting %s\n", debugstr_w(file->TargetPath));
+            file->state = msifs_skipped;
+            continue;
+        }
+
         if (file->Sequence > mi->last_sequence || mi->is_continuous ||
             (file->IsCompressed && !mi->is_extracted))
         {