From: Bram Moolenaar Date: Wed, 19 Jul 2017 15:06:20 +0000 (+0200) Subject: patch 8.0.0735: no indication that the quickfix window/buffer changed X-Git-Tag: v8.0.0735 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a8788f4d0b991f466b607c2c5bc6fd600bc78a97;p=vim patch 8.0.0735: no indication that the quickfix window/buffer changed 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) --- diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 0ca52aa06..e555451b5 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 bc891bfde..2adfc52ad 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 b3cc6891a..7b344eaad 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 08d365645..5373e706e 100644 --- a/src/version.c +++ b/src/version.c @@ -769,6 +769,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 735, /**/ 734, /**/