Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > When removing the hack for isatty(), we actually removed more than just > an isatty() hack: we removed the hack where internal data structures of > the MSVC runtime are modified in order to redirect stdout/stderr. > > Instead of using that hack (that does not work with newer versions of > the runtime, anyway), we replaced it by reopening the respective file > descriptors. > > What we forgot was to mark stderr as unbuffered again. > > Reported by Hannes Sixt. Fixed with Jeff Hostetler's assistance. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > Published-As: https://github.com/dscho/git/releases/tag/mingw-unbuffered-stderr-v1 > Fetch-It-Via: git fetch https://github.com/dscho/git mingw-unbuffered-stderr-v1 OK. Should this go directly to 'master', as the isatty thing is already in? > > compat/winansi.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/compat/winansi.c b/compat/winansi.c > index 82b89ab1376..793420f9d0d 100644 > --- a/compat/winansi.c > +++ b/compat/winansi.c > @@ -510,6 +510,8 @@ static HANDLE swap_osfhnd(int fd, HANDLE new_handle) > */ > close(new_fd); > > + if (fd == 2) > + setvbuf(stderr, NULL, _IONBF, BUFSIZ); > fd_is_interactive[fd] |= FD_SWAPPED; > > return duplicate; > @@ -547,6 +549,8 @@ static void detect_msys_tty(int fd) > !wcsstr(name, L"-pty")) > return; > > + if (fd == 2) > + setvbuf(stderr, NULL, _IONBF, BUFSIZ); > fd_is_interactive[fd] |= FD_MSYS; > } > > > base-commit: 5588dbffbd61e4906e453808c6ad32f792fea521