* inflow.c (gdb_getpgrp): New.

(gdb_has_a_terminal): Use get_getpgrp.
	(terminal_ours_1): If attach_flag is set, don't refetch
	inferior_process_group.
This commit is contained in:
Pedro Alves 2008-03-14 22:58:58 +00:00
parent 1fddbabb01
commit 64a0ac840e
2 changed files with 32 additions and 18 deletions

View File

@ -1,3 +1,10 @@
2008-03-14 Pedro Alves <pedro@codesourcery.com>
* inflow.c (gdb_getpgrp): New.
(gdb_has_a_terminal): Use get_getpgrp.
(terminal_ours_1): If attach_flag is set, don't refetch
inferior_process_group.
2008-03-14 Pedro Alves <pedro@codesourcery.com>
* features/library-list.dtd: Allow "section" elements as children

View File

@ -98,6 +98,24 @@ static const char *inferior_thisrun_terminal;
int terminal_is_ours;
#ifdef PROCESS_GROUP_TYPE
static PROCESS_GROUP_TYPE
gdb_getpgrp (void)
{
int process_group = -1;
#ifdef HAVE_TERMIOS
process_group = tcgetpgrp (0);
#endif
#ifdef HAVE_TERMIO
process_group = getpgrp ();
#endif
#ifdef HAVE_SGTTY
ioctl (0, TIOCGPGRP, &process_group);
#endif
return process_group;
}
#endif
enum
{
yes, no, have_not_checked
@ -132,15 +150,7 @@ gdb_has_a_terminal (void)
if (our_ttystate != NULL)
{
gdb_has_a_terminal_flag = yes;
#ifdef HAVE_TERMIOS
our_process_group = tcgetpgrp (0);
#endif
#ifdef HAVE_TERMIO
our_process_group = getpgrp ();
#endif
#ifdef HAVE_SGTTY
ioctl (0, TIOCGPGRP, &our_process_group);
#endif
our_process_group = gdb_getpgrp ();
}
}
@ -339,15 +349,12 @@ terminal_ours_1 (int output_only)
if (inferior_ttystate)
xfree (inferior_ttystate);
inferior_ttystate = serial_get_tty_state (stdin_serial);
#ifdef HAVE_TERMIOS
inferior_process_group = tcgetpgrp (0);
#endif
#ifdef HAVE_TERMIO
inferior_process_group = getpgrp ();
#endif
#ifdef HAVE_SGTTY
ioctl (0, TIOCGPGRP, &inferior_process_group);
#endif
if (!attach_flag)
/* If setpgrp failed in terminal_inferior, this would give us
our process group instead of the inferior's. See
terminal_inferior for details. */
inferior_process_group = gdb_getpgrp ();
/* Here we used to set ICANON in our ttystate, but I believe this
was an artifact from before when we used readline. Readline sets