Jacek Caban : server: Fix handling of STATUS_ALERTED in get_next_console_request.
Alexandre Julliard
julliard at winehq.org
Wed Dec 2 15:21:07 CST 2020
Module: wine
Branch: master
Commit: 574ced0dc6f019d11c7c0c67d4b655985b1c24e7
URL: https://source.winehq.org/git/wine.git/?a=commit;h=574ced0dc6f019d11c7c0c67d4b655985b1c24e7
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Dec 2 20:06:11 2020 +0100
server: Fix handling of STATUS_ALERTED in get_next_console_request.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/tests/console.c | 14 ++++++++++++++
server/console.c | 2 +-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
index cab036243dc..918ecac8ac4 100644
--- a/dlls/kernel32/tests/console.c
+++ b/dlls/kernel32/tests/console.c
@@ -268,6 +268,8 @@ static void testWriteSimple(HANDLE hCon)
const char* mytest = "abcdefg";
int mylen = strlen(mytest);
COORD c = {0, 0};
+ DWORD len;
+ BOOL ret;
simple_write_console(hCon, mytest);
@@ -278,6 +280,18 @@ static void testWriteSimple(HANDLE hCon)
okCURSOR(hCon, c);
okCHAR(hCon, c, ' ', DEFAULT_ATTRIB);
+
+ ret = WriteFile(hCon, mytest, mylen, &len, NULL);
+ ok(ret, "WriteFile failed: %u\n", GetLastError());
+ ok(len == mylen, "unexpected len = %u\n", len);
+
+ for (c.X = 0; c.X < 2 * mylen; c.X++)
+ {
+ okCHAR(hCon, c, mytest[c.X % mylen], TEST_ATTRIB);
+ }
+
+ okCURSOR(hCon, c);
+ okCHAR(hCon, c, ' ', DEFAULT_ATTRIB);
}
static void testWriteNotWrappedNotProcessed(HANDLE hCon, COORD sbSize)
diff --git a/server/console.c b/server/console.c
index dc3785e8726..d1f948b23a6 100644
--- a/server/console.c
+++ b/server/console.c
@@ -1520,7 +1520,6 @@ DECL_HANDLER(get_next_console_request)
if ((iosb->out_data = memdup( get_req_data(), iosb->out_size )))
{
iosb->result = iosb->out_size;
- status = STATUS_ALERTED;
}
else if (!status)
{
@@ -1528,6 +1527,7 @@ DECL_HANDLER(get_next_console_request)
iosb->out_size = 0;
}
}
+ if (iosb->result) status = STATUS_ALERTED;
}
else
{
More information about the wine-cvs
mailing list