diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-08-23 20:55:45 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-08-23 20:55:45 +0200 |
commit | 4edfe2d2a2d70ea66a7f73e9b923c2d1f6246a57 (patch) | |
tree | 5e1d553a935a4a4d35babfc7dc04ff27cb4b9d2c | |
parent | 8b0d5ce881ac16a36ea00018ba13a58b0fdb7534 (diff) |
patch 8.1.0321: 'incsearch' regression: /\v highlights everythingv8.1.0321
Problem: 'incsearch' regression: /\v highlights everything.
Solution: Put back the empty_pattern() check.
-rw-r--r-- | src/ex_getln.c | 11 | ||||
-rw-r--r-- | src/testdir/dumps/Test_incsearch_search_01.dump | 9 | ||||
-rw-r--r-- | src/testdir/dumps/Test_incsearch_search_02.dump | 9 | ||||
-rw-r--r-- | src/testdir/test_search.vim | 37 | ||||
-rw-r--r-- | src/version.c | 2 |
5 files changed, 67 insertions, 1 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index 1cb3c8b7a1..7f748cb17d 100644 --- 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 index 0000000000..324abfe6e9 --- /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 index 0000000000..6c1b743719 --- /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 index ba2d21a6e6..b998cc47b6 100644 --- 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, "\<Esc>") + sleep 100m + + call term_sendkeys(buf, '/\v') + sleep 100m + call VerifyScreenDump(buf, 'Test_incsearch_search_02', {}) + call term_sendkeys(buf, "\<Esc>") + + 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 index d31f9e0f9a..38afc4f351 100644 --- 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, |