Skip to content

Commit a69b395

Browse files
committed
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.
1 parent 2060892 commit a69b395

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

src/channel.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5563,19 +5563,27 @@ job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg)
55635563
#endif
55645564
if (argvars[0].v_type == VAR_STRING)
55655565
{
5566+
char_u *cmd_copy;
5567+
55665568
/* Command is a string. */
55675569
cmd = argvars[0].vval.v_string;
55685570
if (cmd == NULL || *cmd == NUL)
55695571
{
55705572
EMSG(_(e_invarg));
55715573
goto theend;
55725574
}
5573-
/* This will modify "cmd". */
5574-
if (mch_parse_cmd(cmd, FALSE, &argv, &argc) == FAIL)
5575+
/* Make a copy, parsing will modify "cmd". */
5576+
cmd_copy = vim_strsave(cmd);
5577+
if (cmd_copy == NULL
5578+
|| mch_parse_cmd(cmd_copy, FALSE, &argv, &argc) == FAIL)
5579+
{
5580+
vim_free(cmd_copy);
55755581
goto theend;
5582+
}
55765583
for (i = 0; i < argc; i++)
55775584
argv[i] = (char *)vim_strsave((char_u *)argv[i]);
55785585
argv[argc] = NULL;
5586+
vim_free(cmd_copy);
55795587
}
55805588
else if (argvars[0].v_type != VAR_LIST
55815589
|| argvars[0].vval.v_list == NULL

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,8 @@ static char *(features[]) =
761761

762762
static int included_patches[] =
763763
{ /* Add new patch number below this line */
764+
/**/
765+
1746,
764766
/**/
765767
1745,
766768
/**/

0 commit comments

Comments
 (0)