From: Bram Moolenaar Date: Thu, 26 Mar 2020 15:27:38 +0000 (+0100) Subject: patch 8.2.0453: trailing space in job_start() command causes empty argument X-Git-Tag: v8.2.0453 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7851b1ca992222880df1314684a790f293e11896;p=vim patch 8.2.0453: trailing space in job_start() command causes empty argument Problem: Trailing space in job_start() command causes empty argument. Solution: Ignore trailing space. (closes #5851) --- diff --git a/src/misc2.c b/src/misc2.c index 6ef420cab..864d1fd40 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -4242,14 +4242,14 @@ mch_parse_cmd(char_u *cmd, int use_shcf, char ***argv, int *argc) * 1: find number of arguments * 2: separate them and build argv[] */ - for (i = 0; i < 2; ++i) + for (i = 1; i <= 2; ++i) { p = skipwhite(cmd); inquote = FALSE; *argc = 0; - for (;;) + while (*p != NUL) { - if (i == 1) + if (i == 2) (*argv)[*argc] = (char *)p; ++*argc; d = p; @@ -4266,18 +4266,18 @@ mch_parse_cmd(char_u *cmd, int use_shcf, char ***argv, int *argc) // Second pass: Remove the backslash. ++p; } - if (i == 1) + if (i == 2) *d++ = *p; } ++p; } if (*p == NUL) { - if (i == 1) + if (i == 2) *d++ = NUL; break; } - if (i == 1) + if (i == 2) *d++ = NUL; p = skipwhite(p + 1); } diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim index 8fa67ef65..fc8b3729a 100644 --- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -2035,4 +2035,12 @@ func Test_issue_5485() unlet $VAR1 endfunc +func Test_job_trailing_space_unix() + CheckUnix + CheckExecutable cat + let job = job_start("cat ", #{in_io: 'null'}) + call WaitForAssert({-> assert_equal("dead", job_status(job))}) + call assert_equal(0, job_info(job).exitval) +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 94fcb6096..a2a2986ef 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 453, /**/ 452, /**/