forked from aniani/vim
patch 9.0.0322: crash when no errors and 'quickfixtextfunc' is set
Problem: Crash when no errors and 'quickfixtextfunc' is set. Solution: Do not handle errors if there aren't any.
This commit is contained in:
@@ -4761,7 +4761,7 @@ qf_fill_buffer(qf_list_T *qfl, buf_T *buf, qfline_T *old_last, int qf_winid)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if there is anything to display
|
// Check if there is anything to display
|
||||||
if (qfl != NULL)
|
if (qfl != NULL && qfl->qf_start != NULL)
|
||||||
{
|
{
|
||||||
char_u dirname[MAXPATHL];
|
char_u dirname[MAXPATHL];
|
||||||
int invalid_val = FALSE;
|
int invalid_val = FALSE;
|
||||||
|
@@ -4107,6 +4107,22 @@ func Xgetlist_empty_tests(cchar)
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_empty_list_quickfixtextfunc()
|
||||||
|
" This was crashing. Can only reproduce by running it in a separate Vim
|
||||||
|
" instance.
|
||||||
|
let lines =<< trim END
|
||||||
|
func s:Func(o)
|
||||||
|
cgetexpr '0'
|
||||||
|
endfunc
|
||||||
|
cope
|
||||||
|
let &quickfixtextfunc = 's:Func'
|
||||||
|
cgetfile [ex
|
||||||
|
END
|
||||||
|
call writefile(lines, 'Xquickfixtextfunc')
|
||||||
|
call RunVim([], [], '-e -s -S Xquickfixtextfunc -c qa')
|
||||||
|
call delete('Xquickfixtextfunc')
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_getqflist()
|
func Test_getqflist()
|
||||||
call Xgetlist_empty_tests('c')
|
call Xgetlist_empty_tests('c')
|
||||||
call Xgetlist_empty_tests('l')
|
call Xgetlist_empty_tests('l')
|
||||||
|
@@ -707,6 +707,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 */
|
||||||
|
/**/
|
||||||
|
322,
|
||||||
/**/
|
/**/
|
||||||
321,
|
321,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user