Support styling on native MS-Windows console

gdb/ChangeLog:
2019-03-08  Eli Zaretskii  <eliz@gnu.org>

	PR/24315
	* utils.c (can_emit_style_escape) [_WIN32]: Don't disable styling
	on MS-Windows if $TERM is not defined.

	* cli/cli-style.c: Set cli_styling to 1 in the MinGW build.

	* posix-hdep.c (gdb_console_fputs):
	* mingw-hdep.c (rgb_to_16colors, gdb_console_fputs): New
	functions.
	* ui-file.h (gdb_console_fputs): Add prototype.

	* ui-file.c (stdio_file::puts): Call gdb_console_fputs, and fall
	back to fputs only if the former returns zero.
This commit is contained in:
Eli Zaretskii
2019-03-09 08:44:56 +02:00
parent 4639b61ae3
commit e4adb93903
7 changed files with 237 additions and 1 deletions

View File

@ -1445,8 +1445,18 @@ can_emit_style_escape (struct ui_file *stream)
|| !ui_file_isatty (stream))
return false;
const char *term = getenv ("TERM");
/* Windows doesn't by default define $TERM, but can support styles
regardless. */
#ifndef _WIN32
if (term == nullptr || !strcmp (term, "dumb"))
return false;
#else
/* But if they do define $TERM, let us behave the same as on Posix
platforms, for the benefit of programs which invoke GDB as their
back-end. */
if (term && !strcmp (term, "dumb"))
return false;
#endif
return true;
}