Mercurial > vim
diff src/quickfix.c @ 9608:fa64afb99dda v7.4.2081
commit https://github.com/vim/vim/commit/c1542744e788d96fed24dd421f43009288092504
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jul 20 21:44:37 2016 +0200
patch 7.4.2081
Problem: Line numbers in the error list are not always adjusted.
Solution: Set b_has_qf_entry properly. (Yegappan Lakshmanan)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 20 Jul 2016 21:45:05 +0200 |
parents | 2fb7e008ac9b |
children | fd9727ae3c49 |
line wrap: on
line diff
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -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 *direc 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; - - if (!curbuf->b_has_qf_entry) + int buf_has_flag = wp == NULL ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_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; } /*