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>
diff --git a/src/normal.c b/src/normal.c
index cbcfd74..38229e9 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5823,7 +5823,7 @@
     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 92d1134..efda142 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -4105,20 +4105,24 @@
 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
 
diff --git a/src/version.c b/src/version.c
index 93192c3..19509d1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1761,
+/**/
     1760,
 /**/
     1759,