[vim/vim] Fix sixel encoder dropping rightmost pixels in a band (PR #20468)

4 views
Skip to first unread message

mattn

unread,
3:16 AM (6 hours ago) 3:16 AM
to vim/vim, Subscribed

The sixel encoder tracks the per-band x range of each colour while filling the band bitmask row by row, but xmax was updated with an unconditional assignment, so it ended up holding the rightmost x of the last row containing the colour rather than the maximum across all six rows. Pixels to the right of that were never emitted, and with P2=1 they stay transparent, which shows up as dark gaps along edges of shapes that narrow toward the bottom, for example the lower-right arc of a circle (found via mattn/vim-xeyes, where the right eye's lower-right outline went missing). The fix updates xmax only when the new x is greater, mirroring the existing xmin handling. Verified by capturing the emitted sixel sequences from a pty and decoding them: the previously dropped ring and white pixels on the lower-right are now all present.

Follow-up to 9.2.0612.


You can view, comment on, or merge this pull request online at:

  https://github.com/vim/vim/pull/20468

Commit Summary

  • e6e624d Fix sixel encoder dropping rightmost pixels in a band

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/20468@github.com>

Reply all
Reply to author
Forward
0 new messages