1.5 KiB
libghostty-vt local patches
This file tracks intentional local changes applied on top of the vendored
libghostty-vt source. Remove a patch only when the vendored source commit
contains the upstream behavior and the listed verification still passes.
0001 default lib-vt panes to grapheme clustering
status: active
patch: vendor/patches/libghostty-vt/0001-default-grapheme-cluster-mode.patch
herdr issue: https://github.com/herdrdev/herdr/issues/243
upstream discussion: not opened; libghostty-vt currently exposes current mode mutation but no C API for configuring terminal default modes
upstream pr: not opened
vendored base: c5a21edfcbc2d5b46540ad91b7980aca31f5f1f3
local files:
vendor/libghostty-vt/src/terminal/c/terminal.zig
reason: Herdr renders terminal cells directly and requires DEC private mode
2027 to store flags, ZWJ emoji, and other multi-codepoint grapheme clusters in
one cell. This patch makes clustering active for new terminals and keeps it as
the reset default so RIS (ESC c) does not disable it.
remove when: libghostty-vt exposes a C API for setting default mode 2027, or upstream makes grapheme clustering the lib-vt default, and the reset-survival regression passes without this patch.
verification:
cargo nextest run --locked grapheme_cluster_mode_is_default_and_survives_full_reset
cargo nextest run --locked grapheme_cluster_mode_renders_flag_emoji_in_single_wide_cell
cargo nextest run --locked grapheme_cluster_mode_renders_zwj_family_in_single_wide_cell