Module: wine Branch: master Commit: eff42369e9c59f330083e25a23762df084ce6869 URL: https://source.winehq.org/git/wine.git/?a=commit;h=eff42369e9c59f330083e25a2...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jul 7 16:07:02 2020 +0200
wineconsole: Use IOCTL_CONDRV_GET_INPUT_INFO in WINECON_GetServerConfig.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
include/wine/condrv.h | 3 +++ programs/wineconsole/wineconsole.c | 18 ++++++++---------- server/console.c | 5 ++++- 3 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/include/wine/condrv.h b/include/wine/condrv.h index 0107da1f2f..3dc6e9714e 100644 --- a/include/wine/condrv.h +++ b/include/wine/condrv.h @@ -31,6 +31,9 @@ /* IOCTL_CONDRV_GET_INPUT_INFO result */ struct condrv_input_info { + unsigned int history_mode; /* whether we duplicate lines in history */ + unsigned int history_size; /* number of lines in history */ + unsigned int edition_mode; /* index to the edition mode flavors */ unsigned int input_count; /* number of available input records */ };
diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c index 38a8c71163..e94af41d2b 100644 --- a/programs/wineconsole/wineconsole.c +++ b/programs/wineconsole/wineconsole.c @@ -27,6 +27,7 @@ #include "winecon_private.h" #include "winnls.h" #include "winuser.h" +#include "wine/condrv.h" #include "wine/unicode.h" #include "wine/debug.h"
@@ -603,19 +604,16 @@ static void WINECON_Delete(struct inner_data* data) */ static BOOL WINECON_GetServerConfig(struct inner_data* data) { + struct condrv_input_info input_info; BOOL ret; DWORD mode;
- SERVER_START_REQ(get_console_input_info) - { - req->handle = wine_server_obj_handle( data->hConIn ); - ret = !wine_server_call_err( req ); - data->curcfg.history_size = reply->history_size; - data->curcfg.history_nodup = reply->history_mode; - data->curcfg.edition_mode = reply->edition_mode; - } - SERVER_END_REQ; - if (!ret) return FALSE; + if (!DeviceIoControl(data->hConIn, IOCTL_CONDRV_GET_INPUT_INFO, NULL, 0, + &input_info, sizeof(input_info), NULL, NULL)) + return FALSE; + data->curcfg.history_size = input_info.history_size; + data->curcfg.history_nodup = input_info.history_mode; + data->curcfg.edition_mode = input_info.edition_mode;
GetConsoleMode(data->hConIn, &mode); data->curcfg.insert_mode = (mode & (ENABLE_INSERT_MODE|ENABLE_EXTENDED_FLAGS)) == diff --git a/server/console.c b/server/console.c index 9e3fa1d673..658ce97311 100644 --- a/server/console.c +++ b/server/console.c @@ -1554,7 +1554,10 @@ static int console_ioctl( struct fd *fd, ioctl_code_t code, struct async *async set_error( STATUS_INVALID_PARAMETER ); return 0; } - info.input_count = console->recnum; + info.history_mode = console->history_mode; + info.history_size = console->history_size; + info.edition_mode = console->edition_mode; + info.input_count = console->recnum; return set_reply_data( &info, sizeof(info) ) != NULL; }