Commit e973115a authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

msi: Properly build the shortcut target path.

parent cda63b8a
...@@ -3611,9 +3611,26 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param) ...@@ -3611,9 +3611,26 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param)
target = MSI_RecordGetString(row, 5); target = MSI_RecordGetString(row, 5);
if (strchrW(target, '[')) if (strchrW(target, '['))
{ {
deformat_string(package, target, &deformated); int len;
IShellLinkW_SetPath(sl,deformated); WCHAR *format_string, *p;
msi_free(deformated);
if (!(p = strchrW( target, ']' ))) goto err;
len = p - target + 1;
format_string = msi_alloc( (len + 1) * sizeof(WCHAR) );
memcpy( format_string, target, len * sizeof(WCHAR) );
format_string[len] = 0;
deformat_string( package, format_string, &deformated );
msi_free( format_string );
path = msi_alloc( (strlenW( deformated ) + strlenW( p + 1 ) + 2) * sizeof(WCHAR) );
strcpyW( path, deformated );
PathAddBackslashW( path );
strcatW( path, p + 1 );
TRACE("target path is %s\n", debugstr_w(path));
IShellLinkW_SetPath( sl, path );
msi_free( deformated );
msi_free( path );
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment