Re: [PATCH] mingw: follow-up to "replace isatty() hack"
Am 18.01.2017 um 20:19 schrieb Junio C Hamano:
Show 33 quoted lines
> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>> 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).
>>Looks good and obviously correct (FLW). I can offer a
Reviewed-by: Johannes Sixt <j6t@kdbg.org>
but it will take a day or two until I can test the patch.
-- Hannes