patch 8.0.0133
Problem: "2;'(" causes ml_get errors in an empty buffer. (Dominique Pelle)
Solution: Check the cursor line earlier.
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 439467c..2b0f15e 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2277,7 +2277,11 @@
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 @@
ea.addr_count = 0;
}
- /* Don't leave the cursor on an illegal line (caused by ';') */
- check_cursor_lnum();
-
/*
* 5. Parse the command.
*/
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index c48a811..96fee0b 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -234,3 +234,10 @@
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
diff --git a/src/version.c b/src/version.c
index b21e60a..2e3cb05 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 133,
+/**/
132,
/**/
131,