pp_write_text_to_stream() in pretty-print.cc calls fputs() on
that stream. However, the code below for non-Windows doesn't seem
to care about it either... */
- HANDLE h;
- DWORD m;
+ HANDLE handle;
+ DWORD mode;
+ BOOL isconsole = false;
- h = GetStdHandle (STD_ERROR_HANDLE);
- return (h != INVALID_HANDLE_VALUE) && (h != NULL)
- && GetConsoleMode (h, &m);
+ handle = GetStdHandle (STD_ERROR_HANDLE);
+
+ if ((handle != INVALID_HANDLE_VALUE) && (handle != NULL))
+ isconsole = GetConsoleMode (handle, &mode);
+
+ if (isconsole)
+ {
+ /* Try to enable processing of VT100 escape sequences */
+ mode |= ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING;
+ SetConsoleMode (handle, mode);
+ }
+
+ return isconsole;
#else
char const *t = getenv ("TERM");
/* emacs M-x shell sets TERM="dumb". */