0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

patch 8.1.0337: :file fails in quickfix command

Problem:    :file fails in quickfix command.
Solution:   Allow :file without argument when curbuf_lock is set. (Jason
            Franklin)
This commit is contained in:
Bram Moolenaar
2018-08-30 15:58:28 +02:00
parent dd5d18eadf
commit 379fb76b08
3 changed files with 41 additions and 3 deletions

View File

@@ -2039,12 +2039,15 @@ do_one_cmd(
errormsg = (char_u *)_(get_text_locked_msg());
goto doend;
}
/* Disallow editing another buffer when "curbuf_lock" is set.
* Do allow ":edit" (check for argument later).
* Do allow ":checktime" (it's postponed). */
* Do allow ":checktime" (it is postponed).
* Do allow ":edit" (check for an argument later).
* Do allow ":file" with no arguments (check for an argument later). */
if (!(ea.argt & CMDWIN)
&& ea.cmdidx != CMD_edit
&& ea.cmdidx != CMD_checktime
&& ea.cmdidx != CMD_edit
&& ea.cmdidx != CMD_file
&& !IS_USER_CMDIDX(ea.cmdidx)
&& curbuf_locked())
goto doend;
@@ -2130,6 +2133,10 @@ do_one_cmd(
else
ea.arg = skipwhite(p);
// ":file" cannot be run with an argument when "curbuf_lock" is set
if (ea.cmdidx == CMD_file && *ea.arg != NUL && curbuf_locked())
goto doend;
/*
* Check for "++opt=val" argument.
* Must be first, allow ":w ++enc=utf8 !cmd"

View File

@@ -2485,6 +2485,35 @@ func Test_cclose_in_autocmd()
call test_override('starting', 0)
endfunc
" Check that ":file" without an argument is possible even when "curbuf_lock"
" is set.
func Test_file_from_copen()
" Works without argument.
augroup QF_Test
au!
au FileType qf file
augroup END
copen
augroup QF_Test
au!
augroup END
cclose
" Fails with argument.
augroup QF_Test
au!
au FileType qf call assert_fails(':file foo', 'E788')
augroup END
copen
augroup QF_Test
au!
augroup END
cclose
augroup! QF_Test
endfunction
func Test_resize_from_copen()
augroup QF_Test
au!

View File

@@ -794,6 +794,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
337,
/**/
336,
/**/