patch 8.0.0998: strange error when using K while only spaces are selected

Problem:    Strange error when using K while only spaces are selected.
            (Christian J. Robinson)
Solution:   Check for blank argument.
diff --git a/src/normal.c b/src/normal.c
index f08f52f..b5c4a81 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5648,6 +5648,11 @@
     kp = (*curbuf->b_p_kp == NUL ? p_kp : curbuf->b_p_kp);
     kp_help = (*kp == NUL || STRCMP(kp, ":he") == 0
 						 || STRCMP(kp, ":help") == 0);
+    if (kp_help && *skipwhite(ptr) == NUL)
+    {
+	EMSG(_(e_noident));	 /* found white space only */
+	return;
+    }
     kp_ex = (*kp == ':');
     buflen = (unsigned)(n * 2 + 30 + STRLEN(kp));
     buf = alloc(buflen);
diff --git a/src/testdir/test_help.vim b/src/testdir/test_help.vim
index 5a35b69..85c1296 100644
--- a/src/testdir/test_help.vim
+++ b/src/testdir/test_help.vim
@@ -12,4 +12,21 @@
 func Test_help_errors()
   call assert_fails('help doesnotexist', 'E149:')
   call assert_fails('help!', 'E478:')
+
+  new
+  set keywordprg=:help
+  call setline(1, "   ")
+  call assert_fails('normal VK', 'E349:')
+  bwipe!
+endfunc
+
+func Test_help_keyword()
+  new
+  set keywordprg=:help
+  call setline(1, "  Visual ")
+  normal VK
+  call assert_match('^Visual mode', getline('.'))
+  call assert_equal('help', &ft)
+  close
+  bwipe!
 endfunc
diff --git a/src/version.c b/src/version.c
index d2f728a..766bd86 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    998,
+/**/
     997,
 /**/
     996,