dankamongmen / notcurses

blingful character graphics/TUI library. definitely not curses.
https://nick-black.com/dankwiki/index.php/Notcurses
Other
3.56k stars 112 forks source link

Enable detecting SyncTERM DA1 response. #2743

Open RealDeuce opened 9 months ago

RealDeuce commented 9 months ago

SyncTERM sends CSI = Pn c not CSI ? Pn c like VT terminals. This results in notcurses hanging in init.

This required WezTerm da3 support to be removed, because the SyncTERM and WezTerm responses could not both exist in the automaton. As it turns out, a dig through the WezTerm git history shows that it never actually sent CSI = ... ST in response to DA3, and notcurses took no actions in response to it, so it should be safe to remove this feature.

dankamongmen commented 9 months ago

is SyncTERM used? the webpage looks pretty ... unmaintainted.

good work either way, nice investigation.

RealDeuce commented 9 months ago

Yeah, it's used (and designed) as a client for BBSs. The web page was recently (within the last month) updated to incorporate all the important feedback from the users. Even I don't use it as a general-purpose terminal emulator since it's explicitly not VT-compatible, and it doesn't support Unicode (though I may do that soon).

I whipped it up to scratch my own itch, and am constantly surprised that other people use it too. A new version will be released "Really Soon Now". Only reason I became aware of the issue is because a user accused SyncTERM of hanging. :smile:

SirCyan commented 4 months ago

Some more background, this is affecting this game: https://dev.sqt.wtf/cgit/cyan/fernandotel/.git/tree/ Which was written as a BBS door for notcurses direct mode, but it can't run on Syncterm, which is arguably the most popular BBS terminal today.

dankamongmen commented 4 months ago

sorry, forgot all about this. i'll try hard to look into this asap!

SirCyan commented 4 months ago

I'll let Deuce chime in more with that one, but my understanding is they overlapped in the automaton (that is to say, they both couldn't be detected independently), and after reviewing the wezterm code along with its history, it looks like it never responded to DA3 with CSI = ... ST