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
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 4bd200d..0eb7d86 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1785,11 +1785,13 @@
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;
}