conhost.exe: Handle ctrl-\ in Wine.

Let conhost handle ctrl-\ instead of Unix tty, and pretend it's a
ctrl-pause/break key stroke.  This allows CUI application in processed
input mode not to close upon ctrl-\.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54141
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
This commit is contained in:
Eric Pouech 2022-12-21 10:48:29 +01:00 committed by Alexandre Julliard
parent fda954dfd4
commit e8c7920919
Notes: Alexandre Julliard 2023-01-25 22:21:29 +01:00
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/wine/-/merge_requests/1867
2 changed files with 7 additions and 1 deletions

View file

@ -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;

View file

@ -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;