diff options
| author | KunMing Xie <qqzz014@gmail.com> | 2017-08-02 16:22:04 +0800 | 
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2017-08-04 22:25:39 +0200 | 
| commit | 348229b1d32010292013eee415c28926e2b7009b (patch) | |
| tree | 0d121a10b5f9c8b845175883b70c6622a76a63ba /src | |
| parent | 36a91c790e5b58a002ca20671a357d8a0ffd2dff (diff) | |
| download | rneovim-348229b1d32010292013eee415c28926e2b7009b.tar.gz rneovim-348229b1d32010292013eee415c28926e2b7009b.tar.bz2 rneovim-348229b1d32010292013eee415c28926e2b7009b.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
Diffstat (limited to 'src')
| -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 30156621d6..d1ce589db1 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 c68bc6351e..7f0b45e896 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  | 
