aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <janedmundlazo@hotmail.com>2018-08-26 23:18:58 -0400
committerJan Edmund Lazo <janedmundlazo@hotmail.com>2018-09-04 21:16:34 -0400
commitd4cc4e0871664cdf66d69237e2af671e903d8e80 (patch)
treea6e42d53ae26b9b2f990378cf3cf7654ee33f36d
parent9fe8e3cb2f357ea38d53b5d83b3ea0ebf98be58a (diff)
downloadrneovim-d4cc4e0871664cdf66d69237e2af671e903d8e80.tar.gz
rneovim-d4cc4e0871664cdf66d69237e2af671e903d8e80.tar.bz2
rneovim-d4cc4e0871664cdf66d69237e2af671e903d8e80.zip
vim-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. https://github.com/vim/vim/commit/a4f99f5a8b827162a26ca4e4d59f4f224503398a
-rw-r--r--src/nvim/normal.c4
-rw-r--r--src/nvim/testdir/test_help.vim17
2 files changed, 21 insertions, 0 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 0bf93ee001..09444ace0f 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -4771,6 +4771,10 @@ static void nv_ident(cmdarg_T *cap)
assert(*kp != NUL); // option.c:do_set() should default to ":help" if empty.
bool kp_ex = (*kp == ':'); // 'keywordprg' is an ex command
bool kp_help = (STRCMP(kp, ":he") == 0 || STRCMP(kp, ":help") == 0);
+ if (kp_help && *skipwhite(ptr) == NUL) {
+ EMSG(_(e_noident)); // found white space only
+ return;
+ }
size_t buf_size = n * 2 + 30 + STRLEN(kp);
char *buf = xmalloc(buf_size);
buf[0] = NUL;
diff --git a/src/nvim/testdir/test_help.vim b/src/nvim/testdir/test_help.vim
index 26edc16107..e7bd602dbc 100644
--- a/src/nvim/testdir/test_help.vim
+++ b/src/nvim/testdir/test_help.vim
@@ -13,4 +13,21 @@ endfunc
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