1
0
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:
Bram Moolenaar
2020-09-23 12:29:11 +02:00
parent c53e9c57a9
commit 189832bf66
8 changed files with 53 additions and 1 deletions

View 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|

View File

@@ -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)?', #{