Bump vt100 fork: fix VS16 emoji-width residue - #51
Merged
Conversation
Updates the pinned vt100 (deck branch) to e84a954, fixing a rendering bug: a text-presentation emoji followed by U+FE0F (e.g. ❤️,⚠️ ) was treated as one column by the parser, while tmux and the host terminal render it as two. Every column after the emoji drifted by one, leaving the trailing characters of a line as on-screen residue when scrolling tmux scrollback. The bump also carries a Row::erase underflow guard and three cherry-picked upstream PRs (1x1 grid scroll underflow #29, HPA+REP #23, DECSCUSR cursor styles #21). docs/vt100-fork.md records all of these with their upstream PR links and authors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR bumps the pinned vt100 fork commit used by deck’s terminal emulation path and updates the fork-maintenance documentation to describe the additional fixes carried by the fork.
Changes:
- Updates
Cargo.lockto pinvt100to commite84a9548.... - Expands
docs/vt100-fork.mdwith the current patch list, origins, and upstream/cherry-pick status.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
Cargo.lock |
Updates the pinned vt100 fork revision. |
docs/vt100-fork.md |
Documents the fork’s current patch set and origins. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Bumps the pinned
vt100(forkdeckbranch) toe84a954and records the new patches indocs/vt100-fork.md. Two files:Cargo.lock+ the doc.Why
A line of
text + emoji + bold textleft the trailing character on screen ("residue") when scrolling tmux scrollback. Root cause was in the vt100 parser: a text-presentation base char followed byU+FE0F(VS16 — e.g.❤️,⚠️) was stored as a single narrow cell, while tmux, the host terminal, andunicode-width's string-level width all count it as 2 columns. Every column after the emoji drifted by one.Verified with a parser unit test, a real-tmux integration test (tmux renders
AB❤️CD, parser must reconstruct the emoji as wide), and manually in the running app — residue is gone.What the bump carries
Row::erasesaturating_subunderflow guardCommit-level detail (incl.
(cherry picked from …)+ upstream PR links) is on the fork'sdeckbranch.Verification
cargo build+cargo testgreen (259 tests, 0 failures).🤖 Generated with Claude Code