Commit graph

127 commits

Author SHA1 Message Date
Alex Henrie
c46300ff28 conhost: Use the wcsdup function instead of reimplementing it. 2023-09-25 10:23:38 +02:00
Eric Pouech
10aaff9245 conhost: Fix ctrl-c handling.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55197
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2023-07-13 11:51:41 +02:00
Alex Henrie
2455229549 conhost: Use correct pointer type in edit_line_transpose_words (scan-build). 2023-06-19 17:42:16 +02:00
Alex Henrie
8b54c2e35d conhost: Fix memory leak on error path in edit_line_move_to_history (scan-build). 2023-06-05 14:01:07 +02:00
Hugh McMaster
887aa70e08 kernelbase: Implement GetConsoleOriginalTitleW(). 2023-04-03 16:52:01 +02:00
Hugh McMaster
6891faf454 conhost: Save original console title on initialization. 2023-04-03 16:52:01 +02:00
Eric Pouech
e8c7920919 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>
2023-01-25 10:04:02 +01:00
Eric Pouech
fda954dfd4 conhost.exe: Handle ctrl-pause/break key strokes.
Note: this patch should be extended by adding insertion
of the CTRL_BREAK_EVENT into processes' crtl handler
(as it's done for CTRL_C_EVENT).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-25 10:04:00 +01:00
Eric Pouech
ec05c03463 conhost: Initialize color_map when creating an alternate screen buffer.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54287
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-11 14:27:58 +01:00
Eric Pouech
8993f5720a conhost: Reset console attribute upon exit in unix mode.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2023-01-11 14:27:54 +01:00
Eric Pouech
0a7c04816f conhost: Don't print control characters for Unix tty.
They will be reinterpreted by Unix tty, leading to wrong display.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-12-20 22:37:02 +01:00
Hugh McMaster
627f2b3557 kernelbase: Return full title length from GetConsoleTitle(). 2022-10-10 11:19:44 +02:00
Francois Gouget
7b63a5f446 conhost: Fix the spelling of a couple of comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-18 12:36:24 +02:00
Jacek Caban
b4d91adb16 kernelbase: Add support for CREATE_NO_WINDOW flag in CreateProcess.
Based on patches by Eric Pouech and Torge Matthies.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-12 21:39:42 +02:00
Eric Pouech
bb05f13fd8 conhost: Support relative cursor positioning.
Also add fallback method when legacy console APIs where used.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-25 21:24:59 +01:00
Eric Pouech
9198ca27d0 conhost: Correctly recompute start of edit line on ReadConsole.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-25 19:11:06 +01:00
Eric Pouech
68b4ffebfb kernelbase: Return key state in ReadConsoleW with control.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-01 22:41:15 +01:00
Eric Pouech
ef8d44e58e kernelbase: Support CONSOLE_READCONSOLE_CONTROL in ReadConsoleW.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-01 22:41:15 +01:00
Eric Pouech
5b3bc2eeb4 conhost: Handle csi escape sequence for shift tab.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-28 21:31:56 +01:00
Hugh McMaster
27df7f518c kernelbase: Implement SetCurrentConsoleFontEx.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-10 10:47:05 +01:00
Eric Pouech
620305d90e conhost: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-04 11:20:33 +01:00
Alex Henrie
78df9cb96c conhost: Fix memory leak on error path in create_screen_buffer (cppcheck).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-02 18:43:10 +01:00
Jacek Caban
288093229d conhost: Remove unused extra_size argument from set_output_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-14 20:55:35 +01:00
Hugh McMaster
12cf3459b5 conhost: Process Ctrl-M key input.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50526
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-14 20:53:42 +01:00
Hugh McMaster
a7fb08fba6 conhost: Use font face length as number of characters.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-25 18:27:44 +02:00
Jacek Caban
da86e50e29 conhost: Use message window to return a window for windowless consoles.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38640
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-17 18:16:49 +02:00
Jacek Caban
365e99c022 conhost: Use dedicated ioctl for GetConsoleWindow.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-17 18:16:49 +02:00
Hugh McMaster
3bf6b27882 conhost: Copy font properties to the new screen buffer.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50187
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-05 20:43:28 +02:00
Hugh McMaster
f1023b4b52 conhost: Popup Attributes should match Character Attributes when creating a new screen buffer.
Popup Attributes should match Character Attributes when a new screen
buffer is created. The existing Popup Attributes are copied when
using a pseudo console.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-26 21:44:25 +02:00
Hugh McMaster
b17eb27112 conhost: Copy Character Attributes (colors) to the new screen buffer.
CreateConsoleScreenBuffer() copies the Character Attributes (colors)
to the new screen buffer when called.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-23 16:43:50 +02:00
Jacek Caban
8dfcc1e3bc conhost: Silence FIXME in console_input_ioctl.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-28 19:43:28 +02:00
Alexandre Julliard
1bd4473484 ntdll: Create a thread to run the ctrl-C routine instead of raising an exception.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-09 23:38:43 +02:00
Jacek Caban
fdf568aaae ntdll: Inherit tty std input and output in processes attached to Unix console.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50117
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-05 21:52:23 +02:00
Gabriel Ivăncescu
8d076bc5e4 conhost: Fix line wrapping around when ENABLE_VIRTUAL_TERMINAL_PROCESSING is set.
Remember the fact we completed the entire line but normalize the cursor
otherwise. A newline is delayed so it wraps when writing a new character
if the cursor is outside the width.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 23:00:00 +02:00
Gabriel Ivăncescu
85c4adc80b conhost: Wrap around immediately if ENABLE_VIRTUAL_TERMINAL_PROCESSING is not set.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-05 23:00:00 +02:00
Jacek Caban
8ccf24ccb0 conhost: Delay window refresh on output update.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-31 19:26:09 +02:00
Jacek Caban
9e97f3513e conhost: Avoid assumption about the exact Unix cursor position after writing to the last column.
Spotted by Roman Pišl.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50581
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-16 23:01:38 +01:00
Roman Pišl
2ca86d3b59 conhost: Improve notification when resizing window.
Signed-off-by: Roman Pišl <rpisl@seznam.cz>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-03 20:59:55 +01:00
Jacek Caban
105db4c538 conhost: Fix wrapping search in edit_line_find_in_history.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50000
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-04 21:48:25 +01:00
Jacek Caban
d7d315ddf4 conhost: Ignore CONTROL_C_EXIT exceptions in Unix mode.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50304
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-30 11:19:16 +01:00
Jacek Caban
ef876fc54e conhost: Improve get_output_info debug traces.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-16 22:32:13 +01:00
Jacek Caban
8a47ef28ca conhost: Use QS_ALLINPUT to wait for input in main loop.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50014
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-08 12:34:48 +01:00
Jacek Caban
90cdea1b65 conhost: Allow events with left alt pressed in edit_line_insert.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50197
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-02 19:08:04 +01:00
Gabriel Ivăncescu
7b2b4e0329 conhost: Respect the StartupInfo's wShowWindow.
Since 859b526c81, console windows are always
shown even if they're supposed to start in some other state, e.g. minimized.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-02 19:08:04 +01:00
Jacek Caban
dfe1bb7b8d conhost: Signal console in process_console_input if needed.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50037
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-24 20:20:38 +01:00
Jacek Caban
a66eab0dfb kernelbase: Move Unicode conversion from ReadConsoleA to conhost.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:44:55 +01:00
Jacek Caban
4cc4ea449b kernelbase: Move Unicode conversion from WriteConsoleA to conhost.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 19:36:06 +01:00
Jacek Caban
1f15ddce9c conhost: Use console debug channel.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-11 21:14:58 +01:00
Jacek Caban
1d8c2d28cb kernelbase: Move console code page validation to conhost.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-15 20:20:43 +02:00
Jacek Caban
01c17ca260 conhost: Remove no longer needed non-blocking IOCTL_CONDRV_READ_INPUT.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-15 20:20:31 +02:00