patch 8.2.2851: using <Cmd> mapping on the command line triggers CmdlineChanged

Problem:    Using <Cmd> mapping on the command line triggers CmdlineChanged.
            (Naohiro Ono)
Solution:   Jump to cmdline_not_changed if the command line didn't change.
            (closes #8208)
This commit is contained in:
Bram Moolenaar
2021-05-15 13:19:16 +02:00
parent 71c6f7a665
commit 847fe7d750
3 changed files with 32 additions and 3 deletions

View File

@ -1757,9 +1757,17 @@ getcmdline_int(
c = safe_vgetc();
} while (c == K_IGNORE || c == K_NOP);
if (c == K_COMMAND
&& do_cmdline(NULL, getcmdkeycmd, NULL, DOCMD_NOWAIT) == OK)
goto cmdline_changed;
if (c == K_COMMAND)
{
int clen = ccline.cmdlen;
if (do_cmdline(NULL, getcmdkeycmd, NULL, DOCMD_NOWAIT) == OK)
{
if (clen == ccline.cmdlen)
goto cmdline_not_changed;
goto cmdline_changed;
}
}
if (KeyTyped)
{

View File

@ -1799,4 +1799,23 @@ func Test_recalling_cmdline()
cunmap <Plug>(save-cmdline)
endfunc
func Test_cmd_map_cmdlineChanged()
let g:log = []
cnoremap <F1> l<Cmd><CR>s
augroup test
autocmd!
autocmd CmdlineChanged : let g:log += [getcmdline()]
augroup END
call feedkeys(":\<F1>\<CR>", 'xt')
call assert_equal(['l', 'ls'], g:log)
unlet g:log
cunmap <F1>
augroup test
autocmd!
augroup END
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2851,
/**/
2850,
/**/