mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.0.0643: when a pattern search is slow Vim becomes unusable
Problem: When 'hlsearch' is set and matching with the last search pattern is very slow, Vim becomes unusable. Cannot quit search by pressing CTRL-C. Solution: When the search times out set a flag and don't try again. Check for timeout and CTRL-C in NFA loop that adds states.
This commit is contained in:
@@ -3308,7 +3308,7 @@ jumpto_tag(
|
||||
save_lnum = curwin->w_cursor.lnum;
|
||||
curwin->w_cursor.lnum = 0; /* start search before first line */
|
||||
if (do_search(NULL, pbuf[0], pbuf + 1, (long)1,
|
||||
search_options, NULL))
|
||||
search_options, NULL, NULL))
|
||||
retval = OK;
|
||||
else
|
||||
{
|
||||
@@ -3320,7 +3320,7 @@ jumpto_tag(
|
||||
*/
|
||||
p_ic = TRUE;
|
||||
if (!do_search(NULL, pbuf[0], pbuf + 1, (long)1,
|
||||
search_options, NULL))
|
||||
search_options, NULL, NULL))
|
||||
{
|
||||
/*
|
||||
* Failed to find pattern, take a guess: "^func ("
|
||||
@@ -3331,13 +3331,13 @@ jumpto_tag(
|
||||
*tagp.tagname_end = NUL;
|
||||
sprintf((char *)pbuf, "^%s\\s\\*(", tagp.tagname);
|
||||
if (!do_search(NULL, '/', pbuf, (long)1,
|
||||
search_options, NULL))
|
||||
search_options, NULL, NULL))
|
||||
{
|
||||
/* Guess again: "^char * \<func (" */
|
||||
sprintf((char *)pbuf, "^\\[#a-zA-Z_]\\.\\*\\<%s\\s\\*(",
|
||||
tagp.tagname);
|
||||
if (!do_search(NULL, '/', pbuf, (long)1,
|
||||
search_options, NULL))
|
||||
search_options, NULL, NULL))
|
||||
found = 0;
|
||||
}
|
||||
*tagp.tagname_end = cc;
|
||||
|
Reference in New Issue
Block a user