* fork-child.c: Don't include frame.h. Include terminal.h.

(fork_inferior): Call new_tty_postfork after forking adn adding
	the child to the inferior list.
	* inferior.h (new_tty_prefork, gdb_has_a_terminal): Don't declare
	here.
	* inflow.c (struct terminal_info): Remove const qualifier from
	`run_terminal' field.
	(inferior_thisrun_terminal): Tweak comment.
	(inflow_inferior_exit): Release the `run_terminal' field.
	(copy_terminal_info): New function.
	(new_tty_postfork): New function.
	* terminal.h (new_tty_prefork, new_tty, new_tty_postfork,
	(copy_terminal_info, gdb_has_a_terminal, gdb_setpgid): Declare.
	* inf-ptrace.c: Include terminal.h.
	(inf_ptrace_follow_fork): Copy the parent's terminal info to the
	child.
	* linux-nat.c: Include terminal.h.
	(linux_child_follow_fork): Copy the parent's terminal info to the
	child.
	* inf-ttrace.c: Include terminal.h.
	(inf_ttrace_follow_fork): Copy the parent's terminal info to the
	child.
This commit is contained in:
Pedro Alves
2009-05-19 02:46:45 +00:00
parent b523320162
commit 191c4426c1
8 changed files with 91 additions and 17 deletions

View File

@@ -76,8 +76,16 @@
#endif /* sgtty */
#endif
struct inferior;
extern void new_tty_prefork (const char *);
extern void new_tty (void);
extern void new_tty_postfork (void);
extern void copy_terminal_info (struct inferior *to, struct inferior *from);
/* Do we have job control? Can be assumed to always be the same within
a given run of GDB. In inflow.c. */
extern int job_control;
@@ -91,4 +99,10 @@ extern int gdb_setpgid (void);
/* Set up a serial structure describing standard input. In inflow.c. */
extern void initialize_stdin_serial (void);
extern int gdb_has_a_terminal (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);
#endif /* !defined (TERMINAL_H) */