Sixel decode crops to the declared raster size; xterm keeps what was painted
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
Research direction
Read graphics.rs around lines 824–826 and the cursor-placement logic around line 1149, then find the existing sixel decoder tests. Update decoding so each axis uses the greater of the declared and painted extent, within the 4096 cap. Done when the repro decodes to 8×12 and a test covers it.
Written by the indexing model from the issue text.
Description
What happens. A sixel declaring 2x6 px ("1;1;2;6) that paints 8x12 decodes as 2x6:
\033Pq"1;1;2;6#0;2;100;0;0~~~~~~~~-~~~~~~~~\033\\
size() == Some((2, 6)); decoded 2x6; pixel(5,0) == None; pixel(0,8) == None
xterm's image is 8x12, with those pixels red. xterm-sixel.c sets the actual width and height to max(declared, painted), and set_sixel grows the image to the painted extent.
Cause. graphics.rs:824-826. The decoder's own comment says a sixel "can still overrun" its declared size, and the cursor-placement code already uses the maximum (:1149).
Fix. Decode to max(declared, painted) on each axis, still under the 4096 cap.
Done when the repro decodes 8x12, with a test.
- Dominant language
- Rust
- Stars
- 28
- Forks
- 24
- Avg merge
- 11h 23m
- Merged PRs (30d)
- 42
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from vyncint/termlens
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 1/5 Under an hour Newbie friendliness 95/100
Maintainers usually reply within 1 day
-
Release notes show a broken link: `extract-changelog.sh` copies a reference but not its definitionOpenbug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
All issues in vyncint/termlens
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
area:ci kind:bug priority:p3 ready
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
srikanth235/centraid#1155 ·
Maintainers usually reply within 1 day
-
dotfiles: failed batch untrack removes earlier tracking declarationsPossibly taken @jdx claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 2 days