diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-09-24 22:47:46 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-09-24 22:47:46 +0200 |
commit | 03ac52fc025790c474030ea556cec799400aa046 (patch) | |
tree | 9ac7313f93b7630297417251d0a56da6a0044d10 | |
parent | 053f712ef20d143818aa07275cf1f4fa55afbf85 (diff) | |
download | vim-git-03ac52fc025790c474030ea556cec799400aa046.tar.gz |
patch 8.1.2072: "gk" moves to start of line instead of upwardsv8.1.2072
Problem: "gk" moves to start of line instead of upwards.
Solution: Fix off-by-one error. (Christian Brabandt, closes #4969)
-rw-r--r-- | src/normal.c | 4 | ||||
-rw-r--r-- | src/testdir/test_normal.vim | 22 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 26 insertions, 2 deletions
diff --git a/src/normal.c b/src/normal.c index adc7541b1..4db90d658 100644 --- a/src/normal.c +++ b/src/normal.c @@ -3406,8 +3406,8 @@ nv_screengo(oparg_T *oap, int dir, long dist) { if (dir == BACKWARD) { - if ((long)curwin->w_curswant >= width2) - /* move back within line */ + if ((long)curwin->w_curswant > width2) + // move back within line curwin->w_curswant -= width2; else { diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim index c6df1834a..dcfa929c8 100644 --- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -2633,3 +2633,25 @@ fun! Test_normal_gdollar_cmd() call assert_equal('100 foobar foobar fo', getreg(0)) bw! endfunc + +func Test_normal_gk() + " needs 80 column new window + new + vert 80new + put =[repeat('x',90)..' {{{1', 'x {{{1'] + norm! gk + " In a 80 column wide terminal the window will be only 78 char + " (because Vim will leave space for the other window), + " but if the terminal is larger, it will be 80 chars, so verify the + " cursor column correctly. + call assert_equal(winwidth(0)+1, col('.')) + call assert_equal(winwidth(0)+1, virtcol('.')) + norm! j + call assert_equal(6, col('.')) + call assert_equal(6, virtcol('.')) + norm! gk + call assert_equal(95, col('.')) + call assert_equal(95, virtcol('.')) + bw! + bw! +endfunc diff --git a/src/version.c b/src/version.c index 840c25735..ec9aa7663 100644 --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2072, +/**/ 2071, /**/ 2070, |