forked from aniani/vim
patch 7.4.1591
Problem: The quickfix title is truncated. Solution: Save the command before it is truncated. (Anton Lindqvist)
This commit is contained in:
parent
3f242a844e
commit
5584df65a0
@ -3286,6 +3286,7 @@ ex_vimgrep(exarg_T *eap)
|
|||||||
int fcount;
|
int fcount;
|
||||||
char_u **fnames;
|
char_u **fnames;
|
||||||
char_u *fname;
|
char_u *fname;
|
||||||
|
char_u *title;
|
||||||
char_u *s;
|
char_u *s;
|
||||||
char_u *p;
|
char_u *p;
|
||||||
int fi;
|
int fi;
|
||||||
@ -3354,6 +3355,7 @@ ex_vimgrep(exarg_T *eap)
|
|||||||
|
|
||||||
/* Get the search pattern: either white-separated or enclosed in // */
|
/* Get the search pattern: either white-separated or enclosed in // */
|
||||||
regmatch.regprog = NULL;
|
regmatch.regprog = NULL;
|
||||||
|
title = vim_strsave(*eap->cmdlinep);
|
||||||
p = skip_vimgrep_pat(eap->arg, &s, &flags);
|
p = skip_vimgrep_pat(eap->arg, &s, &flags);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
{
|
{
|
||||||
@ -3390,7 +3392,7 @@ ex_vimgrep(exarg_T *eap)
|
|||||||
eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
|
eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
|
||||||
|| qi->qf_curlist == qi->qf_listcount)
|
|| qi->qf_curlist == qi->qf_listcount)
|
||||||
/* make place for a new list */
|
/* make place for a new list */
|
||||||
qf_new_list(qi, *eap->cmdlinep);
|
qf_new_list(qi, title != NULL ? title : *eap->cmdlinep);
|
||||||
else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
|
else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
|
||||||
/* Adding to existing list, find last entry. */
|
/* Adding to existing list, find last entry. */
|
||||||
for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
|
for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
|
||||||
@ -3669,6 +3671,7 @@ ex_vimgrep(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
|
|
||||||
theend:
|
theend:
|
||||||
|
vim_free(title);
|
||||||
vim_free(dirname_now);
|
vim_free(dirname_now);
|
||||||
vim_free(dirname_start);
|
vim_free(dirname_start);
|
||||||
vim_free(target_dir);
|
vim_free(target_dir);
|
||||||
|
@ -317,6 +317,23 @@ func Test_errortitle()
|
|||||||
augroup! QfBufWinEnter
|
augroup! QfBufWinEnter
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_vimgreptitle()
|
||||||
|
augroup QfBufWinEnter
|
||||||
|
au!
|
||||||
|
au BufWinEnter * :let g:a=get(w:, 'quickfix_title', 'NONE')
|
||||||
|
augroup END
|
||||||
|
try
|
||||||
|
vimgrep /pattern/j file
|
||||||
|
catch /E480/
|
||||||
|
endtry
|
||||||
|
copen
|
||||||
|
call assert_equal(': vimgrep /pattern/j file', g:a)
|
||||||
|
augroup QfBufWinEnter
|
||||||
|
au!
|
||||||
|
augroup END
|
||||||
|
augroup! QfBufWinEnter
|
||||||
|
endfunc
|
||||||
|
|
||||||
function XqfTitleTests(cchar)
|
function XqfTitleTests(cchar)
|
||||||
let Xgetexpr = a:cchar . 'getexpr'
|
let Xgetexpr = a:cchar . 'getexpr'
|
||||||
if a:cchar == 'c'
|
if a:cchar == 'c'
|
||||||
|
@ -748,6 +748,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 */
|
||||||
|
/**/
|
||||||
|
1591,
|
||||||
/**/
|
/**/
|
||||||
1590,
|
1590,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user