mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-04 04:06:06 -05:00
vt: ignore VS16 (U+FE0F) when grapheme clustering is disabled
This fixes: a) a compilation error with -Dgrapheme-clustering=disabled b) ensures U+FE0F does *not* allocate a two cells when grapheme clustering has been disabled (either compile time, in config, or run-time).
This commit is contained in:
parent
aca9af0202
commit
0c94bf43f2
1 changed files with 7 additions and 1 deletions
8
vt.c
8
vt.c
|
|
@ -850,7 +850,11 @@ action_utf8_print(struct terminal *term, char32_t wc)
|
|||
break;
|
||||
|
||||
case GRAPHEME_WIDTH_DOUBLE:
|
||||
if (unlikely(wc == 0xfe0f && new_cc->count == 2)) {
|
||||
#if defined(FOOT_GRAPHEME_CLUSTERING)
|
||||
if (unlikely(grapheme_clustering &&
|
||||
wc == 0xfe0f &&
|
||||
new_cc->count == 2))
|
||||
{
|
||||
/* Only emojis should be affected by VS16 */
|
||||
const utf8proc_property_t *props =
|
||||
utf8proc_get_property(new_cc->chars[0]);
|
||||
|
|
@ -858,6 +862,8 @@ action_utf8_print(struct terminal *term, char32_t wc)
|
|||
if (props->boundclass == UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC)
|
||||
width = 2;
|
||||
}
|
||||
#endif
|
||||
|
||||
new_cc->width = min(grapheme_width + width, 2);
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue