Commit Graph

55 Commits

Author SHA1 Message Date
Jacek Caban 5f24f30124 conhost: Terminate pseudo console on input error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-24 17:45:38 +02:00
Jacek Caban f3b8ccb2f7 conhost: Improve bound checking in fill_output.
Inspired by Pengpeng Dong's patch.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-24 17:45:24 +02:00
Pengpeng Dong b9f1ec8c44 conhost: Validate width param in write_output.
Signed-off-by: Pengpeng Dong <dongpengpeng@uniontech.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-23 15:45:31 +02:00
Haidong Yu d22e821964 conhost: Input should be restored and input_thread handle should be closed before return.
Signed-off-by: Haidong Yu <yuhaidong@uniontech.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-23 15:45:13 +02:00
Jacek Caban 810873eb75 kernel32: Move Beep implementation to conhost.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-22 21:35:35 +02:00
Jacek Caban c840de2839 conhost: Fix a leak in create_screen_buffer.
Based on patch by Haidong Yu.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-22 21:35:35 +02:00
Haidong Yu 4eb3ab95c7 conhost: Add missing LeaveCriticalSection.
Signed-off-by: Haidong Yu <yuhaidong@uniontech.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 21:42:13 +02:00
Jacek Caban c47f64bd3e conhost: Use IOCTL_CONDRV_SETUP_INPUT to initialize input in Unix mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban 158471d676 conhost: Delay creating input thread in Unix mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban fc408f3d43 conhost: Force using relative cursor positioning in update_read_output.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban aecf53d0f7 conhost: Use CP_UNIXCP in Unix mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban ef5af87f6c conhost: Introduce Unix mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban c6909e5254 conhost: Terminate current read request when input when reading tty input fails.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban a33594a048 conhost: Signal console in tty_input if needed.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban da3bd4cb4a conhost: Explicitly set tty cursor position after updating output in write_console.
This avoids absolute cursor position jumps.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:24:19 +02:00
Jacek Caban 67324a4284 conhost: Free screen buffer data in destroy_screen_buffer.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-15 21:43:45 +02:00
Jacek Caban 0cdb070b76 conhost: Add support for ENABLE_LINE_INPUT.
Imported from kernel32/readline.c.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-14 21:38:31 +02:00
Jacek Caban 73f55e2341 conhost: Add support for ENABLE_ECHO_INPUT.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-14 21:38:29 +02:00
Jacek Caban 01d203eebf conhost: Introduce IOCTL_CONDRV_READ_CONSOLE ioctl.
Partially based on kernel32.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-14 21:38:26 +02:00
Jacek Caban 5d96c5aac8 conhost/tests: Add WriteConsole tests.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 16:55:40 +02:00
Jacek Caban 5ced4a705a conhost: Introduce IOCTL_CONDRV_WRITE_CONSOLE ioctl.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 16:55:40 +02:00
Jacek Caban e58ef508a9 conhost: Use more standard hide cursor sequence.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-08 21:21:04 +02:00
Jacek Caban a8ccb7fa04 conhost: Add tty input implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-08 21:20:51 +02:00
Jacek Caban 33be1cf598 conhost: Move console input processing into a separated function.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-08 21:20:45 +02:00
Jacek Caban 3885b32bc8 conhost: Update tty output in IOCTL_CONDRV_ACTIVATE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 15:47:27 +02:00
Jacek Caban f332289142 conhost: Update tty output in scroll_output.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 15:47:27 +02:00
Jacek Caban cd193e44a5 conhost: Update tty output in fill_output.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 15:47:27 +02:00
Jacek Caban 3038674eef conhost: Support tty output in write_output.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 15:47:26 +02:00
Jacek Caban 298fa4a7f0 conhost: Synchronize tty cursor position in set_output_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 15:47:26 +02:00
Jacek Caban 4ba7c42370 conhost: Support setting tty title in set_console_title.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 15:43:28 +02:00
Jacek Caban 7fe03dbf21 conhost: Initialize tty output.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 15:43:26 +02:00
Jacek Caban 9864f9c024 conhost: Support CTRL_C_EVENT in write_console_input.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-01 20:56:43 +02:00
Jacek Caban af47236499 conhost: Implement IOCTL_CONDRV_SCROLL.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 21:41:07 +02:00
Jacek Caban 2dbf14ee80 conhost: Implement IOCTL_CONDRV_FILL_OUTPUT.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 21:41:07 +02:00
Alexandre Julliard 58f2326410 conhost: Fix some pointer cast warnings.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-28 21:27:12 +02:00
Jacek Caban f4661f1b38 conhost: Implement IOCTL_CONDRV_READ_OUTPUT.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-28 19:28:49 +02:00
Jacek Caban 01c05387ce conhost: Implement IOCTL_CONDRV_WRITE_OUTPUT.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-28 19:28:44 +02:00
Jacek Caban 151b42953b conhost: Implement IOCTL_CONDRV_SET_OUTPUT_INFO.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-28 19:28:39 +02:00
Jacek Caban df8578da8e conhost: Implement IOCTL_CONDRV_GET_OUTPUT_INFO.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-28 19:28:31 +02:00
Jacek Caban 21c99970f3 conhost: Implement IOCTL_CONDRV_SET_MODE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-27 20:49:30 +02:00
Jacek Caban e5bd1ba4ad conhost: Implement IOCTL_CONDRV_GET_MODE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-27 20:49:28 +02:00
Jacek Caban 029843176b conhost: Initial support for screen buffers.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-27 20:49:21 +02:00
Jacek Caban aef321ec0f conhost: Implement IOCTL_CONDRV_PEEK.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 21:25:39 +02:00
Jacek Caban e703e2da39 conhost: Implement IOCTL_CONDRV_READ_INPUT.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 21:25:39 +02:00
Jacek Caban 4225ec994e conhost: Implement IOCTL_CONDRV_WRITE_INPUT.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 21:25:39 +02:00
Jacek Caban d2496e2d5c conhost: Implement IOCTL_CONDRV_SET_TITLE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-24 22:14:44 +02:00
Jacek Caban e40de801b5 conhost: Implement IOCTL_CONDRV_GET_TITLE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-24 22:14:44 +02:00
Jacek Caban 6c7f389c5e conhost: Implement IOCTL_CONDRV_SET_INPUT_INFO.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-24 22:14:44 +02:00
Jacek Caban 0e939eb969 conhost: Implement IOCTL_CONDRV_GET_INPUT_INFO.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-24 22:14:44 +02:00
Jacek Caban 5a151b060a conhost: Implement IOCTL_CONDRV_SET_MODE.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-24 22:14:44 +02:00