New implementation of pseudo console support (experimental)

Takashi Yano takashi.yano@nifty.ne.jp
Wed May 13 12:16:09 GMT 2020


Hello everyone.

This time, I have experimentally implemented a new pseudo console
support. In this implementation, pseudo console is created for each
native console app.

The advantage and disadvantage of this implementation are as follows.

Advantage:
1) No performance degradation in pty output for cygwin process.
    https://sourceware.org/pipermail/cygwin/2020-February/243651.html
2) Free from the problem caused by difference of behaviour of control
   sequences between real terminal and pseudo console.
    https://sourceware.org/pipermail/cygwin/2019-December/243074.html
    https://sourceware.org/pipermail/cygwin/2020-February/243648.html
3) Free from the problem in cgdb and emacs gud.
    https://sourceware.org/pipermail/cygwin/2020-January/243394.html
    https://sourceware.org/pipermail/cygwin/2020-March/243939.html
4) Redrawing screen on executing native console apps is not necessary.
5) cygwin-console-helper is not necessary for the pseudo console
   support.

Disadvantage:
1) Pseudo console is disabled if one of stdin, stdout or stderr is
   redirected.
2) Pseudo console is disabled if the native console app is executed
   in background.
3) The cygwin program which call console API directly does not work.
4) The apps which use console API cannot be debugged with gdb.
5) Type ahead key inputs are discarded while native console app is
   executed.
6) cmd.exe hangs up on typing some keys if cmd.exe is executed in
   background. (same as cygwin 3.0.7)
7) Code page cannot be changed by chcp.com.

The patch attached is for the current git head.

Could you please test? Any comments and suggestions will be
appreciated.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pcon2.diff
URL: <https://cygwin.com/pipermail/cygwin-developers/attachments/20200513/6c351703/attachment.ksh>


More information about the Cygwin-developers mailing list