Thread (2 messages) flat view 2 messages, 2 authors, 2017-01-18

Re: [PATCH] mingw: follow-up to "replace isatty() hack"

From: Johannes Sixt <hidden>
Date: 2017-01-18 21:16:44

Am 18.01.2017 um 20:19 schrieb Junio C Hamano:
Johannes Schindelin [off-list ref] writes:
quoted
 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 <redacted>

but it will take a day or two until I can test the patch.

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help