Tim Chase wrote (2023-12-09 21:47 CET):
> When connecting from an rxvt terminal on my FreeBSD daily-driver
> to my OpenBSD 7.4 server, tmux sends the CSI requesting color
> information.  But when rxvt replies, tmux ignores the reply and the
> resulting answer dumps answer-back garbage into my session as if I
> typed it.  At a prompt, it's largely just an annoyance since I can
> control+u to clear it; but if if the session is pointed at some TUI
> program, the answer-back garbage can really mess with the session.
> 
> If I'm within rxvt on FreeBSD (also v9.31), and I create a new
> session or attempt to attach to an existing one (regardless of what
> $TERM was set when the tmux session was started), I get the answer-back
> garbage.  If I use xterm or suckless `st`, or the rxvt from OpenBSD's
> packages used locally it doesn't happen.
> 
> The full conversation thread is here[1] and according to /u/sdk-dev
> who was able to reproduce and narrow down the changes, they say
> that it broke in this change[2] where these two lines[3] were moved
> outside of some checks.
> 
> As best we can tell, tmux is failing to consume the answer-back it
> requests.

Hi,

I've updated my answer on reddit quite a few times, so you probably
haven't seen the latest version.

The bug here is with rxvt-unicode. The xterm specification describes OSC
requests to be either terminated with the ST \033\\ or with the BEL \007
terminator.

The response from the terminal should then match the terminator of the
request. rxvt-unicode is failing to do so and always terminates with
BEL.

Tmux is doing this correctly. It sends ST and expects ST.

The specification describes ST as the newer and preferred terminator,
which was probably the reason why it was decided in OpenBSD to switch
rxvt-unicode to ST instead of switching tmux to BEL.

I don't know if rxvt is still developed somewhere, so FreeBSD could
adopt our patch.

https://cvsweb.openbsd.org/ports/x11/rxvt-unicode/patches/patch-src_command_C?rev=1.6&content-type=text/x-cvsweb-markup

Do we want some special handling for rxvt-unicode in tmux?
I'm not knowledable enough in this area to have an opinion.

Best regards,
Stefan aka /u/sdk-dev

> Thanks,
> -tkc
> 
> [1]
> https://www.reddit.com/r/openbsd/comments/18cxwdy/tmux_causing_ansi_colorresponse_garbage_on/
> 
> [2]
> /* $OpenBSD: tty.c,v 1.434 2023/09/02 20:03:10 nicm Exp $ */
> https://github.com/openbsd/src/commit/903d1285474e6a1a8bfdc71e5c97f8037e5d801a#diff-f63cc050113818ea4ebd794e00daec9960f613b4dbd2039bed3d532c7ea8096dR373
> 
> [3]
> https://github.com/openbsd/src/blob/master/usr.bin/tmux/tty.c#L373-L374

Reply via email to