From 654bdbbd329e7267051cc2eb496bc52b66053081 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 20 Aug 2023 18:24:20 +0200 Subject: [PATCH] patch 9.0.1761: g behaves different from g Problem: g behaves different from g Solution: Make g behave like g closes: #12861 Signed-off-by: Christian Brabandt Co-authored-by: zeertzjq --- runtime/doc/motion.txt | 3 ++- src/normal.c | 2 +- src/testdir/test_normal.vim | 10 +++++++--- src/version.c | 2 ++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt index 46f968045..2ddd1b9ce 100644 --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -255,7 +255,8 @@ g$ When lines wrap ('wrap' on): To the last character of instead of going to the end of the line. When 'virtualedit' is enabled moves to the end of the screen line. - *g* + + *g* *g* g Like |g$| but to the last non-blank character instead of the last character. diff --git a/src/normal.c b/src/normal.c index cbcfd746d..38229e96e 100644 --- a/src/normal.c +++ b/src/normal.c @@ -5823,7 +5823,7 @@ nv_g_dollar_cmd(cmdarg_T *cap) int col_off = curwin_col_off(); int flag = FALSE; - if (cap->nchar == K_END) + if (cap->nchar == K_END || cap->nchar == K_KEND) flag = TRUE; oap->motion_type = MCHAR; diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim index 92d1134d7..efda142d1 100644 --- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -4105,20 +4105,24 @@ func Test_normal_click_on_double_width_char() endfunc func Test_normal33_g_cmd_nonblank() - " Test that g$ goes to the last non-blank char and g to the last + " Test that g goes to the last non-blank char and g$ to the last " visible column 20vnew setlocal nowrap nonumber signcolumn=no call setline(1, ['fooo fooo fooo fooo fooo fooo fooo fooo ']) - exe "normal 0g\" + exe "normal 0g\" call assert_equal(11, col('.')) normal 0g$ call assert_equal(20, col('.')) + exe "normal 0g\" + call assert_equal(11, col('.')) setlocal wrap - exe "normal 0g\" + exe "normal 0g\" call assert_equal(11, col('.')) normal 0g$ call assert_equal(20, col('.')) + exe "normal 0g\" + call assert_equal(11, col('.')) bw! endfunc diff --git a/src/version.c b/src/version.c index 93192c323..19509d1dd 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1761, /**/ 1760, /**/