mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	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