mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 9.0.0097: long quickfix line is truncated for :clist
Problem: Long quickfix line is truncated for :clist. Solution: Allocate a buffer if needed.
This commit is contained in:
@@ -3622,13 +3622,31 @@ qf_list_entry(qfline_T *qfp, int qf_idx, int cursel)
|
|||||||
}
|
}
|
||||||
msg_puts(" ");
|
msg_puts(" ");
|
||||||
|
|
||||||
// Remove newlines and leading whitespace from the text. For an
|
{
|
||||||
// unrecognized line keep the indent, the compiler may mark a word
|
char_u *tbuf = IObuff;
|
||||||
// with ^^^^.
|
size_t tbuflen = IOSIZE;
|
||||||
qf_fmt_text((fname != NULL || qfp->qf_lnum != 0)
|
size_t len = STRLEN(qfp->qf_text) + 3;
|
||||||
? skipwhite(qfp->qf_text) : qfp->qf_text,
|
|
||||||
IObuff, IOSIZE);
|
if (len > IOSIZE)
|
||||||
msg_prt_line(IObuff, FALSE);
|
{
|
||||||
|
tbuf = alloc(len);
|
||||||
|
if (tbuf != NULL)
|
||||||
|
tbuflen = len;
|
||||||
|
else
|
||||||
|
tbuf = IObuff;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove newlines and leading whitespace from the text. For an
|
||||||
|
// unrecognized line keep the indent, the compiler may mark a word
|
||||||
|
// with ^^^^.
|
||||||
|
qf_fmt_text((fname != NULL || qfp->qf_lnum != 0)
|
||||||
|
? skipwhite(qfp->qf_text) : qfp->qf_text,
|
||||||
|
tbuf, tbuflen);
|
||||||
|
msg_prt_line(tbuf, FALSE);
|
||||||
|
|
||||||
|
if (tbuf != IObuff)
|
||||||
|
vim_free(tbuf);
|
||||||
|
}
|
||||||
out_flush(); // show one line at a time
|
out_flush(); // show one line at a time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -185,6 +185,14 @@ func XlistTests(cchar)
|
|||||||
\ ' 2 Data.Text:20 col 10 warning 22: ModuleWarning',
|
\ ' 2 Data.Text:20 col 10 warning 22: ModuleWarning',
|
||||||
\ ' 3 Data/Text.hs:30 col 15 warning 33: FileWarning'], l)
|
\ ' 3 Data/Text.hs:30 col 15 warning 33: FileWarning'], l)
|
||||||
|
|
||||||
|
" Very long line should be displayed.
|
||||||
|
let text = 'Line' .. repeat('1234567890', 130)
|
||||||
|
let lines = ['Xtestfile9:2:9:' .. text]
|
||||||
|
Xgetexpr lines
|
||||||
|
|
||||||
|
let l = split(execute('Xlist', ''), "\n")
|
||||||
|
call assert_equal([' 1 Xtestfile9:2 col 9: ' .. text] , l)
|
||||||
|
|
||||||
" For help entries in the quickfix list, only the filename without directory
|
" For help entries in the quickfix list, only the filename without directory
|
||||||
" should be displayed
|
" should be displayed
|
||||||
Xhelpgrep setqflist()
|
Xhelpgrep setqflist()
|
||||||
|
@@ -735,6 +735,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 */
|
||||||
|
/**/
|
||||||
|
97,
|
||||||
/**/
|
/**/
|
||||||
96,
|
96,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user