Re: *cause of* screen writing over restored buffer on detach/exit
- Date: Thu, 11 Apr 2019 19:06:22 -0400 (EDT)
- From: Thomas Dickey <dickey@xxxxxxx>
- Subject: Re: *cause of* screen writing over restored buffer on detach/exit
----- Original Message -----
| From: "Thomas Wolff" <towo@xxxxxxxx>
| To: "cygwin" <cygwin@xxxxxxxxxx>
| Sent: Wednesday, April 10, 2019 5:51:34 PM
| Subject: Re: *cause of* screen writing over restored buffer on detach/exit
| Hi Thomas,
| Thomas Dickey wrote:
|> ----- Original Message -----
|> | From: "Shaddy Baddah" <lithium-cygwin@xxxxxxxxxxxxxxxxx>
|> | To: "cygwin" <cygwin@xxxxxxxxxx>
|> | Sent: Tuesday, April 9, 2019 11:18:19 PM
|> | Subject: Re: *cause of* screen writing over restored buffer on detach/exit
|> | On 9/4/19 4:07 pm, Shaddy Baddah wrote:
|> |> This helped with screen when using Putty to a Cygwin ssh session. For
|> |> some reason, it isn't helping for running screen locally in a mintty
|> |> session. And it's not mintty either, because I can ssh to a Debian
|> |> stretch server within mintty and I can use its screen without this
|> |> issue happening. Back to the drawing board for me.
|> | I understand the cause of the issue now, by capturing and comparing the
|> | escape characters used to control the terminal by screen on Cygwin and
|> | Debian.
|> | It is not so much the detach/exit is the issue, although the escape
|> | sequence for Cygwin includes a couple of extra xterm OSC Set Text
|> | Parameters -> Change Icon Name and Window Title outputs. I misdiagnosed
|> | this somehow. I can suppress the extra utmp error one of these OSC
|> | outputs, but it didn't/doesn't really make a difference.
|> | The issue is in the escape sequences sent to the terminal by Cygwin
|> | screen to switch to new windows buffer, as compared to Debian.
|> | Debian uses xterm sequence DECSET / ESC[?1049h in the switch to the new
|> | window. Cygwin uses the two sequences ESC7 / Save Cursor (DECSC) and
|> | ESC[?47l / DEC Private Mode Reset (DECRST) -> Use Normal Screen Buffer.
|> | The reason seems to be that the Debian screen package packages a custom
|> | /etc/screenrc that does not include this explicit term capability:
|> | #
|> | # Do not use xterms alternate window buffer.
|> | # This one would not add lines to the scrollback buffer.
|> | termcap xterm|xterms|xs ti=\E7\E[?47l
|> | terminfo xterm|xterms|xs ti=\E7\E[?47l
|> | If I comment these out, my screen issue is resolved.
|> | I'm not suggesting this is a problem with Cygwin screen... it is using
|> | the upstream settings. In fact, I am not confident to say where the
|> | fault lies. Perhaps screen is right to use these sequences, but the
|> | xterms used (putty and mintty) aren't doing the right thing?
|> yes - that's one of a half-dozen cases where PuTTY has never matched xterm's
| I've tested the CSI?1049h and CSI?1049l pair on xterm, pterm, mintty and
| see no difference. In what way would it not match? And what are the
I mentioned it here:
| cases, do you have a list?
no - I've a few notes which aren't incorporated into the terminal description
offhand, there's differences in wrapping, as well as how modifiers affect cursor-keys.
Thomas E. Dickey <dickey@xxxxxxxxxxxxxxxxxxxx>
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple