diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-01 14:02:33 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-01 14:02:33 -0400 |
| commit | 35cbde39ffd459593589b36318a6bc2962703599 (patch) | |
| tree | e7d3c8baebc9f19f3f8ca3b1067d48f22213e80f /modules/coverage-core.el | |
| parent | e46376a2d9263ba9c8ef26891de44bd5920bd4a9 (diff) | |
| download | dotemacs-35cbde39ffd459593589b36318a6bc2962703599.tar.gz dotemacs-35cbde39ffd459593589b36318a6bc2962703599.zip | |
fix(eat): guard against a nil charset wedging the terminal
EAT 0.9.4's parser accepts more charset-designation final bytes than its store step maps. A designation like ESC ( A (UK) isn't one of the two it handles ("0" and "B"), so it stores nil as that slot's charset. The next character written then fails (cl-assert charset) in eat--t-write. Since writes run off the output-queue timer, it repeats once per output chunk. An agent terminal that emits one of these bytes throws "cl-assertion-failed (charset)" hundreds of times and stops rendering.
I added filter-args advice on eat--t-set-charset that coerces a nil charset to us-ascii before it's stored, so an unmapped designation falls back to plain ASCII instead of wedging. Patching the vendored pcase would be cleaner, but a package update reverts it. The advice loads with eat, since the target is an internal function.
Diffstat (limited to 'modules/coverage-core.el')
0 files changed, 0 insertions, 0 deletions
