mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 12:54:13 +00:00
explorer: Fix parsing command line that contains spaces.
Reported by Alistair Leslie-Hughes. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
162e6c1e40
commit
ff53db7e63
1 changed files with 6 additions and 7 deletions
|
@ -658,7 +658,7 @@ static IShellFolder* get_starting_shell_folder(parameters_struct* params)
|
||||||
return folder;
|
return folder;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int copy_path_string(LPWSTR target, LPWSTR source)
|
static WCHAR *copy_path_string(WCHAR *target, WCHAR *source)
|
||||||
{
|
{
|
||||||
INT i = 0;
|
INT i = 0;
|
||||||
|
|
||||||
|
@ -667,10 +667,9 @@ static int copy_path_string(LPWSTR target, LPWSTR source)
|
||||||
if (*source == '\"')
|
if (*source == '\"')
|
||||||
{
|
{
|
||||||
source ++;
|
source ++;
|
||||||
while (*source != '\"') target[i++] = *source++;
|
while (*source && *source != '\"') target[i++] = *source++;
|
||||||
target[i] = 0;
|
target[i] = 0;
|
||||||
source ++;
|
if (*source) source++;
|
||||||
i+=2;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -678,7 +677,7 @@ static int copy_path_string(LPWSTR target, LPWSTR source)
|
||||||
target[i] = 0;
|
target[i] = 0;
|
||||||
}
|
}
|
||||||
PathRemoveBackslashW(target);
|
PathRemoveBackslashW(target);
|
||||||
return i;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -741,12 +740,12 @@ static void parse_command_line(LPWSTR commandline,parameters_struct *parameters)
|
||||||
else if (strncmpW(p, arg_root, sizeof(arg_root)/sizeof(WCHAR))==0)
|
else if (strncmpW(p, arg_root, sizeof(arg_root)/sizeof(WCHAR))==0)
|
||||||
{
|
{
|
||||||
p += sizeof(arg_root)/sizeof(WCHAR);
|
p += sizeof(arg_root)/sizeof(WCHAR);
|
||||||
p+=copy_path_string(parameters->root,p);
|
p = copy_path_string(parameters->root,p);
|
||||||
}
|
}
|
||||||
else if (strncmpW(p, arg_select, sizeof(arg_select)/sizeof(WCHAR))==0)
|
else if (strncmpW(p, arg_select, sizeof(arg_select)/sizeof(WCHAR))==0)
|
||||||
{
|
{
|
||||||
p += sizeof(arg_select)/sizeof(WCHAR);
|
p += sizeof(arg_select)/sizeof(WCHAR);
|
||||||
p+=copy_path_string(parameters->selection,p);
|
p = copy_path_string(parameters->selection,p);
|
||||||
if (!parameters->root[0])
|
if (!parameters->root[0])
|
||||||
copy_path_root(parameters->root,
|
copy_path_root(parameters->root,
|
||||||
parameters->selection);
|
parameters->selection);
|
||||||
|
|
Loading…
Reference in a new issue