`unsupported()` lists a window title containing `;`, and misses `CSI 4;20 h`
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 86/100
Research direction
Read emu/unhandled.rs, especially the OSC exemption around line 248 and mode handling around line 190, then inspect tests/unsupported.rs. Add tests for both provided repros and check that OSC 0/2 titles are exempt while h/l sequences are handled only when every parameter is supported. Done means both repros return the expected unsupported results and the tests pass.
Written by the indexing model from the issue text.
Description
What happens. unsupported() is wrong in both directions for two common shapes:
- A title with a semicolon is listed although it is honoured. After
printf '\033]2;make; test\007ok',title()is"make; test", yetunsupported()is["^[]2;make; test"]. - LNM is dropped silently.
printf 'x\033[4;20h'givesunsupported() == []. The same modes in the other order,\033[20;4h, give["^[[20;4h"].
Cause.
- vt100 only matches the exact two-parameter
[0|1|2, s]OSC forms. termlens's tracker sets the title itself, but the exemption list inemu/unhandled.rs:248follows vt100. emu/unhandled.rs:190checksfirst == Some(4)and treats the whole sequence as handled.
Why it matters. assert!(screen.unsupported().is_empty()) is the documented way to prove a screen is trustworthy. Case 1 fails it for any program whose title contains a semicolon, such as a shell running a command line. Case 2 lets a dropped mode through.
Fix.
- Exempt OSC
0/2always, since the tracker owns the title. - For
h/l, count the sequence as handled only when every parameter is one the emulator honours.
Done when both repros give the right answer, with tests in tests/unsupported.rs.
- 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 62/100
calcit-lang/calcit#2538 ·
Maintainers usually reply within 1 day
-
Remove the em dashes from the skill smart-account referencePossibly taken @Vamsi-2581 claimed this today. Openagent-ready area: docs documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Soneso/stellar-agent-wallet#541 · 2 comments ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
bovinemagnet/AdocFoundry#279 ·
Maintainers usually reply within 1 day
-
help wanted
Difficulty 1/5 Half a day Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
weihubeats/Miyo#132 · 1 comment ·
Maintainers usually reply within 2 days