changeset 19415:90e24240904b v8.2.0265

patch 8.2.0265: "eval" after "if 0" doesn't check for following command Commit: https://github.com/vim/vim/commit/a76b31542e1d83b7d2fe7378439912e800a4d0f6 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 16 16:20:21 2020 +0100 patch 8.2.0265: "eval" after "if 0" doesn't check for following command Problem: "eval" after "if 0" doesn't check for following command. Solution: Add "eval" to list of commands that check for a following command. (closes #5640)
author Bram Moolenaar <Bram@vim.org>
date Sun, 16 Feb 2020 16:30:03 +0100
parents f6d002d10166
children de54fb0ff5e5
files src/ex_docmd.c src/testdir/test_expr.vim src/version.c
diffstat 3 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2375,6 +2375,7 @@ do_one_cmd(
 	    case CMD_echoerr:
 	    case CMD_echomsg:
 	    case CMD_echon:
+	    case CMD_eval:
 	    case CMD_execute:
 	    case CMD_filter:
 	    case CMD_help:
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -530,3 +530,12 @@ func Test_broken_number()
   call assert_equal(2, str2nr('2a'))
   call assert_fails('inoremap <Char-0b1z> b', 'E474:')
 endfunc
+
+func Test_eval_after_if()
+  let s:val = ''
+  func SetVal(x)
+    let s:val ..= a:x
+  endfunc
+  if 0 | eval SetVal('a') | endif | call SetVal('b')
+  call assert_equal('b', s:val)
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    265,
+/**/
     264,
 /**/
     263,