patch 8.0.0688: cannot resize the window in a FileType autocommand
Problem: Cannot resize the window in a FileType autocommand. (Ingo Karkat)
Solution: Add the CMDWIN flag to :resize. (test by Ingo Karkat,
closes #1804)
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 519cd08..02d5690 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -51,7 +51,9 @@
#define BUFUNL 0x20000L /* accepts unlisted buffer too */
#define ARGOPT 0x40000L /* allow "++opt=val" argument */
#define SBOXOK 0x80000L /* allowed in the sandbox */
-#define CMDWIN 0x100000L /* allowed in cmdline window */
+#define CMDWIN 0x100000L /* allowed in cmdline window; when missing
+ * disallows editing another buffer when
+ * curbuf_lock is set */
#define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */
#define EXFLAGS 0x400000L /* allow flags after count in argument */
#define FILES (XFILE | EXTRA) /* multiple extra files allowed */
@@ -1176,7 +1178,7 @@
EXTRA|NOTRLCOM|TRLBAR|CMDWIN,
ADDR_LINES),
EX(CMD_resize, "resize", ex_resize,
- RANGE|NOTADR|TRLBAR|WORD1,
+ RANGE|NOTADR|TRLBAR|WORD1|CMDWIN,
ADDR_LINES),
EX(CMD_retab, "retab", ex_retab,
TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY,
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index c595458..b3cc689 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -2190,18 +2190,6 @@
set efm&vim
endfunc
-func Test_cclose_from_copen()
- augroup QF_Test
- au!
- au FileType qf :call assert_fails(':cclose', 'E788')
- augroup END
- copen
- augroup QF_Test
- au!
- augroup END
- augroup! QF_Test
-endfunc
-
" Tests for getting the quickfix stack size
func XsizeTests(cchar)
call s:setup_commands(a:cchar)
@@ -2231,6 +2219,18 @@
call XsizeTests('l')
endfunc
+func Test_cclose_from_copen()
+ augroup QF_Test
+ au!
+ au FileType qf :call assert_fails(':cclose', 'E788')
+ augroup END
+ copen
+ augroup QF_Test
+ au!
+ augroup END
+ augroup! QF_Test
+endfunc
+
func Test_cclose_in_autocmd()
" Problem is only triggered if "starting" is zero, so that the OptionsSet
" event will be triggered.
@@ -2246,3 +2246,20 @@
augroup! QF_Test
call test_override('starting', 0)
endfunc
+
+func Test_resize_from_copen()
+ augroup QF_Test
+ au!
+ au FileType qf resize 5
+ augroup END
+ try
+ " This should succeed without any exception. No other buffers are
+ " involved in the autocmd.
+ copen
+ finally
+ augroup QF_Test
+ au!
+ augroup END
+ augroup! QF_Test
+ endtry
+endfunc
diff --git a/src/version.c b/src/version.c
index 9f2515d..7bf3f4e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 688,
+/**/
687,
/**/
686,