Jacek Caban : kernelbase: Use IOCTL_CONDRV_FILL_OUTPUT in FillConsoleOutputCharacterW.

Alexandre Julliard julliard at winehq.org
Tue Jul 14 16:23:38 CDT 2020


Module: wine
Branch: master
Commit: bf6a803e04db1c466c9e7b1fd44e17ee10b17381
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=bf6a803e04db1c466c9e7b1fd44e17ee10b17381

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Jul 14 16:23:22 2020 +0200

kernelbase: Use IOCTL_CONDRV_FILL_OUTPUT in FillConsoleOutputCharacterW.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernelbase/console.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c
index 1df084fab9..4468d713d9 100644
--- a/dlls/kernelbase/console.c
+++ b/dlls/kernelbase/console.c
@@ -446,7 +446,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FillConsoleOutputCharacterA( HANDLE handle, CHAR c
 BOOL WINAPI DECLSPEC_HOTPATCH FillConsoleOutputCharacterW( HANDLE handle, WCHAR ch, DWORD length,
                                                            COORD coord, DWORD *written )
 {
-    BOOL ret;
+    struct condrv_fill_output_params params;
 
     TRACE( "(%p,%s,%d,(%dx%d),%p)\n", handle, debugstr_wn(&ch, 1), length, coord.X, coord.Y, written );
 
@@ -457,19 +457,16 @@ BOOL WINAPI DECLSPEC_HOTPATCH FillConsoleOutputCharacterW( HANDLE handle, WCHAR
     }
 
     *written = 0;
-    SERVER_START_REQ( fill_console_output )
-    {
-        req->handle  = console_handle_unmap( handle );
-        req->x       = coord.X;
-        req->y       = coord.Y;
-        req->mode    = CHAR_INFO_MODE_TEXT;
-        req->wrap    = TRUE;
-        req->data.ch = ch;
-        req->count   = length;
-        if ((ret = !wine_server_call_err( req ))) *written = reply->written;
-    }
-    SERVER_END_REQ;
-    return ret;
+
+    params.mode  = CHAR_INFO_MODE_TEXT;
+    params.x     = coord.X;
+    params.y     = coord.Y;
+    params.count = length;
+    params.wrap  = TRUE;
+    params.ch    = ch;
+    params.attr  = 0;
+    return console_ioctl( handle, IOCTL_CONDRV_FILL_OUTPUT, &params, sizeof(params),
+                          written, sizeof(written), NULL );
 }
 
 HANDLE get_console_wait_handle( HANDLE handle )




More information about the wine-cvs mailing list