Use target_terminal_ours_for_output in warning/internal_error

We're only doing output here, so leave raw/cooked mode alone, as well
as the SIGINT handler.

And restore terminal settings, while at it.

gdb/ChangeLog:
2016-04-12  Pedro Alves  <palves@redhat.com>

	* utils.c (vwarning, internal_vproblem): Use
	make_cleanup_restore_target_terminal and
	target_terminal_ours_for_output.
This commit is contained in:
Pedro Alves 2016-04-12 16:49:31 +01:00
parent f8e3ef9dc4
commit c5ac15402a
2 changed files with 18 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2016-04-12 Pedro Alves <palves@redhat.com>
* utils.c (vwarning, internal_vproblem): Use
make_cleanup_restore_target_terminal and
target_terminal_ours_for_output.
2016-04-12 Pedro Alves <palves@redhat.com>
* infcmd.c (post_create_inferior, prepare_one_step): Use

View File

@ -532,8 +532,13 @@ vwarning (const char *string, va_list args)
(*deprecated_warning_hook) (string, args);
else
{
struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
if (target_supports_terminal_ours ())
target_terminal_ours ();
{
make_cleanup_restore_target_terminal ();
target_terminal_ours_for_output ();
}
if (filtered_printing_initialized ())
wrap_here (""); /* Force out any buffered output. */
gdb_flush (gdb_stdout);
@ -541,6 +546,8 @@ vwarning (const char *string, va_list args)
fputs_unfiltered (warning_pre_print, gdb_stderr);
vfprintf_unfiltered (gdb_stderr, string, args);
fprintf_unfiltered (gdb_stderr, "\n");
do_cleanups (old_chain);
}
}
@ -738,7 +745,10 @@ internal_vproblem (struct internal_problem *problem,
/* Try to get the message out and at the start of a new line. */
if (target_supports_terminal_ours ())
target_terminal_ours ();
{
make_cleanup_restore_target_terminal ();
target_terminal_ours_for_output ();
}
if (filtered_printing_initialized ())
begin_line ();