Cygwin-3.1.3: Terminal contents are overwritten by less graphical ones on the start of non-Cygwin programs
Koichi Murase
myoga.murase@gmail.com
Sat Feb 8 12:13:00 GMT 2020
Hi, this is another report related to the pseudo console.
Description:
When a non-Cygwin program is started for the first time in that PTY
in terminal emulators such as Mintty, Xterm, Urxvt and GNU Screen,
the terminal contents are overwritten by less graphical ones. I
guess that the contents of the internal pseudo console (which is
constructed in the background) is somehow output and overwrites the
original contents of those functional terminal emulators.
This is reproduced with the latest snapshot and also with the latest
commit 3a71c4638.
Repeat-By:
Open Mintty or Xterm and run the following commands (with Bash):
$ x86_64-w64-mingw32-gcc -xc - -o nocyg.exe <<< 'main(){}'
$ printf '\e[%smhello\e[m\n' {0..9}
$ ./nocyg.exe
With the first line, the simplest non-Cygwin program is compiled.
With the second line, "hello" is printed with various graphic
styles. However, when one runs a non-Cygwin command in the third
line, those graphic styles are reset (i.e., overwritten by contents
of a less functional terminal).
Details:
* If I start Mintty or Xterm with the environment variable
`CYGWIN=disable_pcon', the problem does not occur.
* Before the commit `e38f2dc9b' (Cygwin: pty: Revise code waiting for
forwarding again.), this occured every time a non-Cygwin command is
executed. But after the commit, this only occurs for the first
execution of any non-Cygwin program in that PTY session.
* The problem is not restricted in just clearing graphic styles of
characters. For GNU Screen I use Screen-specific terminal sequences
"ESC k ... ST" in my shell prompt to set the title of each window.
But the overwriting contents seem to be constructed by another
terminal which does not recognize this terminal sequence. As a
results, the layout of terminal contents after the non-Cygwin
program is completely broken. The problem should occur with any
other functionalities which are supported by modern terminal
emulators but not by pseudo console.
* As well as non-Cygwin programs, also Cygwin programs `ssh', `scp' or
`git push/pull' with SSH connections cause the same results. I
guess SSH utilities internally use non-Cygwin programs. (Actually I
originally faced with this problem with these "Cygwin" commands.)
Best regards,
Koichi
--
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
More information about the Cygwin
mailing list