summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-11-14 13:15:24 +0100
committerBram Moolenaar <Bram@vim.org>2020-11-14 13:15:24 +0100
commit2ce7790348dab9cbfcc5d02c8258d0dd7ecacf95 (patch)
tree5be6cfa06851d67bf83d3250885adcc7ba92bb01
parent8496c9eadbf4ea3bf69e2e01456831eee2bddf0a (diff)
downloadvim-git-2ce7790348dab9cbfcc5d02c8258d0dd7ecacf95.tar.gz
patch 8.2.1982: quickfix window now updated when adding invalid entriesv8.2.1982
Problem: Quickfix window now updated when adding invalid entries. Solution: Update the quickfix buffer properly. (Yegappan Lakshmanan, closes #7291, closes #7271)
-rw-r--r--src/quickfix.c7
-rw-r--r--src/testdir/test_quickfix.vim13
-rw-r--r--src/version.c2
3 files changed, 20 insertions, 2 deletions
diff --git a/src/quickfix.c b/src/quickfix.c
index ac95ace49..40897b6b6 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -4674,14 +4674,17 @@ qf_fill_buffer(qf_list_T *qfl, buf_T *buf, qfline_T *old_last, int qf_winid)
*dirname = NUL;
// Add one line for each error
- if (old_last == NULL || old_last->qf_next == NULL)
+ if (old_last == NULL)
{
qfp = qfl->qf_start;
lnum = 0;
}
else
{
- qfp = old_last->qf_next;
+ if (old_last->qf_next != NULL)
+ qfp = old_last->qf_next;
+ else
+ qfp = old_last;
lnum = buf->b_ml.ml_line_count;
}
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index 196aa1d8d..395ecc6e1 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -5145,4 +5145,17 @@ func Test_setloclist_crash()
%bw!
endfunc
+" Test for adding an invalid entry with the quickfix window open and making
+" sure that the window contents are not changed
+func Test_add_invalid_entry_with_qf_window()
+ call setqflist([], 'f')
+ cexpr "Xfile1:10:aa"
+ copen
+ call setqflist(['bb'], 'a')
+ call assert_equal(1, line('$'))
+ call assert_equal(['Xfile1|10| aa'], getline(1, '$'))
+ call assert_equal([{'lnum': 10, 'bufnr': bufnr('Xfile1'), 'col': 0, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': -1, 'type': '', 'module': '', 'text': 'aa'}], getqflist())
+ cclose
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 3dde5b22a..db4d84793 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1982,
+/**/
1981,
/**/
1980,