mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
mingw: fix colourization on Cygwin pseudo terminals
Git only colours the output and uses pagination if isatty() returns 1.
MSYS2 and Cygwin emulate pseudo terminals via named pipes, meaning that
isatty() returns 0.
f7f90e0f4f
(mingw: make isatty() recognize MSYS2's pseudo terminals
(/dev/pty*), 2016-04-27) fixed this for MSYS2 terminals, but not for
Cygwin.
The named pipes that Cygwin and MSYS2 use are very similar. MSYS2 PTY pipes
are called 'msys-*-pty*' and Cygwin uses 'cygwin-*-pty*'. This commit
modifies the existing check to allow both MSYS2 and Cygwin PTY pipes to be
identified as TTYs.
Note that pagination is still broken when running Git for Windows from
within Cygwin, as MSYS2's less.exe is spawned (and does not like to
interact with Cygwin's PTY).
This partially fixes https://github.com/git-for-windows/git/issues/267
Signed-off-by: Alan Davies <alan.n.davies@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
fee807c5f6
commit
86924838e3
|
@ -562,8 +562,12 @@ static void detect_msys_tty(int fd)
|
|||
name = nameinfo->Name.Buffer;
|
||||
name[nameinfo->Name.Length] = 0;
|
||||
|
||||
/* check if this could be a MSYS2 pty pipe ('msys-XXXX-ptyN-XX') */
|
||||
if (!wcsstr(name, L"msys-") || !wcsstr(name, L"-pty"))
|
||||
/*
|
||||
* Check if this could be a MSYS2 pty pipe ('msys-XXXX-ptyN-XX')
|
||||
* or a cygwin pty pipe ('cygwin-XXXX-ptyN-XX')
|
||||
*/
|
||||
if ((!wcsstr(name, L"msys-") && !wcsstr(name, L"cygwin-")) ||
|
||||
!wcsstr(name, L"-pty"))
|
||||
return;
|
||||
|
||||
/* init ioinfo size if we haven't done so */
|
||||
|
|
Loading…
Reference in a new issue