# HG changeset patch # User Christian Brabandt # Date 1481489104 -3600 # Node ID dc9326b58c332b4d56bb570c322cc8022c82ea3d # Parent 11d5798f95f9d1a73f23aa3499786d886d66dcf2 commit https://github.com/vim/vim/commit/fe38b494fff56cd9b2fcaeef26a8fd7b6557d69c Author: Bram Moolenaar 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. diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- 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. */ diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim --- 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\\\\"\", '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 --- 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,