3.1.x: Mangled input/output when calling non-cygwin programs
Sun Feb 2 12:18:00 GMT 2020
On 02.02.2020 10:59, Takashi Yano wrote:
> On Sat, 1 Feb 2020 19:00:04 +0100
> m0viefreak wrote:
>> Since Cygwin 3.1's pseudo console support was introduced I've run into
>> lots of issues with non-cygwin programs.
> Thanks for the report.
>> 1) Mangled output: See screenshot .
>> As you can see, at what it seems random places, the output is broken.
>> The above can easily be reproduced using Apache Maven in any project,
>> e.g. using a sample project created using .
>> 2) Terminal width: For some reason, non-native programs do not use the
>> full width of the terminal (Mintty and TERM=xterm-256color). Can also
>> be seen in  (blue highlight) and reproduced e.g. using Maven with
>> a relatively small window.
> I looked into this problem, but Maven is something weird.
> I don't think it uses termcap or terminfo, but it behaves
> differently depending on TERM.
> If you run
> env TERM=cygwin mvn <something>
> in mintty, problem 1) and 2) does not occur.
Interesting, this solves the mangled output. But it somewhat contradicts
that TERM should not matter (see below).
>> 3) Typed characters while non-cygwin program is running are lost.
>> Usually, when typing characters while a native program executes,
>> which does *not* read from standard input, after the program exits,
>> all these typed characters are put into the prompt.
>> When executing a non-native program, such as, again, "mvn clean",
>> which does not read from stdin, typed characters are completely lost.
>> This is very frustrating, since I am often quicker at tying the
>> next command, while the previous command is still doing something.
> I know the cause of this problem. Let me consider.
That would be great to have the same experience as without pcon.
>> 4) Importance of TERM: When connecting to my Cygwin installation using
>> SSH using Putty, TERM=putty-256color is set. When executing non-
>> native program from that session using that TERM, output is broken
>> even worse than in 1), and also keybindings are broken. I need to
>> force TERM=xterm-256color for those invocations.
>> Shouldn't this be handled transparently and enforced automatically by
>> the pcon code?
> Which keybinding is broken? In my environment, arrow keys and function
> keys work as expected in cmd.exe and windows-native vim.
HOME/END keys were broken if the native app brought up an interactive
> My configuration of putty is:
> + Keybord
> + The Function keys and keypad: Xterm R6
> The PTY codes do not reffer to TERM environment, so cygwin1.dll itself
> should not behave differently depending on TERM.
It seems that the cygwin1.dll does not care about TERM, but if a
non-native application *uses* TERM for whatever reason things start to
break. If indeed 'cygwin' is the right terminfo to be used, should the
PTY code then somehow set TERM=cygwin in the non-native process? But
what if the none-native program doesn't even know the 'cygwin' terminfo?
One more thing (maybe also related): When calling a non-native program
that prints very sinle long line (e.g. just 'mvn' without args) that
wraps around the terminal, and then copying that multi-line output from
mintty, the result differs:
- disable_pcon: A single line is copied
- default: Multiple lines are copied (like in block selection mode)
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin