mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
vim-patch:8.0.0017
Problem: Cannot get the number of the current quickfix or location list.
Solution: Use the current list if "nr" in "what" is zero. (Yegappan
Lakshmanan) Remove debug command from test.
890680ca63
This commit is contained in:
@@ -4273,7 +4273,8 @@ getqflist([{what}]) *getqflist()*
|
||||
If the optional {what} dictionary argument is supplied, then
|
||||
returns only the items listed in {what} as a dictionary. The
|
||||
following string items are supported in {what}:
|
||||
nr get information for this quickfix list
|
||||
nr get information for this quickfix list; zero
|
||||
means the current quickfix list
|
||||
title get the list title
|
||||
winid get the |window-ID| (if opened)
|
||||
all all of the above quickfix properties
|
||||
|
@@ -4025,9 +4025,12 @@ int get_errorlist_properties(win_T *wp, dict_T *what, dict_T *retdict)
|
||||
if ((di = tv_dict_find(what, S_LEN("nr"))) != NULL) {
|
||||
// Use the specified quickfix/location list
|
||||
if (di->di_tv.v_type == VAR_NUMBER) {
|
||||
qf_idx = (int)di->di_tv.vval.v_number - 1;
|
||||
if (qf_idx < 0 || qf_idx >= qi->qf_listcount) {
|
||||
return FAIL;
|
||||
// for zero use the current list
|
||||
if (di->di_tv.vval.v_number != 0) {
|
||||
qf_idx = (int)di->di_tv.vval.v_number - 1;
|
||||
if (qf_idx < 0 || qf_idx >= qi->qf_listcount) {
|
||||
return FAIL;
|
||||
}
|
||||
}
|
||||
flags |= QF_GETLIST_NR;
|
||||
} else {
|
||||
|
@@ -1427,12 +1427,10 @@ function! Test_two_windows()
|
||||
laddexpr 'one.txt:3:one one one'
|
||||
|
||||
let loc_one = getloclist(one_id)
|
||||
echo string(loc_one)
|
||||
call assert_equal('Xone/a/one.txt', bufname(loc_one[1].bufnr))
|
||||
call assert_equal(3, loc_one[1].lnum)
|
||||
|
||||
let loc_two = getloclist(two_id)
|
||||
echo string(loc_two)
|
||||
call assert_equal('Xtwo/a/two.txt', bufname(loc_two[1].bufnr))
|
||||
call assert_equal(5, loc_two[1].lnum)
|
||||
|
||||
@@ -1532,6 +1530,11 @@ function Xproperty_tests(cchar)
|
||||
call assert_equal('N1', g:Xgetlist({'all':1}).title)
|
||||
call g:Xsetlist([], ' ', {'title' : 'N2'})
|
||||
call assert_equal(qfnr + 1, g:Xgetlist({'all':1}).nr)
|
||||
|
||||
let res = g:Xgetlist({'nr': 0})
|
||||
call assert_equal(qfnr + 1, res.nr)
|
||||
call assert_equal(['nr'], keys(res))
|
||||
|
||||
call g:Xsetlist([], ' ', {'title' : 'N3'})
|
||||
call assert_equal('N2', g:Xgetlist({'nr':2, 'title':1}).title)
|
||||
|
||||
@@ -1544,7 +1547,7 @@ function Xproperty_tests(cchar)
|
||||
call assert_equal({}, g:Xgetlist({'abc':1}))
|
||||
|
||||
if a:cchar == 'l'
|
||||
call assert_equal({}, getloclist(99, ['title']))
|
||||
call assert_equal({}, getloclist(99, {'title': 1}))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
@@ -712,7 +712,7 @@ static const int included_patches[] = {
|
||||
// 20,
|
||||
19,
|
||||
// 18,
|
||||
// 17,
|
||||
17,
|
||||
// 16 NA
|
||||
// 15 NA
|
||||
// 14 NA
|
||||
|
Reference in New Issue
Block a user