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/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 8103382..1eb7bb0 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -1908,6 +1908,15 @@
call assert_equal(':', g:entered)
au! CmdlineChanged
+ let g:log = []
+ cnoremap <F1> <Cmd>call setcmdline('ls')<CR>
+ autocmd CmdlineChanged : let g:log += [getcmdline()]
+ call feedkeys(":\<F1>", 'xt')
+ call assert_equal(['ls'], g:log)
+ unlet g:log
+ au! CmdlineChanged
+ cunmap <F1>
+
au! CmdlineEnter : let g:entered = expand('<afile>')
au! CmdlineLeave : let g:left = expand('<afile>')
let g:entered = 0