term+vt: refactor: move "utf8" char processing to term_process_and_print_non_ascii()

This function "prints" any non-ascii character (i.e. any character
that ends up in the action_utf8_print() function in vt.c) to the
grid. This includes grapheme cluster processing etc.

action_utf8_print() now simply calls this function.

This allows us to re-use the same functionality from other
places (like the text-sizing protocol).
This commit is contained in:
Daniel Eklöf 2025-01-26 07:33:53 +01:00
parent 7a8d2b5e01
commit d3f692990e
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 261 additions and 251 deletions

5
osc.c
View file

@ -1207,7 +1207,10 @@ kitty_text_size(struct terminal *term, char *string)
free(wchars);
}
term_print(term, CELL_COMB_CHARS_LO + composed->key, composed->forced_width > 0 ? composed->forced_width : composed->width);
term_print(
term, CELL_COMB_CHARS_LO + composed->key,
composed->forced_width > 0 ? composed->forced_width : composed->width,
false);
}
void