Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

RIS leaves focus reporting on and an open synchronized update open, so `wait_stable` can never succeed

Aperta Adatta ai principianti
#623 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
cli, testing

Direzione di ricerca

Inizia in emu/seq.rs, nel ramo RIS intorno alla riga 1680, e confronta il suo comportamento di ripristino con quello di soft_reset() intorno alla riga 954. Aggiorna il ripristino RIS in modo che cancelli le modalità segnalate e qualsiasi frame raccolto solo parzialmente. Esegui la riproduzione dell’issue; il lavoro è terminato quando wait_stable riesce, focus_in non invia nulla e DECRQM segnala che entrambe le modalità sono state ripristinate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug good first issue

What happens. After ESC c, focus reporting (mode 1004) is still on, and an unfinished DEC 2026 synchronized update is still open:

// 20x4
printf '\033[?1004h\033[?2026hhalf\033cREADY'
  • focus_events() is true after the RIS, so focus_in() sends ^[[I, which the tty echoes onto the screen.
  • wait_stable times out with "the application is inside an unfinished DEC 2026 synchronized update (Begin with no End)".
  • DECRQM answers Set for both 1004 and 2026.

Cause. The RIS arm in emu/seq.rs:1680 resets the cursor style, charsets, mouse tracking, IRM, tabs, links and any kitty upload. It does not reset focus_events or sync_update. soft_reset() (:954) does clear focus_events.

Why it matters. RIS is the "start over" sequence. A program that resets after a crash or a mode switch leaves every later stability wait doomed.

Fix. In the RIS arm, set focus_events = false and sync_update = false. Drop any half-collected frame as well.

Done when the repro's wait_stable succeeds, focus_in sends nothing, and DECRQM reports both modes reset.

Lingua principale
Rust
Stelle
28
Fork
24
Merge medio
11h 23m
PR unite (30g)
42

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di vyncint/termlens

Tutte le issue di vyncint/termlens

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.