Jacek Caban : wineconsole: Use IOCTL_CONDRV_GET_INPUT_INFO in WINECON_GetServerConfig.
Alexandre Julliard
julliard at winehq.org
Tue Jul 7 15:47:07 CDT 2020
Module: wine
Branch: master
Commit: eff42369e9c59f330083e25a23762df084ce6869
URL: https://source.winehq.org/git/wine.git/?a=commit;h=eff42369e9c59f330083e25a23762df084ce6869
Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
}
More information about the wine-cvs
mailing list