aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)