From 632c4839cdb1c673bfb3903e1d43802bfdcbf03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Thu, 28 Jul 2022 18:56:28 +0200 Subject: [PATCH] search: find_next(): handle trailing SPACER cells MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make sure to increment match_end_col to account for trailing SPACER cells after a match. This fixes an issue where search matches weren’t highlighted correctly when the match *ends* with a double-width character. --- CHANGELOG.md | 2 ++ search.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55961c88..75950976 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -94,6 +94,8 @@ * Certain dead-key combinations resulting in different escape sequences compared to kitty, when the kitty keyboard protocol is used ([#1120][1120]). +* Search matches ending with a double-width character not being + highlighted correctly. [1055]: https://codeberg.org/dnkl/foot/issues/1055 [1092]: https://codeberg.org/dnkl/foot/issues/1092 diff --git a/search.c b/search.c index f6d377ea..88bc88aa 100644 --- a/search.c +++ b/search.c @@ -371,6 +371,9 @@ find_next(struct terminal *term, enum search_direction direction, i += additional_chars; match_len += additional_chars; match_end_col++; + + while (match_row->cells[match_end_col].wc > CELL_SPACER) + match_end_col++; } if (match_len != term->search.len) {