diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 17:56:54 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:17 -0300 |
| commit | b6f07ba4e84e6d8474a118bee6e69e4b554417f1 (patch) | |
| tree | 3e9e1b2766e2fcc7f44afd3edd952d62877b2c89 /docs/config.md | |
| parent | 031989d927b07d38f0874a0b78a52f54ad285efb (diff) | |
| download | pardes-b6f07ba4e84e6d8474a118bee6e69e4b554417f1.tar.gz pardes-b6f07ba4e84e6d8474a118bee6e69e4b554417f1.zip | |
An invalid byte in a grapheme is one cell, and never reaches vaxis's width
uucode joins a stray lead byte (as U+FFFD) to a following e and combining mark into one grapheme; vaxis's gwidth then counts back the replacement rune's three bytes over the one byte it stood for and overflows (gwidth.zig:62), panicking the next frame after a write of \xee e \xcc\x81 to xdata (the 9P monkey's crash-b2417c49). graphemeDisplayWidth now gives each invalid byte one cell, as surface.zig draws it, and measures the valid runs between alone.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs/config.md')
0 files changed, 0 insertions, 0 deletions
