forked from aniani/vim
patch 8.0.0580: cannot set the valid flag with setqflist()
Problem: Cannot set the valid flag with setqflist(). Solution: Add the "valid" argument. (Yegappan Lakshmanan, closes #1642)
This commit is contained in:
@@ -6945,6 +6945,7 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
|||||||
nr error number
|
nr error number
|
||||||
text description of the error
|
text description of the error
|
||||||
type single-character error type, 'E', 'W', etc.
|
type single-character error type, 'E', 'W', etc.
|
||||||
|
valid recognized error message
|
||||||
|
|
||||||
The "col", "vcol", "nr", "type" and "text" entries are
|
The "col", "vcol", "nr", "type" and "text" entries are
|
||||||
optional. Either "lnum" or "pattern" entry can be used to
|
optional. Either "lnum" or "pattern" entry can be used to
|
||||||
@@ -6954,6 +6955,8 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
|||||||
item will not be handled as an error line.
|
item will not be handled as an error line.
|
||||||
If both "pattern" and "lnum" are present then "pattern" will
|
If both "pattern" and "lnum" are present then "pattern" will
|
||||||
be used.
|
be used.
|
||||||
|
If the "valid" entry is not supplied, then the valid flag is
|
||||||
|
set when "bufnr" is a valid buffer or "filename" exists.
|
||||||
If you supply an empty {list}, the quickfix list will be
|
If you supply an empty {list}, the quickfix list will be
|
||||||
cleared.
|
cleared.
|
||||||
Note that the list is not exactly the same as what
|
Note that the list is not exactly the same as what
|
||||||
|
@@ -4779,6 +4779,10 @@ qf_add_entries(
|
|||||||
bufnum = 0;
|
bufnum = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If the 'valid' field is present it overrules the detected value. */
|
||||||
|
if ((dict_find(d, (char_u *)"valid", -1)) != NULL)
|
||||||
|
valid = (int)get_dict_number(d, (char_u *)"valid");
|
||||||
|
|
||||||
status = qf_add_entry(qi,
|
status = qf_add_entry(qi,
|
||||||
NULL, /* dir */
|
NULL, /* dir */
|
||||||
filename,
|
filename,
|
||||||
|
@@ -1201,6 +1201,25 @@ func SetXlistTests(cchar, bnum)
|
|||||||
let l = g:Xgetlist()
|
let l = g:Xgetlist()
|
||||||
call assert_equal(0, len(l))
|
call assert_equal(0, len(l))
|
||||||
|
|
||||||
|
" Tests for setting the 'valid' flag
|
||||||
|
call g:Xsetlist([{'bufnr':a:bnum, 'lnum':4, 'valid':0}])
|
||||||
|
Xwindow
|
||||||
|
call assert_equal(1, winnr('$'))
|
||||||
|
let l = g:Xgetlist()
|
||||||
|
call g:Xsetlist(l)
|
||||||
|
call assert_equal(0, g:Xgetlist()[0].valid)
|
||||||
|
call g:Xsetlist([{'text':'Text1', 'valid':1}])
|
||||||
|
Xwindow
|
||||||
|
call assert_equal(2, winnr('$'))
|
||||||
|
Xclose
|
||||||
|
let save_efm = &efm
|
||||||
|
set efm=%m
|
||||||
|
Xgetexpr 'TestMessage'
|
||||||
|
let l = g:Xgetlist()
|
||||||
|
call g:Xsetlist(l)
|
||||||
|
call assert_equal(1, g:Xgetlist()[0].valid)
|
||||||
|
let &efm = save_efm
|
||||||
|
|
||||||
" Error cases:
|
" Error cases:
|
||||||
" Refer to a non-existing buffer and pass a non-dictionary type
|
" Refer to a non-existing buffer and pass a non-dictionary type
|
||||||
call assert_fails("call g:Xsetlist([{'bufnr':998, 'lnum':4}," .
|
call assert_fails("call g:Xsetlist([{'bufnr':998, 'lnum':4}," .
|
||||||
|
@@ -764,6 +764,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 */
|
||||||
|
/**/
|
||||||
|
580,
|
||||||
/**/
|
/**/
|
||||||
579,
|
579,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user