[PATCH v3 0/3] Reworks for console code

Takashi Yano takashi.yano@nifty.ne.jp
Sun Mar 31 15:48:00 GMT 2019


Hi Corinna,

On Sun, 31 Mar 2019 16:36:51 +0200 Corinna Vinschen rote:
> This hunk is ok, but I wonder if the time hasn't come to simplify the
> original code.  The `static char NO_COPY' only makes marginal sense
> since it's strdup'ed anyway.
> 
> What if we just define two const char's like this
> 
>   const char cygterm[] = "TERM=cygwin";
>   const char xterm[] = "TERM=xterm-256color";
> 
> and then just strdup them conditionally:
> 
>   if (!sawTERM)
>     envp[i++] = strdup (wincap.has_con_24bit_colors () ? xterm :
> cygterm);
> 
> What do you think?

> Sorry, didn't notice this before:  Please prepend this block with
> a comment along the lines of "/* Not yet defined in Mingw-w64 */"

Adopted.

> Doesn't this belong into the select patch?

Actually, no. This makes select() recognize Ctrl-space, but
is just tentative. Patch 0002 overwrites this fix.

This is corresponding to:
> @@ -435,7 +451,8 @@ fhandler_console::read (void *pv, size_t& buflen)
>  	      toadd = tmp;
>  	    }
>  	  /* Allow Ctrl-Space to emit ^@ */
> -	  else if (input_rec.Event.KeyEvent.wVirtualKeyCode == VK_SPACE
> +	  else if (input_rec.Event.KeyEvent.wVirtualKeyCode
> +		   == (wincap.has_con_24bit_colors () ? '2' : VK_SPACE)
>  		   && (ctrl_key_state & CTRL_PRESSED)
>  		   && !(ctrl_key_state & ALT_PRESSED))
>  	    toadd = "";

Takashi Yano (3):
  Cygwin: console: support 24 bit color
  Cygwin: console: fix select() behaviour
  Cygwin: console: Make I/O functions thread-safe

 winsup/cygwin/environ.cc          |    7 +-
 winsup/cygwin/fhandler.h          |   34 +-
 winsup/cygwin/fhandler_console.cc | 1154 +++++++++++++++++++----------
 winsup/cygwin/select.cc           |   90 +--
 winsup/cygwin/wincap.cc           |   10 +
 winsup/cygwin/wincap.h            |    2 +
 6 files changed, 840 insertions(+), 457 deletions(-)

-- 
2.17.0



More information about the Cygwin-patches mailing list