This is the mail archive of the
mailing list for the Cygwin project.
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
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?
In any case, I am glad to have found this workaround.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple