[PATCH v10] Cygwin: pty: Disable pseudo console if TERM does not have CSI6n.

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Aug 31 10:12:15 GMT 2020


On Aug 31 18:48, Takashi Yano via Cygwin-patches wrote:
> - Pseudo console internally sends escape sequence CSI6n (query cursor
>   position) on startup of non-cygwin apps. If the terminal does not
>   support CSI6n, CreateProcess() hangs waiting for response. To prevent
>   hang, this patch disables pseudo console if the terminal does not
>   have CSI6n. This is checked on the first execution of non-cygwin
>   app using the following steps.
>     1) Check if the terminal support ANSI escape sequences by looking
>        into terminfo database. If terminfo has cursor_home (ESC [H),
>        the terminal is supposed to support ANSI escape sequences.
>     2) If the terminal supports ANSI escape sequneces, send CSI6n for
>        a test and wait for a responce for 40ms.
>     3) If there is a responce within 40ms, CSI6n is supposed to be
>        supported.
>   Also set-title capability is checked, and removes escape sequence
>   for setting window title if the terminal does not have the set-
>   title capability.
> ---
>  winsup/cygwin/fhandler.h      |   1 +
>  winsup/cygwin/fhandler_tty.cc | 235 ++++++++++++++++++++++++++++++----
>  winsup/cygwin/spawn.cc        |  18 ++-
>  winsup/cygwin/tty.cc          |   3 +
>  winsup/cygwin/tty.h           |   3 +
>  5 files changed, 230 insertions(+), 30 deletions(-)

Pushed with minor typo fixes (responce -> response, responced ->
responded).  A native english speaker will probably use different
expressions, like (not responded -> not acknowledged) or something,
but I think it's ok as is.

Thanks for your explanations in your other mail!


Corinna


More information about the Cygwin-patches mailing list