forked from aniani/vim
patch 7.4.2081
Problem: Line numbers in the error list are not always adjusted. Solution: Set b_has_qf_entry properly. (Yegappan Lakshmanan)
This commit is contained in:
@@ -1408,7 +1408,8 @@ qf_add_entry(
|
||||
|
||||
qfp->qf_fnum = bufnum;
|
||||
if (buf != NULL)
|
||||
buf->b_has_qf_entry = TRUE;
|
||||
buf->b_has_qf_entry |=
|
||||
(qi == &ql_info) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
|
||||
}
|
||||
else
|
||||
qfp->qf_fnum = qf_get_fnum(qi, dir, fname);
|
||||
@@ -1680,7 +1681,8 @@ qf_get_fnum(qf_info_T *qi, char_u *directory, char_u *fname)
|
||||
if (buf == NULL)
|
||||
return 0;
|
||||
|
||||
buf->b_has_qf_entry = TRUE;
|
||||
buf->b_has_qf_entry =
|
||||
(qi == &ql_info) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
|
||||
return buf->b_fnum;
|
||||
}
|
||||
|
||||
@@ -2728,8 +2730,9 @@ qf_mark_adjust(
|
||||
int idx;
|
||||
qf_info_T *qi = &ql_info;
|
||||
int found_one = FALSE;
|
||||
int buf_has_flag = wp == NULL ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
|
||||
|
||||
if (!curbuf->b_has_qf_entry)
|
||||
if (!(curbuf->b_has_qf_entry & buf_has_flag))
|
||||
return;
|
||||
if (wp != NULL)
|
||||
{
|
||||
@@ -2758,7 +2761,7 @@ qf_mark_adjust(
|
||||
}
|
||||
|
||||
if (!found_one)
|
||||
curbuf->b_has_qf_entry = FALSE;
|
||||
curbuf->b_has_qf_entry &= ~buf_has_flag;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user