mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	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 #2834)
This commit is contained in:
		
							
								
								
									
										27
									
								
								src/testdir/test_interrupt.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/testdir/test_interrupt.vim
									
									
									
									
									
										Normal 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 | ||||
		Reference in New Issue
	
	Block a user