select() fails on multi-byte input in cygwin console (since 1.7.10)

Corinna Vinschen corinna-cygwin@cygwin.com
Tue Dec 9 11:19:00 GMT 2014


Hi Thomas,

On Dec  9 08:02, Thomas Wolff wrote:
> Calling select() to check whether input from the terminal is available
> fails for all but the first byte in the cygwin console if multiple bytes
> are entered at once, like function or cursor keys or non-ASCII UTF-8
> characters.
> Actually, the issue is volatile, sometimes it works for characters and
> most function keys.
> The problem most likely arises with the escape sequences mouse scroll
> and window focus out/in (both enabled by the test program).
> I tried to use read() with timeout instead, trying various combinations
> of tcsetattr setting VMIN/VTIME, fcntl setting O_NONBLOCK, using read()
> with buffer length 0, trying to interrupt read() with a timer signal, or
> even a combination of setitimer() and siglongjmp().
> None of this works.

Your STC creates 0s and 1s, and it looks quite normal to me with the
latest from CVS.  Without a short description I don't know exactly what
to look out for.  There are lots of 0s, and if I press a cursor key
I see three 1s, one for each char of the escape sequence.

Did you try the latest snapshot or the 1.7.34-002 test release?  There's
a patch in there which fixes another problem with multibyte input and
VMIN:

https://cygwin.com/ml/cygwin-developers/2014-11/msg00000.html

If that doesn't help, would you mind trying to track this down?  You're
familiar with Cygwin's console code so you might get a clue what's going
wrong.


Thanks,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20141209/35bde04f/attachment.sig>


More information about the Cygwin mailing list