summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-07-19 17:06:20 +0200
committerBram Moolenaar <Bram@vim.org>2017-07-19 17:06:20 +0200
commita8788f4d0b991f466b607c2c5bc6fd600bc78a97 (patch)
tree7032ca522308bd2fbca33006d15ff8376c302830
parentbf92e3a3719f255dbb30102ceb618e0eac7c9497 (diff)
patch 8.0.0735: no indication that the quickfix window/buffer changedv8.0.0735
Problem: There is no way to notice that the quickfix window contents has changed. Solution: Increment b:changedtick when updating the quickfix window. (Yegappan Lakshmanan)
-rw-r--r--runtime/doc/quickfix.txt4
-rw-r--r--src/quickfix.c1
-rw-r--r--src/testdir/test_quickfix.vim24
-rw-r--r--src/version.c2
4 files changed, 30 insertions, 1 deletions
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 0ca52aa063..e555451b50 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -425,7 +425,9 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
which will indicate the command that produced the
quickfix list. This can be used to compose a custom
status line if the value of 'statusline' is adjusted
- properly.
+ properly. Whenever this buffer is modified by a
+ quickfix command or function, the |b:changedtick|
+ variable is incremented.
*:lop* *:lopen*
:lop[en] [height] Open a window to show the location list for the
diff --git a/src/quickfix.c b/src/quickfix.c
index bc891bfde2..2adfc52adf 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3286,6 +3286,7 @@ qf_update_buffer(qf_info_T *qi, qfline_T *old_last)
qf_update_win_titlevar(qi);
qf_fill_buffer(qi, buf, old_last);
+ ++CHANGEDTICK(buf);
if (old_last == NULL)
{
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index b3cc6891a5..7b344eaad7 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -2263,3 +2263,27 @@ func Test_resize_from_copen()
augroup! QF_Test
endtry
endfunc
+
+" Tests for the quickfix buffer b:changedtick variable
+func Xchangedtick_tests(cchar)
+ call s:setup_commands(a:cchar)
+
+ new | only
+
+ Xexpr "" | Xexpr "" | Xexpr ""
+
+ Xopen
+ Xolder
+ Xolder
+ Xaddexpr "F1:10:Line10"
+ Xaddexpr "F2:20:Line20"
+ call g:Xsetlist([{"filename":"F3", "lnum":30, "text":"Line30"}], 'a')
+ call g:Xsetlist([], 'f')
+ call assert_equal(8, getbufvar('%', 'changedtick'))
+ Xclose
+endfunc
+
+func Test_changedtick()
+ call Xchangedtick_tests('c')
+ call Xchangedtick_tests('l')
+endfunc
diff --git a/src/version.c b/src/version.c
index 08d365645e..5373e706e4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 735,
+/**/
734,
/**/
733,