diff options
Diffstat (limited to 'gallery_dl/__init__.py')
| -rw-r--r-- | gallery_dl/__init__.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gallery_dl/__init__.py b/gallery_dl/__init__.py index d66e285..9e27417 100644 --- a/gallery_dl/__init__.py +++ b/gallery_dl/__init__.py @@ -154,6 +154,21 @@ def main(): else: signal.signal(signal_num, signal.SIG_IGN) + # enable ANSI escape sequences on Windows + if util.WINDOWS and config.get(("output",), "ansi"): + from ctypes import windll, wintypes, byref + kernel32 = windll.kernel32 + mode = wintypes.DWORD() + + for handle_id in (-11, -12): # stdout and stderr + handle = kernel32.GetStdHandle(handle_id) + kernel32.GetConsoleMode(handle, byref(mode)) + if not mode.value & 0x4: + mode.value |= 0x4 + kernel32.SetConsoleMode(handle, mode) + + output.ANSI = True + # extractor modules modules = config.get(("extractor",), "modules") if modules is not None: |
