From 45a04393c478881ebc84a26afbe8b90854cd1f85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 15 Jun 2021 16:26:43 +0200 Subject: [PATCH] term: erase_cell_range: early break out from URI loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit URI ranges are sorted. This means we don’t have to check any more ranges once we’ve seen one that starts *after* the erase range. Closes #594 --- terminal.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/terminal.c b/terminal.c index 9977893a..d949388d 100644 --- a/terminal.c +++ b/terminal.c @@ -1537,6 +1537,12 @@ erase_cell_range(struct terminal *term, struct row *row, int start, int end) /* Split up, or remove, URI ranges affected by the erase */ tll_foreach(row->extra->uri_ranges, it) { + if (it->item.start > end) { + /* This range, and all subsequent ranges, start *after* + * the erase range */ + break; + } + if (it->item.start < start && it->item.end >= start) { /* * URI crosses the erase *start* point.