Mercurial > vim
diff src/ex_getln.c @ 31412:742b7bf2fefc v9.0.1039
patch 9.0.1039: using a <Cmd> mapping CmdlineChanged may be triggered twice
Commit: https://github.com/vim/vim/commit/bb393d8259af8aec095e96d81624a16ed9f25005
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Dec 9 12:21:50 2022 +0000
patch 9.0.1039: using a <Cmd> mapping CmdlineChanged may be triggered twice
Problem: Using a <Cmd> mapping CmdlineChanged may be triggered twice.
Solution: Count the number of times CmdlineChanged is triggered and avoid
doing it twice. (closes #116820
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 09 Dec 2022 13:30:05 +0100 |
parents | f09c92cf3786 |
children | ca083d0199c6 |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -1785,11 +1785,13 @@ getcmdline_int( if (c == K_COMMAND || c == K_SCRIPT_COMMAND) { - int clen = ccline.cmdlen; + int cc_count = aucmd_cmdline_changed_count; if (do_cmdkey_command(c, DOCMD_NOWAIT) == OK) { - if (clen == ccline.cmdlen) + // Do not trigger CmdlineChanged below if the <Cmd> mapping + // already did that. + if (cc_count != aucmd_cmdline_changed_count) trigger_cmdlinechanged = FALSE; goto cmdline_changed; }