aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/quickfix.c
diff options
context:
space:
mode:
authorlonerover <pathfinder1644@yahoo.com>2017-01-18 12:13:51 +0800
committerlonerover <pathfinder1644@yahoo.com>2017-01-19 10:51:58 +0800
commit0060974b2bdd28edf9d34a53daa7862ce55b1f43 (patch)
tree10bc99779fc8cf94bbbd0f87618f5b8421076158 /src/nvim/quickfix.c
parent86f76108f78ed2b94fb2ddfafcbbb06f396a0b8c (diff)
downloadrneovim-0060974b2bdd28edf9d34a53daa7862ce55b1f43.tar.gz
rneovim-0060974b2bdd28edf9d34a53daa7862ce55b1f43.tar.bz2
rneovim-0060974b2bdd28edf9d34a53daa7862ce55b1f43.zip
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) https://github.com/vim/vim/commit/c1542744e788d96fed24dd421f43009288092504
Diffstat (limited to 'src/nvim/quickfix.c')
-rw-r--r--src/nvim/quickfix.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index 9a4d413358..19287ecffb 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -1105,7 +1105,8 @@ static int qf_add_entry(qf_info_T *qi, char_u *dir, char_u *fname, int bufnum,
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);
@@ -1322,7 +1323,8 @@ static int 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;
}
@@ -2239,8 +2241,9 @@ void qf_mark_adjust(win_T *wp, linenr_T line1, linenr_T line2, long amount, long
int idx;
qf_info_T *qi = &ql_info;
bool 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) {
@@ -2267,7 +2270,7 @@ void qf_mark_adjust(win_T *wp, linenr_T line1, linenr_T line2, long amount, long
}
if (!found_one) {
- curbuf->b_has_qf_entry = false;
+ curbuf->b_has_qf_entry &= ~buf_has_flag;
}
}