diff options
author | Stephane Carrez <stcarrez@nerim.fr> | 2002-08-26 19:18:33 +0000 |
---|---|---|
committer | Stephane Carrez <stcarrez@nerim.fr> | 2002-08-26 19:18:33 +0000 |
commit | a790ad353e281fa104029acfa34c9cf866ad4873 (patch) | |
tree | 07294fdc78f68cd55fe049090342ca4304b99388 /gdb/inflow.c | |
parent | 3d7f4f4914a2798426e66bcdb7e00094fdd48242 (diff) | |
download | gdb-a790ad353e281fa104029acfa34c9cf866ad4873.zip gdb-a790ad353e281fa104029acfa34c9cf866ad4873.tar.gz gdb-a790ad353e281fa104029acfa34c9cf866ad4873.tar.bz2 |
Fix PR gdb/393:
* inflow.c (terminal_save_ours): New function to save terminal
settings.
* inferior.h (terminal_save_ours): Declare.
* target.c (debug_to_terminal_save_ours): New function.
(cleanup_target): Defaults to_terminal_save_ours.
(update_current_target): Inherit to_terminal_save_ours.
(setup_target_debug): Set to_terminal_save_ours.
* target.h (target_terminal_save_ours): New to save terminal settings.
(target_ops): New member to_terminal_save_ours.
* gnu-nat.c (init_gnu_ops): Set to_terminal_save_ours.
* hpux-thread.c (init_hpux_thread_ops): Likewise.
* inftarg.c (init_child_ops): Likewise.
* m3-nat.c (init_m3_ops): Likewise.
* procfs.c (init_procfs_ops): Likewise.
* wince.c (init_child_ops): Likewise.
* win32-nat.c (init_child_ops): Likewise.
* sol-thread.c (init_sol_thread_ops): Likewise.
Diffstat (limited to 'gdb/inflow.c')
-rw-r--r-- | gdb/inflow.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/inflow.c b/gdb/inflow.c index 526acdf..b37fc54 100644 --- a/gdb/inflow.c +++ b/gdb/inflow.c @@ -200,6 +200,23 @@ terminal_init_inferior_with_pgrp (int pgrp) } } +/* Save the terminal settings again. This is necessary for the TUI + when it switches to TUI or non-TUI mode; curses changes the terminal + and gdb must be able to restore it correctly. */ + +void +terminal_save_ours () +{ + if (gdb_has_a_terminal ()) + { + /* We could just as well copy our_ttystate (if we felt like adding + a new function serial_copy_tty_state). */ + if (our_ttystate) + xfree (our_ttystate); + our_ttystate = serial_get_tty_state (stdin_serial); + } +} + void terminal_init_inferior (void) { |