mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-05-29 11:18:50 +02:00
56f276580f
In highlight_mark(), mark_text was sliced using byte-based indexing (mark_text[:len(hint)] and mark_text[len(hint):]). Since len(hint) equals the rune count (hint is always ASCII), but len(mark_text) is a byte count, this could slice in the middle of a multi-byte UTF-8 sequence (e.g. CJK characters), producing an invalid byte sequence rendered as the Unicode replacement character (�). Fix by converting mark_text to []rune first, then slicing at rune boundaries. The hint is ASCII so len(hint) == rune count, requiring no conversion on the hint side. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>