t->to_terminal_init = child_terminal_init;
t->to_terminal_inferior = child_terminal_inferior;
t->to_terminal_ours_for_output = child_terminal_ours_for_output;
- t->to_terminal_save_ours = child_terminal_save_ours;
t->to_terminal_ours = child_terminal_ours;
t->to_terminal_info = child_terminal_info;
t->to_post_startup_inferior = inf_child_post_startup_inferior;
extern void term_info (char *, int);
-extern void child_terminal_save_ours (struct target_ops *self);
-
extern void child_terminal_ours (struct target_ops *self);
extern void child_terminal_ours_for_output (struct target_ops *self);
and gdb must be able to restore it correctly. */
void
-child_terminal_save_ours (struct target_ops *self)
+gdb_save_tty_state (void)
{
if (gdb_has_a_terminal ())
{
fputs_unfiltered (")\n", gdb_stdlog);
}
-static void
-delegate_terminal_save_ours (struct target_ops *self)
-{
- self = self->beneath;
- self->to_terminal_save_ours (self);
-}
-
-static void
-tdefault_terminal_save_ours (struct target_ops *self)
-{
-}
-
-static void
-debug_terminal_save_ours (struct target_ops *self)
-{
- fprintf_unfiltered (gdb_stdlog, "-> %s->to_terminal_save_ours (...)\n", debug_target.to_shortname);
- debug_target.to_terminal_save_ours (&debug_target);
- fprintf_unfiltered (gdb_stdlog, "<- %s->to_terminal_save_ours (", debug_target.to_shortname);
- target_debug_print_struct_target_ops_p (&debug_target);
- fputs_unfiltered (")\n", gdb_stdlog);
-}
-
static void
delegate_terminal_info (struct target_ops *self, const char *arg1, int arg2)
{
ops->to_terminal_ours_for_output = delegate_terminal_ours_for_output;
if (ops->to_terminal_ours == NULL)
ops->to_terminal_ours = delegate_terminal_ours;
- if (ops->to_terminal_save_ours == NULL)
- ops->to_terminal_save_ours = delegate_terminal_save_ours;
if (ops->to_terminal_info == NULL)
ops->to_terminal_info = delegate_terminal_info;
if (ops->to_kill == NULL)
ops->to_terminal_inferior = tdefault_terminal_inferior;
ops->to_terminal_ours_for_output = tdefault_terminal_ours_for_output;
ops->to_terminal_ours = tdefault_terminal_ours;
- ops->to_terminal_save_ours = tdefault_terminal_save_ours;
ops->to_terminal_info = default_terminal_info;
ops->to_kill = tdefault_kill;
ops->to_load = tdefault_load;
ops->to_terminal_inferior = debug_terminal_inferior;
ops->to_terminal_ours_for_output = debug_terminal_ours_for_output;
ops->to_terminal_ours = debug_terminal_ours;
- ops->to_terminal_save_ours = debug_terminal_save_ours;
ops->to_terminal_info = debug_terminal_info;
ops->to_kill = debug_kill;
ops->to_load = debug_load;
TARGET_DEFAULT_IGNORE ();
void (*to_terminal_ours) (struct target_ops *)
TARGET_DEFAULT_IGNORE ();
- void (*to_terminal_save_ours) (struct target_ops *)
- TARGET_DEFAULT_IGNORE ();
void (*to_terminal_info) (struct target_ops *, const char *, int)
TARGET_DEFAULT_FUNC (default_terminal_info);
void (*to_kill) (struct target_ops *)
extern int target_supports_terminal_ours (void);
-/* Save our terminal settings.
- This is called from TUI after entering or leaving the curses
- mode. Since curses modifies our terminal this call is here
- to take this change into account. */
-
-#define target_terminal_save_ours() \
- (*current_target.to_terminal_save_ours) (¤t_target)
-
/* Print useful information about our terminal status, if such a thing
exists. */
extern int gdb_has_a_terminal (void);
+extern void gdb_save_tty_state (void);
+
/* Set the process group of the caller to its own pid, or do nothing
if we lack job control. */
extern int gdb_setpgid (void);
#include "inferior.h"
#include "symtab.h"
#include "source.h"
+#include "terminal.h"
#include <ctype.h>
#include <signal.h>
tui_refresh_all_win ();
/* Update gdb's knowledge of its terminal. */
- target_terminal_save_ours ();
+ gdb_save_tty_state ();
tui_update_gdb_sizes ();
}
tui_setup_io (0);
/* Update gdb's knowledge of its terminal. */
- target_terminal_save_ours ();
+ gdb_save_tty_state ();
tui_active = 0;
tui_update_gdb_sizes ();