diff options
author | 2020-08-20 22:54:05 -0400 | |
---|---|---|
committer | 2020-08-20 22:54:05 -0400 | |
commit | 5c955e5199c87e1508c8efab74d10367a058bc0c (patch) | |
tree | 2ca1a94f316b77b5579b1beaccd665f19924e3ee /modules/textadept | |
parent | f81c76a292d5435a67df640fe971f426d5a3558e (diff) | |
download | textadept-5c955e5199c87e1508c8efab74d10367a058bc0c.tar.gz textadept-5c955e5199c87e1508c8efab74d10367a058bc0c.zip |
Prevent infinite loops when highlighting found text.
Diffstat (limited to 'modules/textadept')
-rw-r--r-- | modules/textadept/find.lua | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/modules/textadept/find.lua b/modules/textadept/find.lua index 4a1bdf7d..761b70d0 100644 --- a/modules/textadept/find.lua +++ b/modules/textadept/find.lua @@ -226,9 +226,10 @@ local function find(text, next, flags, no_wrap, wrapped) buffer.search_flags = flags buffer:target_whole_document() while buffer:search_in_target(text) ~= -1 do - buffer:indicator_fill_range( - buffer.target_start, buffer.target_end - buffer.target_start) - buffer:set_target_range(buffer.target_end, buffer.length + 1) + local s, e = buffer.target_start, buffer.target_end + if s == e then break end -- prevent loops + buffer:indicator_fill_range(s, e - s) + buffer:set_target_range(e, buffer.length + 1) end -- For regex searches, `buffer.tag` was clobbered. It needs to be filled in -- again for any subsequent replace operations that need it. |