vim-patch:8.1.2341: not so easy to interrupt a script programatically

Problem:    Not so easy to interrupt a script programatically.
Solution:   Add the interrupt() function. (Yasuhiro Matsumoto, closes vim/vim#2834)
67a2deb9cb
This commit is contained in:
Jan Edmund Lazo
2020-08-03 16:25:12 -04:00
parent 6d68b2801b
commit 0680b5218e
5 changed files with 60 additions and 11 deletions

View File

@@ -0,0 +1,27 @@
" Test behavior of interrupt()
let s:bufwritepre_called = 0
let s:bufwritepost_called = 0
func s:bufwritepre()
let s:bufwritepre_called = 1
call interrupt()
endfunction
func s:bufwritepost()
let s:bufwritepost_called = 1
endfunction
func Test_interrupt()
new Xfile
let n = 0
try
au BufWritePre Xfile call s:bufwritepre()
au BufWritePost Xfile call s:bufwritepost()
w!
catch /^Vim:Interrupt$/
endtry
call assert_equal(1, s:bufwritepre_called)
call assert_equal(0, s:bufwritepost_called)
call assert_equal(0, filereadable('Xfile'))
endfunc