aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Hinz <mh.codebro@gmail.com>2019-04-08 20:00:41 +0200
committerMarco Hinz <mh.codebro@gmail.com>2019-04-08 20:02:08 +0200
commit7381c93e2c0e7aa20d29cbc3c6c45de71e22a258 (patch)
tree411b1ec230806dc6c154b5c90e733fae1f6ebc6f
parenta8d0062c67953d9e024a09d3d6daf062aefca887 (diff)
downloadrneovim-7381c93e2c0e7aa20d29cbc3c6c45de71e22a258.tar.gz
rneovim-7381c93e2c0e7aa20d29cbc3c6c45de71e22a258.tar.bz2
rneovim-7381c93e2c0e7aa20d29cbc3c6c45de71e22a258.zip
vim-patch:8.1.1134: buffer for quickfix window is reused for another file
Problem: Buffer for quickfix window is reused for another file. Solution: Don't reuse the quickfx buffer. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/39803d82dbb215d2eea9fcd6cf2961b71515a438
-rw-r--r--src/nvim/buffer.c1
-rw-r--r--src/nvim/testdir/test_quickfix.vim14
2 files changed, 15 insertions, 0 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 9a58529736..703a89d31f 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -1868,6 +1868,7 @@ bool curbuf_reusable(void)
&& curbuf->b_ffname == NULL
&& curbuf->b_nwindows <= 1
&& (curbuf->b_ml.ml_mfp == NULL || BUFEMPTY())
+ && !bt_quickfix(curbuf)
&& !curbufIsChanged());
}
diff --git a/src/nvim/testdir/test_quickfix.vim b/src/nvim/testdir/test_quickfix.vim
index cb3e7ca8f6..6227095f4f 100644
--- a/src/nvim/testdir/test_quickfix.vim
+++ b/src/nvim/testdir/test_quickfix.vim
@@ -2664,3 +2664,17 @@ func Test_qfwin_pos()
call assert_equal(3, winnr())
close
endfunc
+
+" Test to make sure that an empty quickfix buffer is not reused for loading
+" a normal buffer.
+func Test_empty_qfbuf()
+ enew | only
+ call writefile(["Test"], 'Xfile1')
+ call setqflist([], 'f')
+ copen | only
+ let qfbuf = bufnr('')
+ edit Xfile1
+ call assert_notequal(qfbuf, bufnr(''))
+ enew
+ call delete('Xfile1')
+endfunc