----- Original Message ----- | From: "Thomas Wolff" <t...@towo.net> | To: "cygwin" <cygwin@cygwin.com> | 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-cyg...@shaddybaddah.name> |> | To: "cygwin" <cygwin@cygwin.com> |> | 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 |> behavior. | 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: https://stackoverflow.com/questions/24613237/terminal-retains-bg-color-after-closing-vim-using-color-scheme-and-putty-256co/37869114#37869114 | cases, do you have a list? no - I've a few notes which aren't incorporated into the terminal description https://invisible-island.net/ncurses/terminfo.src.html#tic-putty offhand, there's differences in wrapping, as well as how modifiers affect cursor-keys. | Thanks | Thomas -- Thomas E. Dickey <dic...@invisible-island.net> http://invisible-island.net ftp://ftp.invisible-island.net -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple