Permalink
Browse files

patch 8.0.1393: too much highlighting with 'hlsearch' and 'incsearch'…

… set

Problem:    Too much highlighting with 'hlsearch' and 'incsearch' set.
Solution:   Do not highlight matches when the pattern matches everything.
  • Loading branch information...
brammool committed Dec 16, 2017
1 parent 8b42328 commit 6621605eb97cf5fbc481282fd4d349a76e168f16
Showing with 23 additions and 0 deletions.
  1. +21 −0 src/ex_getln.c
  2. +2 −0 src/version.c
View
@@ -172,6 +172,22 @@ abandon_cmdline(void)
redraw_cmdline = TRUE;
}
/*
* Guess that the pattern matches everything. Only finds specific cases, such
* as a trailing \|, which can happen while typing a pattern.
*/
static int
empty_pattern(char_u *p)
{
int n = STRLEN(p);
/* remove trailing \v and the like */
while (n >= 2 && p[n - 2] == '\\'
&& vim_strchr((char_u *)"mMvVcCZ", p[n - 1]) != NULL)
n -= 2;
return n == 0 || (n >= 2 && p[n - 2] == '\\' && p[n - 1] == '|');
}
/*
* getcmdline() - accept a command line starting with firstc.
*
@@ -2023,6 +2039,11 @@ getcmdline(
else
end_pos = curwin->w_cursor; /* shutup gcc 4 */
/* Disable 'hlsearch' highlighting if the pattern matches
* everything. Avoids a flash when typing "foo\|". */
if (empty_pattern(ccline.cmdbuff))
SET_NO_HLSEARCH(TRUE);
validate_cursor();
/* May redraw the status line to show the cursor position. */
if (p_ru && curwin->w_status_height > 0)
View
@@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1393,
/**/
1392,
/**/

0 comments on commit 6621605

Please sign in to comment.