0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.0.1746: MS-Windows: channel tests fail

Problem:    MS-Windows: channel tests fail.
Solution:   Make a copy of the command before splitting it.
This commit is contained in:
Bram Moolenaar
2018-04-21 23:00:27 +02:00
parent 2060892028
commit a69b39511d
2 changed files with 12 additions and 2 deletions

View File

@@ -5563,6 +5563,8 @@ job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg)
#endif #endif
if (argvars[0].v_type == VAR_STRING) if (argvars[0].v_type == VAR_STRING)
{ {
char_u *cmd_copy;
/* Command is a string. */ /* Command is a string. */
cmd = argvars[0].vval.v_string; cmd = argvars[0].vval.v_string;
if (cmd == NULL || *cmd == NUL) if (cmd == NULL || *cmd == NUL)
@@ -5570,12 +5572,18 @@ job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg)
EMSG(_(e_invarg)); EMSG(_(e_invarg));
goto theend; goto theend;
} }
/* This will modify "cmd". */ /* Make a copy, parsing will modify "cmd". */
if (mch_parse_cmd(cmd, FALSE, &argv, &argc) == FAIL) cmd_copy = vim_strsave(cmd);
if (cmd_copy == NULL
|| mch_parse_cmd(cmd_copy, FALSE, &argv, &argc) == FAIL)
{
vim_free(cmd_copy);
goto theend; goto theend;
}
for (i = 0; i < argc; i++) for (i = 0; i < argc; i++)
argv[i] = (char *)vim_strsave((char_u *)argv[i]); argv[i] = (char *)vim_strsave((char_u *)argv[i]);
argv[argc] = NULL; argv[argc] = NULL;
vim_free(cmd_copy);
} }
else if (argvars[0].v_type != VAR_LIST else if (argvars[0].v_type != VAR_LIST
|| argvars[0].vval.v_list == NULL || argvars[0].vval.v_list == NULL

View File

@@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1746,
/**/ /**/
1745, 1745,
/**/ /**/