patch 8.0.0677: setting 'filetype' may switch buffers
Problem: Setting 'filetype' internally may cause the current buffer and
window to change unexpectedly.
Solution: Set curbuf_lock. (closes #1734)
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index c23e597..755ea74 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -2190,7 +2190,7 @@
func Test_cclose_from_copen()
augroup QF_Test
au!
- au FileType qf :cclose
+ au FileType qf :call assert_fails(':cclose', 'E788')
augroup END
copen
augroup QF_Test
@@ -2227,3 +2227,19 @@
call XsizeTests('c')
call XsizeTests('l')
endfunc
+
+func Test_cclose_in_autocmd()
+ " Problem is only triggered if "starting" is zero, so that the OptionsSet
+ " event will be triggered.
+ call test_override('starting', 1)
+ augroup QF_Test
+ au!
+ au FileType qf :call assert_fails(':cclose', 'E788')
+ augroup END
+ copen
+ augroup QF_Test
+ au!
+ augroup END
+ augroup! QF_Test
+ call test_override('starting', 0)
+endfunc