* inflow.c (terminal_init_inferior_with_pgrp): Copy ttystate.

(terminal_save_ours): Remove misleading comment.
	(inflow_inferior_data_cleanup): Free ttystate.
	(inflow_inferior_exit): Likewise.
	(copy_terminal_info): Copy ttystate.

	* serial.c (serial_copy_tty_state): New function.
	* serial.h (serial_copy_tty_state): Add prototype.
	(struct serial_ops): Add copy_tty_state callback.
	* ser-base.c (ser_base_copy_tty_state): New function.
	* ser-base.h (ser_base_copy_tty_state): Add prototype.
	* ser-go32.c (dos_copy_tty_state): New function.
	(dos_ops): Install copy_tty_state callback.
	* ser-mingw.c (_initialize_ser_windows): Likewise.
	* ser-pipe.c (_initialize_ser_pipe): Likewise.
	* ser-unix.c (hardwire_copy_tty_state): New function.
	(_initialize_ser_hardwire): Install it.
This commit is contained in:
Ulrich Weigand
2011-03-04 19:23:42 +00:00
parent 2abae99411
commit 1e182ce8c3
11 changed files with 85 additions and 5 deletions

View File

@ -188,6 +188,17 @@ hardwire_get_tty_state (struct serial *scb)
return (serial_ttystate) state;
}
static serial_ttystate
hardwire_copy_tty_state (struct serial *scb, serial_ttystate ttystate)
{
struct hardwire_ttystate *state;
state = (struct hardwire_ttystate *) xmalloc (sizeof *state);
*state = *(struct hardwire_ttystate *) ttystate;
return (serial_ttystate) state;
}
static int
hardwire_set_tty_state (struct serial *scb, serial_ttystate ttystate)
{
@ -911,6 +922,7 @@ _initialize_ser_hardwire (void)
ops->send_break = hardwire_send_break;
ops->go_raw = hardwire_raw;
ops->get_tty_state = hardwire_get_tty_state;
ops->copy_tty_state = hardwire_copy_tty_state;
ops->set_tty_state = hardwire_set_tty_state;
ops->print_tty_state = hardwire_print_tty_state;
ops->noflush_set_tty_state = hardwire_noflush_set_tty_state;