changeset 32905:2ad6e8515a78 v9.0.1761

patch 9.0.1761: g<kEnd> behaves different from g<end> Commit: https://github.com/vim/vim/commit/654bdbbd329e7267051cc2eb496bc52b66053081 Author: zeertzjq <zeertzjq@outlook.com> Date: Sun Aug 20 18:24:20 2023 +0200 patch 9.0.1761: g<kEnd> behaves different from g<end> Problem: g<kEnd> behaves different from g<end> Solution: Make g<kEnd> behave like g<End> closes: #12861 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author Christian Brabandt <cb@256bit.org>
date Sun, 20 Aug 2023 18:30:06 +0200
parents ca488d831c3c
children 20237d0faf66
files runtime/doc/motion.txt src/normal.c src/testdir/test_normal.vim src/version.c
diffstat 4 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -255,7 +255,8 @@ g$			When lines wrap ('wrap' on): To the
 			instead of going to the end of the line.
 			When 'virtualedit' is enabled moves to the end of the
 			screen line.
-							*g<End>*
+
+							*g<End>* *g<kEnd>*
 g<End>			Like |g$| but to the last non-blank character
 			instead of the last character.
 
--- 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;
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -4105,20 +4105,24 @@ func Test_normal_click_on_double_width_c
 endfunc
 
 func Test_normal33_g_cmd_nonblank()
-  " Test that g$ goes to the last non-blank char and g<end> to the last
+  " Test that g<End> 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\<end>"
+  exe "normal 0g\<End>"
   call assert_equal(11, col('.'))
   normal 0g$
   call assert_equal(20, col('.'))
+  exe "normal 0g\<kEnd>"
+  call assert_equal(11, col('.'))
   setlocal wrap
-  exe "normal 0g\<end>"
+  exe "normal 0g\<End>"
   call assert_equal(11, col('.'))
   normal 0g$
   call assert_equal(20, col('.'))
+  exe "normal 0g\<kEnd>"
+  call assert_equal(11, col('.'))
   bw!
 endfunc
 
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1761,
+/**/
     1760,
 /**/
     1759,