diff --git a/programs/conhost/conhost.c b/programs/conhost/conhost.c index 0bc6abe657c..1bed7b8a03c 100644 --- a/programs/conhost/conhost.c +++ b/programs/conhost/conhost.c @@ -1778,6 +1778,12 @@ static DWORD WINAPI tty_input( void *param ) case 0x1b: i += process_input_escape( console, buf + i + 1, count - i - 1 ); break; + case 0x1c: /* map ctrl-\ unix-ism into ctrl-break/pause windows-ism for unix consoles */ + if (console->is_unix) + key_press( console, 0, VK_CANCEL, LEFT_CTRL_PRESSED ); + else + char_key_press( console, ch, 0 ); + break; case 0x7f: key_press( console, '\b', VK_BACK, 0 ); break; diff --git a/server/console.c b/server/console.c index 34f8d09408f..b64283baf4a 100644 --- a/server/console.c +++ b/server/console.c @@ -1183,7 +1183,7 @@ static void console_server_ioctl( struct fd *fd, ioctl_code_t code, struct async return; } term = server->termios; - term.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN); + term.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN | ISIG); term.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON); term.c_cflag &= ~(CSIZE | PARENB); term.c_cflag |= CS8;