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.
a4f99f5a8b
This commit is contained in:
Jan Edmund Lazo
2018-08-26 23:18:58 -04:00
parent 9fe8e3cb2f
commit d4cc4e0871
2 changed files with 21 additions and 0 deletions

View File

@@ -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;

View File

@@ -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