changeset 10480:dc9326b58c33 v8.0.0133

commit https://github.com/vim/vim/commit/fe38b494fff56cd9b2fcaeef26a8fd7b6557d69c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 11 21:34:23 2016 +0100 patch 8.0.0133 Problem: "2;'(" causes ml_get errors in an empty buffer. (Dominique Pelle) Solution: Check the cursor line earlier.
author Christian Brabandt <cb@256bit.org>
date Sun, 11 Dec 2016 21:45:04 +0100
parents 11d5798f95f9
children 2d41465fea16
files src/ex_docmd.c src/testdir/test_cmdline.vim src/version.c
diffstat 3 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2277,7 +2277,11 @@ do_one_cmd(
 	if (*ea.cmd == ';')
 	{
 	    if (!ea.skip)
+	    {
 		curwin->w_cursor.lnum = ea.line2;
+		/* don't leave the cursor on an illegal line */
+		check_cursor_lnum();
+	    }
 	}
 	else if (*ea.cmd != ',')
 	    break;
@@ -2293,9 +2297,6 @@ do_one_cmd(
 	    ea.addr_count = 0;
     }
 
-    /* Don't leave the cursor on an illegal line (caused by ';') */
-    check_cursor_lnum();
-
 /*
  * 5. Parse the command.
  */
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -234,3 +234,10 @@ func Test_remove_char_in_cmdline()
   call feedkeys(":abc def\<S-Left>\<C-U>\<C-B>\"\<CR>", 'tx')
   call assert_equal('"def', @:)
 endfunc
+
+func Test_illegal_address()
+  new
+  2;'(
+  2;')
+  quit
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    133,
+/**/
     132,
 /**/
     131,