From: Bram Moolenaar Date: Sun, 11 Dec 2016 20:34:23 +0000 (+0100) Subject: patch 8.0.0133 X-Git-Tag: v8.0.0133 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fe38b494fff56cd9b2fcaeef26a8fd7b6557d69c;p=vim 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 439467cf1..2b0f15ee9 100644 --- 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 index c48a8117f..96fee0b1c 100644 --- 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 index b21e60a66..2e3cb057e 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 133, /**/ 132, /**/