From: Pedro Alves Date: Tue, 12 Apr 2016 15:49:31 +0000 (+0100) Subject: Use target_terminal_ours_for_output in exceptions.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=481ac8c9bbbfc4b7506dfdb4a5b92b859d5c47d9;p=binutils-gdb.git Use target_terminal_ours_for_output in exceptions.c We're only doing output here, so leave raw/cooked mode alone, as well as the SIGINT handler. Restore terminal settings after output, while at it. gdb/ChangeLog: 2016-04-12 Pedro Alves * exceptions.c (print_flush): Use target_terminal_ours_for_output instead of target_terminal_ours, and restore target terminal with a cleanup. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cdaf6489494..857d5e54c24 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2016-04-12 Pedro Alves + + * exceptions.c (print_flush): Use target_terminal_ours_for_output + instead of target_terminal_ours, and restore target terminal with + a cleanup. + 2016-04-12 Pedro Alves * cp-support.c (gdb_demangle): Use target_terminal_ours_for_output diff --git a/gdb/exceptions.c b/gdb/exceptions.c index b457838d93a..ffdd1f37e0f 100644 --- a/gdb/exceptions.c +++ b/gdb/exceptions.c @@ -37,12 +37,16 @@ static void print_flush (void) { struct serial *gdb_stdout_serial; + struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); if (deprecated_error_begin_hook) deprecated_error_begin_hook (); if (target_supports_terminal_ours ()) - target_terminal_ours (); + { + make_cleanup_restore_target_terminal (); + target_terminal_ours_for_output (); + } /* We want all output to appear now, before we print the error. We have 3 levels of buffering we have to flush (it's possible that @@ -66,6 +70,8 @@ print_flush (void) } annotate_error_begin (); + + do_cleanups (old_chain); } static void