aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2016-11-12 05:32:23 -0500
committerJustin M. Keyes <justinkz@gmail.com>2016-11-12 11:32:23 +0100
commit7e48c23a503bf8874533ce76404e202742ef7dac (patch)
treee796c81c0f183f3e4f3232f013f650e29f69ebf3
parentc5bc0ea04c93b044afab909ba0f02f21e9f3aa4d (diff)
downloadrneovim-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.c2
-rw-r--r--src/nvim/version.c2
-rw-r--r--test/functional/legacy/increment_spec.lua13
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)