aboutsummaryrefslogtreecommitdiff
path: root/compat
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2008-11-02 20:11:13 +0300
committerJunio C Hamano <gitster@pobox.com>2008-11-06 09:26:06 -0800
commit19fb896f5b6f3e52370b43e4c9339bcbe4c0f2dd (patch)
treeffb92e83683b335365def294a1108929adda0d25 /compat
parent6331adb9c4ec36c70dc3ecc6eb46b7dddb36952d (diff)
downloadgit-19fb896f5b6f3e52370b43e4c9339bcbe4c0f2dd.tar.gz
git-19fb896f5b6f3e52370b43e4c9339bcbe4c0f2dd.tar.xz
Windows: Make OpenSSH properly detect tty detachment.
Apparently, CREATE_NO_WINDOW makes the OS tell the process that it has a console, but without actually creating the window. As a result, when git is started from GUI, ssh tries to ask its questions on the invisible console. This patch uses DETACHED_PROCESS instead, which clearly means that the process should be left without a console. The downside is that if the process manually calls AllocConsole, the window will appear. A similar thing might occur if it calls another console executable. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Acked-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'compat')
-rw-r--r--compat/mingw.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/compat/mingw.c b/compat/mingw.c
index 09858f6c5..b534a8a47 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -536,12 +536,16 @@ static pid_t mingw_spawnve(const char *cmd, const char **argv, char **env,
* would normally create a console window. But
* since we'll be redirecting std streams, we do
* not need the console.
+ * It is necessary to use DETACHED_PROCESS
+ * instead of CREATE_NO_WINDOW to make ssh
+ * recognize that it has no console.
*/
- flags = CREATE_NO_WINDOW;
+ flags = DETACHED_PROCESS;
} else {
/* There is already a console. If we specified
- * CREATE_NO_WINDOW here, too, Windows would
+ * DETACHED_PROCESS here, too, Windows would
* disassociate the child from the console.
+ * The same is true for CREATE_NO_WINDOW.
* Go figure!
*/
flags = 0;