Repository navigation
fix(terminal): guard wrap count when resize pushes cursor to scrollback - #12935
Merged
Merged
Conversation
In the column-shrink (.lt) branch of PageList.resize, resizeWithoutReflow lowers self.rows before resizeCols runs. Because the active area is anchored to the bottom, shrinking rows moves the active-area top down; a cursor near the top of the old active area then ends up above the new active area (in scrollback). resizeCols counts wrap continuations from the cursor pin up to the active-area top via a .left_up rowIterator. When the cursor pin is above the limit, the range is reversed and the iterator's order assertion fires (SIGABRT in debug; silently iterates empty in release). Count zero wraps when the cursor pin is above the active area, mirroring the post-reflow preserved-cursor block which already no-ops for a non-active cursor. Add a regression test.
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.
Found this issue when testing some search features; follow up for #12907.
You can either reproduce using the PoC below with
libghostty-vtor run Ghostty debug on macOS and follow these steps:0.cmd+=to increase font size.AI Disclosure
As the commit suggests, Claude implemented the fix, the unit test, and PoC file.
I reviewed it(seems reasonable to me, but I’m not a Zig professional) and tested it myself.