mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
search: match composed characters when extending the search string to the next word boundary
This commit is contained in:
parent
709d6deeae
commit
5db389da21
1 changed files with 13 additions and 0 deletions
13
search.c
13
search.c
|
|
@ -472,6 +472,14 @@ search_match_to_end_of_word(struct terminal *term, bool spaces_only)
|
|||
if (wc == CELL_MULT_COL_SPACER)
|
||||
continue;
|
||||
|
||||
const struct composed *composed = NULL;
|
||||
if (wc >= CELL_COMB_CHARS_LO &&
|
||||
wc < (CELL_COMB_CHARS_LO + term->composed_count))
|
||||
{
|
||||
composed = &term->composed[wc - CELL_COMB_CHARS_LO];
|
||||
wc = composed->base;
|
||||
}
|
||||
|
||||
if (wc == 0 || (!first && !isword(wc, spaces_only, term->conf->word_delimiters))) {
|
||||
done = true;
|
||||
break;
|
||||
|
|
@ -479,6 +487,11 @@ search_match_to_end_of_word(struct terminal *term, bool spaces_only)
|
|||
|
||||
first = false;
|
||||
tll_push_back(new_chars, wc);
|
||||
|
||||
if (composed != NULL) {
|
||||
for (size_t i = 0; i < composed->count; i++)
|
||||
tll_push_back(new_chars, composed->combining[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (done)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue