forked from aniani/vim
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:
@@ -2039,12 +2039,15 @@ do_one_cmd(
|
|||||||
errormsg = (char_u *)_(get_text_locked_msg());
|
errormsg = (char_u *)_(get_text_locked_msg());
|
||||||
goto doend;
|
goto doend;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Disallow editing another buffer when "curbuf_lock" is set.
|
/* Disallow editing another buffer when "curbuf_lock" is set.
|
||||||
* Do allow ":edit" (check for argument later).
|
* Do allow ":checktime" (it is postponed).
|
||||||
* Do allow ":checktime" (it's postponed). */
|
* Do allow ":edit" (check for an argument later).
|
||||||
|
* Do allow ":file" with no arguments (check for an argument later). */
|
||||||
if (!(ea.argt & CMDWIN)
|
if (!(ea.argt & CMDWIN)
|
||||||
&& ea.cmdidx != CMD_edit
|
|
||||||
&& ea.cmdidx != CMD_checktime
|
&& ea.cmdidx != CMD_checktime
|
||||||
|
&& ea.cmdidx != CMD_edit
|
||||||
|
&& ea.cmdidx != CMD_file
|
||||||
&& !IS_USER_CMDIDX(ea.cmdidx)
|
&& !IS_USER_CMDIDX(ea.cmdidx)
|
||||||
&& curbuf_locked())
|
&& curbuf_locked())
|
||||||
goto doend;
|
goto doend;
|
||||||
@@ -2130,6 +2133,10 @@ do_one_cmd(
|
|||||||
else
|
else
|
||||||
ea.arg = skipwhite(p);
|
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.
|
* Check for "++opt=val" argument.
|
||||||
* Must be first, allow ":w ++enc=utf8 !cmd"
|
* Must be first, allow ":w ++enc=utf8 !cmd"
|
||||||
|
@@ -2485,6 +2485,35 @@ func Test_cclose_in_autocmd()
|
|||||||
call test_override('starting', 0)
|
call test_override('starting', 0)
|
||||||
endfunc
|
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()
|
func Test_resize_from_copen()
|
||||||
augroup QF_Test
|
augroup QF_Test
|
||||||
au!
|
au!
|
||||||
|
@@ -794,6 +794,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
337,
|
||||||
/**/
|
/**/
|
||||||
336,
|
336,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user