Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > The version of the "replace isatty() hack" that got applied to the > `maint` branch did not actually reflect the latest iteration of the > patch series: v3 was sent out with these changes, as requested by > the reviewer Johannes Sixt: Thanks for an update. Does the above "the version taken was not updated before getting merged" mistake only apply to 'maint', or is it also true for 'master'? As a rule we only merge things to 'maint' that have already been merged to 'master', so I am guessing that the answer is yes, in which case I'd queue it on js/mingw-isatty and then merge it to next, master and maint in that order as usual. > - reworded the comment about "recycling handles" > > - moved the reassignment of the `console` variable before the dup2() > call so that it is valid at all times > > - removed the "handle = INVALID_HANDLE_VALUE" assignment, as the local > variable `handle` is not used afterwards anyway > Also if the v3 had been reviewed and acked, it would be nice to have the acked-by around here (which I can locally do). Hannes? > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- Thanks. > Published-As: https://github.com/dscho/git/releases/tag/mingw-isatty-fixup-fixup-v1 > Fetch-It-Via: git fetch https://github.com/dscho/git mingw-isatty-fixup-fixup-v1 > > compat/winansi.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/compat/winansi.c b/compat/winansi.c > index 3c9ed3cfe0..82b89ab137 100644 > --- a/compat/winansi.c > +++ b/compat/winansi.c > @@ -494,19 +494,16 @@ static HANDLE swap_osfhnd(int fd, HANDLE new_handle) > * It is because of this implicit close() that we created the > * copy of the original. > * > - * Note that the OS can recycle HANDLE (numbers) just like it > - * recycles fd (numbers), so we must update the cached value > - * of "console". You can use GetFileType() to see that > - * handle and _get_osfhandle(fd) may have the same number > - * value, but they refer to different actual files now. > + * Note that we need to update the cached console handle to the > + * duplicated one because the dup2() call will implicitly close > + * the original one. > * > * Note that dup2() when given target := {0,1,2} will also > * call SetStdHandle(), so we don't need to worry about that. > */ > - dup2(new_fd, fd); > if (console == handle) > console = duplicate; > - handle = INVALID_HANDLE_VALUE; > + dup2(new_fd, fd); > > /* Close the temp fd. This explicitly closes "new_handle" > * (because it has been associated with it). > > base-commit: 3313b78c145ba9212272b5318c111cde12bfef4a