forked from aniani/vim
patch 8.2.1729: endless loop when ":normal" feeds popup window filter
Problem: Endless loop when ":normal" feeds popup window filter. Solution: Add the ex_normal_busy_done flag.
This commit is contained in:
10
src/testdir/dumps/Test_popupwin_normal_cmd.dump
Normal file
10
src/testdir/dumps/Test_popupwin_normal_cmd.dump
Normal file
@@ -0,0 +1,10 @@
|
||||
> +0&#ffffff0@74
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @31| +0#0000000&@8| +0#4040ff13&@32
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|0|,|0|-|1| @8|A|l@1|
|
||||
@@ -1539,6 +1539,23 @@ func Test_popup_filter()
|
||||
call popup_clear()
|
||||
endfunc
|
||||
|
||||
" this tests that the "ex_normal_busy_done" flag works
|
||||
func Test_popup_filter_normal_cmd()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
let g:winid = popup_create('some text', {'filter': 'invalidfilter'})
|
||||
call timer_start(0, {-> win_execute(g:winid, 'norm! zz')})
|
||||
END
|
||||
call writefile(lines, 'XtestPopupNormal')
|
||||
let buf = RunVimInTerminal('-S XtestPopupNormal', #{rows: 10})
|
||||
call TermWait(buf, 100)
|
||||
call VerifyScreenDump(buf, 'Test_popupwin_normal_cmd', {})
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('XtestPopupNormal')
|
||||
endfunc
|
||||
|
||||
func ShowDialog(key, result)
|
||||
let s:cb_res = 999
|
||||
let winid = popup_dialog('do you want to quit (Yes/no)?', #{
|
||||
|
||||
Reference in New Issue
Block a user