# HG changeset patch # User Christian Brabandt # Date 1535050806 -7200 # Node ID c6b41d47bac12007f93b44ae83504376265937a3 # Parent 52accd9173cb73c4864e171f3699b1afa3b1215f patch 8.1.0321: 'incsearch' regression: / highlights everything commit https://github.com/vim/vim/commit/4edfe2d2a2d70ea66a7f73e9b923c2d1f6246a57 Author: Bram Moolenaar Date: Thu Aug 23 20:55:45 2018 +0200 patch 8.1.0321: 'incsearch' regression: /\v highlights everything Problem: 'incsearch' regression: /\v highlights everything. Solution: Put back the empty_pattern() check. diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -572,6 +572,17 @@ may_do_incsearch_highlighting( else end_pos = curwin->w_cursor; // shutup gcc 4 + // Disable 'hlsearch' highlighting if the pattern matches everything. + // Avoids a flash when typing "foo\|". + if (!use_last_pat) + { + next_char = ccline.cmdbuff[skiplen + patlen]; + ccline.cmdbuff[skiplen + patlen] = NUL; + if (empty_pattern(ccline.cmdbuff)) + set_no_hlsearch(TRUE); + ccline.cmdbuff[skiplen + patlen] = next_char; + } + validate_cursor(); // May redraw the status line to show the cursor position. if (p_ru && curwin->w_status_height > 0) diff --git a/src/testdir/dumps/Test_incsearch_search_01.dump b/src/testdir/dumps/Test_incsearch_search_01.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_incsearch_search_01.dump @@ -0,0 +1,9 @@ +|f+0&#ffff4012|o|o+0&#ffffff0| |1| @64 +|f+0&#ffff4012|o|o+0&#ffffff0| |2| @64 +|f+0&#ffff4012|o|o+0&#ffffff0| |3| @64 +|f+1&&|o|o+0&&| |4| @64 +|f+0&#ffff4012|o|o+0&#ffffff0| |5| @64 +|f+0&#ffff4012|o|o+0&#ffffff0| |6| @64 +|f+0&#ffff4012|o|o+0&#ffffff0| |7| @64 +|f+0&#ffff4012|o|o+0&#ffffff0| |8| @64 +|/|f|o> @66 diff --git a/src/testdir/dumps/Test_incsearch_search_02.dump b/src/testdir/dumps/Test_incsearch_search_02.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_incsearch_search_02.dump @@ -0,0 +1,9 @@ +|f+0&#ffffff0|o@1| |1| @64 +|f|o@1| |2| @64 +|f|o+1&&|o+0&&| |3| @64 +|f|o@1| |4| @64 +|f|o@1| |5| @64 +|f|o@1| |6| @64 +|f|o@1| |7| @64 +|f|o@1| |8| @64 +|/|\|v> @66 diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim --- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -813,6 +813,41 @@ func Test_incsearch_scrolling() call delete('Xscript') endfunc +func Test_incsearch_search_dump() + if !exists('+incsearch') + return + endif + if !CanRunVimInTerminal() + return + endif + call writefile([ + \ 'set incsearch hlsearch scrolloff=0', + \ 'for n in range(1, 8)', + \ ' call setline(n, "foo " . n)', + \ 'endfor', + \ '3', + \ ], 'Xis_search_script') + let buf = RunVimInTerminal('-S Xis_search_script', {'rows': 9, 'cols': 70}) + " Give Vim a chance to redraw to get rid of the spaces in line 2 caused by + " the 'ambiwidth' check. + sleep 100m + + " Need to send one key at a time to force a redraw. + call term_sendkeys(buf, '/fo') + sleep 100m + call VerifyScreenDump(buf, 'Test_incsearch_search_01', {}) + call term_sendkeys(buf, "\") + sleep 100m + + call term_sendkeys(buf, '/\v') + sleep 100m + call VerifyScreenDump(buf, 'Test_incsearch_search_02', {}) + call term_sendkeys(buf, "\") + + call StopVimInTerminal(buf) + call delete('Xis_search_script') +endfunc + func Test_incsearch_substitute() if !exists('+incsearch') return @@ -926,7 +961,7 @@ func Test_incsearch_substitute_dump() endfunc " Similar to Test_incsearch_substitute_dump() for :sort -func Test_incsearch_ssort_dump() +func Test_incsearch_sort_dump() if !exists('+incsearch') return endif diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -795,6 +795,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 321, +/**/ 320, /**/ 319,