Skip to content

Commit

Permalink
Windows: Make OpenSSH properly detect tty detachment.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Alexander Gavrilov authored and Junio C Hamano committed Nov 6, 2008
1 parent 6331adb commit 19fb896
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions compat/mingw.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 19fb896

Please sign in to comment.