• K
    mingw: make isatty() recognize MSYS2's pseudo terminals (/dev/pty*) · f7f90e0f
    Karsten Blees 提交于
    MSYS2 emulates pseudo terminals via named pipes, and isatty() returns 0
    for such file descriptors. Therefore, some interactive functionality
    (such as launching a pager, asking if a failed unlink should be repeated
    etc.) doesn't work when run in a terminal emulator that uses MSYS2's
    ptys (such as mintty).
    
    However, MSYS2 uses special names for its pty pipes ('msys-*-pty*'),
    which allows us to distinguish them from normal piped input / output.
    
    On startup, check if stdin / stdout / stderr are connected to such pipes
    using the NtQueryObject API from NTDll.dll. If the names match, adjust
    the flags in MSVCRT's ioinfo structure accordingly.
    Signed-off-by: NKarsten Blees <blees@dcon.de>
    Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    f7f90e0f
winansi.c 15.1 KB