mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.3762: if quickfix buffer is wiped out getqflist() still returns it
Problem: If the quickfix buffer is wiped out getqflist() still returns its
number.
Solution: Use zero if the buffer is no longer present. (Yegappan Lakshmanan,
closes vim/vim#9306)
56150da687
This commit is contained in:
parent
c5e47e44aa
commit
ff48e61ec9
@ -6020,12 +6020,18 @@ static int qf_winid(qf_info_T *qi)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the number of the buffer displayed in the quickfix/location list
|
/// Returns the number of the buffer displayed in the quickfix/location list
|
||||||
/// window. If there is no buffer associated with the list, then returns 0.
|
/// window. If there is no buffer associated with the list or the buffer is
|
||||||
|
/// wiped out, then returns 0.
|
||||||
static int qf_getprop_qfbufnr(const qf_info_T *qi, dict_T *retdict)
|
static int qf_getprop_qfbufnr(const qf_info_T *qi, dict_T *retdict)
|
||||||
FUNC_ATTR_NONNULL_ARG(2)
|
FUNC_ATTR_NONNULL_ARG(2)
|
||||||
{
|
{
|
||||||
return tv_dict_add_nr(retdict, S_LEN("qfbufnr"),
|
int bufnum = 0;
|
||||||
(qi == NULL) ? 0 : qi->qf_bufnr);
|
|
||||||
|
if (qi != NULL && buflist_findnr(qi->qf_bufnr) != NULL) {
|
||||||
|
bufnum = qi->qf_bufnr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tv_dict_add_nr(retdict, S_LEN("qfbufnr"), bufnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Convert the keys in 'what' to quickfix list property flags.
|
/// Convert the keys in 'what' to quickfix list property flags.
|
||||||
|
@ -4483,6 +4483,13 @@ func Xqfbuf_test(cchar)
|
|||||||
call assert_equal(qfbnum, bufnr(''))
|
call assert_equal(qfbnum, bufnr(''))
|
||||||
Xclose
|
Xclose
|
||||||
|
|
||||||
|
" When quickfix buffer is wiped out, getqflist() should return 0
|
||||||
|
%bw!
|
||||||
|
Xexpr ""
|
||||||
|
Xopen
|
||||||
|
bw!
|
||||||
|
call assert_equal(0, g:Xgetlist({'qfbufnr': 0}).qfbufnr)
|
||||||
|
|
||||||
if a:cchar == 'l'
|
if a:cchar == 'l'
|
||||||
%bwipe
|
%bwipe
|
||||||
" For a location list, when both the file window and the location list
|
" For a location list, when both the file window and the location list
|
||||||
|
Loading…
Reference in New Issue
Block a user