diff --git a/setup_color.py b/setup_color.py index dfc60ec27..e866a6f48 100644 --- a/setup_color.py +++ b/setup_color.py @@ -25,15 +25,18 @@ def enable_native_ansi(): ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x04 out_handle = kernel32.GetStdHandle(subprocess.STD_OUTPUT_HANDLE) + + # GetConsoleMode fails if the terminal isn't native. mode = ctypes.wintypes.DWORD() if kernel32.GetConsoleMode(out_handle, ctypes.byref(mode)) == 0: - print('kernel32.GetConsoleMode failed') return False if not (mode.value & ENABLE_VIRTUAL_TERMINAL_PROCESSING): if kernel32.SetConsoleMode( out_handle, mode.value | ENABLE_VIRTUAL_TERMINAL_PROCESSING) == 0: - print('kernel32.SetConsoleMode to enable ANSI sequences failed') + print( + 'kernel32.SetConsoleMode to enable ANSI sequences failed', + file=sys.stderr) return False return True @@ -110,14 +113,15 @@ def init(): else: # A normal file, or an unknown file type. pass - - # Enable native ANSI color codes on Windows 10. - if IS_TTY and platform.release() == '10': - should_wrap = not enable_native_ansi() else: # This is non-windows, so we trust isatty. OUT_TYPE = 'pipe or file' + # Enable native ANSI color codes on Windows 10. + if IS_TTY and platform.release() == '10': + if enable_native_ansi(): + should_wrap = False + colorama.init(wrap=should_wrap) if __name__ == '__main__':