search: find_next(): handle trailing SPACER cells

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.
This commit is contained in:
Daniel Eklöf 2022-07-28 18:56:28 +02:00
parent d79a3b9350
commit 632c4839cd
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 5 additions and 0 deletions

View file

@ -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

View file

@ -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) {