diff options
author | James McCoy <jamessan@jamessan.com> | 2016-11-12 05:32:23 -0500 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-11-12 11:32:23 +0100 |
commit | 7e48c23a503bf8874533ce76404e202742ef7dac (patch) | |
tree | e796c81c0f183f3e4f3232f013f650e29f69ebf3 | |
parent | c5bc0ea04c93b044afab909ba0f02f21e9f3aa4d (diff) | |
download | rneovim-7e48c23a503bf8874533ce76404e202742ef7dac.tar.gz rneovim-7e48c23a503bf8874533ce76404e202742ef7dac.tar.bz2 rneovim-7e48c23a503bf8874533ce76404e202742ef7dac.zip |
vim-patch:7.4.1634 (#5594)
Problem: Vertical movement after CTRL-A ends up in the wrong column.
(Urtica Dioica)
Solution: Set curswant when appropriate. (Hirohito Higashi)
https://github.com/vim/vim/commit/8e08125d3a9afd0b16cd84454ae9ddad0abaaab0
-rw-r--r-- | src/nvim/ops.c | 2 | ||||
-rw-r--r-- | src/nvim/version.c | 2 | ||||
-rw-r--r-- | test/functional/legacy/increment_spec.lua | 13 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/nvim/ops.c b/src/nvim/ops.c index 0263bd15da..dfa89acb1a 100644 --- a/src/nvim/ops.c +++ b/src/nvim/ops.c @@ -4679,6 +4679,8 @@ int do_addsub(int op_type, pos_T *pos, int length, linenr_T Prenum1) theend: if (visual) { curwin->w_cursor = save_cursor; + } else if (did_change) { + curwin->w_set_curswant = true; } return did_change; diff --git a/src/nvim/version.c b/src/nvim/version.c index 6a2aa74b8a..a51c2b6ea9 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -810,7 +810,7 @@ static int included_patches[] = { // 1637 NA // 1636 NA // 1635 NA - // 1634, + 1634, // 1633 NA // 1632 NA // 1631 NA diff --git a/test/functional/legacy/increment_spec.lua b/test/functional/legacy/increment_spec.lua index 0483edc934..a76718ed8e 100644 --- a/test/functional/legacy/increment_spec.lua +++ b/test/functional/legacy/increment_spec.lua @@ -727,6 +727,14 @@ describe('Ctrl-A/Ctrl-X on visual selections', function() exec "norm! gg$\<C-A>" call assert_equal("002", getline(1)) endfunc + + " Test a regression of patch 7.4.1087 fixed. + func Test_normal_increment_02() + call setline(1, ["hello 10", "world"]) + exec "norm! ggl\<C-A>jx" + call assert_equal(["hello 11", "worl"], getline(1, '$')) + call assert_equal([0, 2, 4, 0], getpos('.')) + endfunc ]=]) end) @@ -745,4 +753,9 @@ describe('Ctrl-A/Ctrl-X on visual selections', function() call('Test_normal_increment_01') eq({}, nvim.get_vvar('errors')) end) + + it('maintains correct column after CTRL-A', function() + call('Test_normal_increment_02') + eq({}, nvim.get_vvar('errors')) + end) end) |