diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2008-11-02 20:11:13 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-11-06 09:26:06 -0800 |
commit | 19fb896f5b6f3e52370b43e4c9339bcbe4c0f2dd (patch) | |
tree | ffb92e83683b335365def294a1108929adda0d25 /compat/mingw.c | |
parent | 6331adb9c4ec36c70dc3ecc6eb46b7dddb36952d (diff) | |
download | git-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/mingw.c')
-rw-r--r-- | compat/mingw.c | 8 |
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; |