]> granicus.if.org Git - vim/commitdiff
patch 8.2.3346: Vim9: no error for using "." for concatenation after ":vim9cmd" v8.2.3346
authorBram Moolenaar <Bram@vim.org>
Sat, 14 Aug 2021 19:35:40 +0000 (21:35 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 14 Aug 2021 19:35:40 +0000 (21:35 +0200)
Problem:    Vim9: no error for using "." for concatenation after ":vim9cmd".
            (Naohiro Ono)
Solution:   Check for Vim9 script syntax. (closes #8756)

src/eval.c
src/testdir/test_vim9_cmd.vim
src/version.c

index 1fd4765c762618b521be5786c8ff960fecbd90df..020f55720c5b366d8ec5ac7f6c9e4e33c5bd2efc 100644 (file)
@@ -2860,7 +2860,8 @@ eval5(char_u **arg, typval_T *rettv, evalarg_T *evalarg)
        // "++" and "--" on the next line are a separate command.
        p = eval_next_non_blank(*arg, evalarg, &getnext);
        op = *p;
-       concat = op == '.' && (*(p + 1) == '.' || current_sctx.sc_version < 2);
+       concat = op == '.' && (*(p + 1) == '.'
+                             || (current_sctx.sc_version < 2 && !vim9script));
        if ((op != '+' && op != '-' && !concat) || p[1] == '='
                                               || (p[1] == '.' && p[2] == '='))
            break;
index 7ec43e9d58c298ceb04b7341b1e0ae86f9faddef..49bb8739f89550cbdf32b1dfcd4c511ed21d8f0b 100644 (file)
@@ -14,6 +14,7 @@ def Test_vim9cmd()
   END
   CheckScriptSuccess(lines)
   assert_fails('vim9cmd', 'E1164:')
+  assert_fails('vim9cmd echo "con" . "cat"', 'E15:')
 
   lines =<< trim END
       vim9script
index b6490146455fb641312c0e5aba64018f98a19516..a2a229bf50bc0b1c50728f5b1a8f4714211cdeff 100644 (file)
@@ -755,6 +755,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3346,
 /**/
     3345,
 /**/