Thomas? Any input?
On Apr 5 10:52, Johannes Schindelin wrote: > In 7346568 (Make requested console reports work, 2016-03-16), code was > introduced to report the current cursor position. It works by using a > pointer that either points to the next byte in the readahead buffer, or > to a NUL byte if the buffer is depleted, or the pointer is NULL. > > These conditions are heeded in the fhandler_console::read() method, but > the condition that the pointer can point at the end of the readahead > buffer was not handled properly in the get_cons_readahead_valid() > method. > > This poses a problem e.g. in Git for Windows (which uses a slightly > modified MSYS2 runtime which is in turn a slightly modified Cygwin > runtime) when vim queries the cursor position and immediately goes on to > read console input, erroneously thinking that the readahead buffer is > valid when it is already depleted instead. This condition results in an > apparent freeze that can be helped only by pressing keys repeatedly. > > The full Git for Windows bug report is here: > > https://github.com/git-for-windows/git/issues/711 > > Let's just teach the get_cons_readahead_valid() method to handle a > depleted readahead buffer correctly. > > Signed-off-by: Johannes Schindelin <johannes.schinde...@gmx.de> > --- > winsup/cygwin/fhandler.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h > index 4610557..bd1a923 100644 > --- a/winsup/cygwin/fhandler.h > +++ b/winsup/cygwin/fhandler.h > @@ -1453,7 +1453,8 @@ private: > bool focus_aware () {return shared_console_info->con.use_focus;} > bool get_cons_readahead_valid () > { > - return shared_console_info->con.cons_rapoi != NULL; > + return shared_console_info->con.cons_rapoi != NULL && > + *shared_console_info->con.cons_rapoi; > } > > select_record *select_read (select_stuff *); > -- > 2.8.0.windows.1 Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
signature.asc
Description: PGP signature