Mercurial > vim
comparison src/edit.c @ 11521:578df034735d v8.0.0643
patch 8.0.0643: when a pattern search is slow Vim becomes unusable
commit https://github.com/vim/vim/commit/fbd0b0af6800f6ff89857863d6a07ea03f09ff6c
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jun 17 18:44:21 2017 +0200
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.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 17 Jun 2017 18:45:04 +0200 |
parents | 328a9ee98fb2 |
children | c8fd52807897 |
comparison
equal
deleted
inserted
replaced
11520:8b54fc8a4b2e | 11521:578df034735d |
---|---|
4510 compl_direction, compl_pattern); | 4510 compl_direction, compl_pattern); |
4511 else | 4511 else |
4512 found_new_match = searchit(NULL, ins_buf, pos, | 4512 found_new_match = searchit(NULL, ins_buf, pos, |
4513 compl_direction, | 4513 compl_direction, |
4514 compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, | 4514 compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, |
4515 RE_LAST, (linenr_T)0, NULL); | 4515 RE_LAST, (linenr_T)0, NULL, NULL); |
4516 --msg_silent; | 4516 --msg_silent; |
4517 if (!compl_started || set_match_pos) | 4517 if (!compl_started || set_match_pos) |
4518 { | 4518 { |
4519 /* set "compl_started" even on fail */ | 4519 /* set "compl_started" even on fail */ |
4520 compl_started = TRUE; | 4520 compl_started = TRUE; |