summaryrefslogtreecommitdiffstats
path: root/gallery_dl/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/__init__.py')
-rw-r--r--gallery_dl/__init__.py15
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: