vim-patch:9.1.0048: Abort opening cmdwin if autocmds screw things up

Problem:  Autocmds triggered from opening the cmdwin (in win_split and
          do_ecmd) can cause issues such as E199, as the current checks
          are insufficient.

Solution: Commands executed from the cmdwin apply to the old curwin/buf,
          so they should be kept in a "suspended" state; abort if
          they've changed. Also abort if cmdwin/buf was tampered with,
          and check that curwin is correct. Try to clean up the cmdwin
          buffer (only if hidden and non-current to simplify things; the
          same approach is used when closing cmdwin normally), and add a
          beep. (Sean Dewar)

Rename the old Test_cmdwin_interrupted() like in the patch (can be moved to
test_cmdwin.vim when v9.0.0027 is ported).
Move the error message to `e_active_window_or_buffer_changed_or_deleted`.

43b395ec2e
This commit is contained in:
Sean Dewar
2023-08-11 10:09:51 +01:00
parent cf140fb25b
commit 7bb0dd08db
3 changed files with 103 additions and 10 deletions

View File

@@ -1885,7 +1885,7 @@ func Test_cmdwin_tabpage()
tabclose!
endfunc
func Test_cmdwin_interrupted()
func Test_cmdwin_interrupted_more_prompt()
CheckScreendump
" aborting the :smile output caused the cmdline window to use the current