diff --git a/src/tty/tty-ncurses.c b/src/tty/tty-ncurses.c index d9072f6d6..76b0f5fb9 100644 --- a/src/tty/tty-ncurses.c +++ b/src/tty/tty-ncurses.c @@ -149,14 +149,17 @@ tty_init (gboolean slow, gboolean ugly_lines) ESCDELAY = 200; #endif /* HAVE_ESCDELAY */ + /* use Ctrl-g to generate SIGINT */ + cur_term->Nttyb.c_cc[VINTR] = CTRL ('g'); /* ^g */ + tcsetattr (cur_term->Filedes, TCSANOW, &cur_term->Nttyb); + tty_start_interrupt_key (); do_enter_ca_mode (); - raw (); + tty_raw_mode (); noecho (); keypad (stdscr, TRUE); nodelay (stdscr, FALSE); - } void @@ -180,12 +183,14 @@ tty_reset_shell_mode (void) void tty_raw_mode (void) { - raw (); + raw (); /* FIXME: uneeded? */ + cbreak (); } void tty_noraw_mode (void) { + nocbreak (); /* FIXME: unneeded? */ noraw (); } diff --git a/src/tty/tty-slang.c b/src/tty/tty-slang.c index 15a662b45..02ba8d33f 100644 --- a/src/tty/tty-slang.c +++ b/src/tty/tty-slang.c @@ -264,8 +264,7 @@ tty_init (gboolean slow, gboolean ugly_lines) tcgetattr (fileno (stdin), &boot_mode); /* 255 = ignore abort char; XCTRL('g') for abort char = ^g */ - /* SLang_init_tty (XCTRL ('c'), 1, 0); */ - SLang_init_tty (255, 1, 0); + SLang_init_tty (XCTRL ('g'), 1, 0); if (ugly_lines) SLtt_Has_Alt_Charset = 0;