msi: Don't parse the format string when building the shortcut target path.
It's no longer necessary because target paths are always normalized.
This commit is contained in:
parent
f6368c4202
commit
d20c69c54d
|
@ -3601,25 +3601,9 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param)
|
||||||
target = MSI_RecordGetString(row, 5);
|
target = MSI_RecordGetString(row, 5);
|
||||||
if (strchrW(target, '['))
|
if (strchrW(target, '['))
|
||||||
{
|
{
|
||||||
int len;
|
deformat_string( package, target, &path );
|
||||||
WCHAR *format_string, *p;
|
|
||||||
|
|
||||||
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));
|
TRACE("target path is %s\n", debugstr_w(path));
|
||||||
|
|
||||||
IShellLinkW_SetPath( sl, path );
|
IShellLinkW_SetPath( sl, path );
|
||||||
msi_free( deformated );
|
|
||||||
msi_free( path );
|
msi_free( path );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue