Hans Leidekker : msi: Build the key path from the display name if the component is an assembly.

Alexandre Julliard julliard at winehq.org
Wed Mar 9 11:12:48 CST 2011


Module: wine
Branch: master
Commit: 888a19c02c1c719faba704c00ab24ac11b0dd7d8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=888a19c02c1c719faba704c00ab24ac11b0dd7d8

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Mar  9 08:58:46 2011 +0100

msi: Build the key path from the display name if the component is an assembly.

---

 dlls/msi/action.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index f58aaf2..7567f5d 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -3252,7 +3252,19 @@ static UINT ACTION_ProcessComponents(MSIPACKAGE *package)
         squash_guid(comp->ComponentId,squished_cc);
 
         msi_free(comp->FullKeypath);
-        comp->FullKeypath = resolve_keypath( package, comp );
+        if (comp->assembly)
+        {
+            const WCHAR prefixW[] = {'<','\\',0};
+            DWORD len = strlenW( prefixW ) + strlenW( comp->assembly->display_name );
+
+            comp->FullKeypath = msi_alloc( (len + 1) * sizeof(WCHAR) );
+            if (comp->FullKeypath)
+            {
+                strcpyW( comp->FullKeypath, prefixW );
+                strcatW( comp->FullKeypath, comp->assembly->display_name );
+            }
+        }
+        else comp->FullKeypath = resolve_keypath( package, comp );
 
         ACTION_RefCountComponent( package, comp );
 




More information about the wine-cvs mailing list