diff options
author | KunMing Xie <qqzz014@gmail.com> | 2017-08-02 16:22:04 +0800 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-08-02 10:22:04 +0200 |
commit | eb40b7ec404e8651137513ced43d503bc6656f17 (patch) | |
tree | 380648ddb41939724a40eccd780312640203ca01 | |
parent | 27356de2697ca542ded05ea6c2017a3ca738084f (diff) | |
download | rneovim-eb40b7ec404e8651137513ced43d503bc6656f17.tar.gz rneovim-eb40b7ec404e8651137513ced43d503bc6656f17.tar.bz2 rneovim-eb40b7ec404e8651137513ced43d503bc6656f17.zip |
vim-patch:8.0.0133 (#7107)
Problem: "2;'(" causes ml_get errors in an empty buffer. (Dominique Pelle)
Solution: Check the cursor line earlier.
https://github.com/vim/vim/commit/fe38b494fff56cd9b2fcaeef26a8fd7b6557d69c
-rw-r--r-- | src/nvim/ex_docmd.c | 13 | ||||
-rw-r--r-- | src/nvim/testdir/test_cmdline.vim | 7 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 15 insertions, 7 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index d7821fc636..80c75f24c4 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -1665,11 +1665,15 @@ static char_u * do_one_cmd(char_u **cmdlinep, ea.addr_count++; if (*ea.cmd == ';') { - if (!ea.skip) + if (!ea.skip) { curwin->w_cursor.lnum = ea.line2; - } else if (*ea.cmd != ',') + // Don't leave the cursor on an illegal line (caused by ';') + check_cursor_lnum(); + } + } else if (*ea.cmd != ',') { break; - ++ea.cmd; + } + ea.cmd++; } /* One address given: set start and end lines */ @@ -1680,9 +1684,6 @@ static char_u * do_one_cmd(char_u **cmdlinep, 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/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index c3bfae1b7b..09f4b942ad 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -232,3 +232,10 @@ func Test_paste_in_cmdline() call assert_equal('"aaa a;b-c*d bbb', @:) bwipe! endfunc + +func Test_illegal_address() + new + 2;'( + 2;') + quit +endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index 1035963136..a018585976 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -596,7 +596,7 @@ static const int included_patches[] = { 136, 135, // 134, - // 133, + 133, // 132, // 131, // 130 NA |