patch 9.0.1380: CTRL-X on 2**64 subtracts two
Problem: CTRL-X on 2**64 subtracts two. (James McCoy)
Solution: Correct computation for large number. (closes #12103)
diff --git a/src/testdir/test_increment.vim b/src/testdir/test_increment.vim
index c367f2b..fdd7c0c 100644
--- a/src/testdir/test_increment.vim
+++ b/src/testdir/test_increment.vim
@@ -840,6 +840,22 @@
set nrformats-=unsigned
endfunc
+func Test_in_decrement_large_number()
+ " NOTE: 18446744073709551616 == 2^64
+ call setline(1, '18446744073709551616')
+ exec "norm! gg0\<C-X>"
+ call assert_equal('18446744073709551615', getline(1))
+
+ exec "norm! gg0\<C-X>"
+ call assert_equal('18446744073709551614', getline(1))
+
+ exec "norm! gg0\<C-A>"
+ call assert_equal('18446744073709551615', getline(1))
+
+ exec "norm! gg0\<C-A>"
+ call assert_equal('-18446744073709551615', getline(1))
+endfunc
+
func Test_normal_increment_with_virtualedit()
set virtualedit=all