summaryrefslogtreecommitdiff
path: root/mysys/my_conio.c
diff options
context:
space:
mode:
Diffstat (limited to 'mysys/my_conio.c')
-rw-r--r--mysys/my_conio.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/mysys/my_conio.c b/mysys/my_conio.c
index d03f63a11a9..1ea1f7a820a 100644
--- a/mysys/my_conio.c
+++ b/mysys/my_conio.c
@@ -125,6 +125,7 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen)
{
ULONG state;
char *result;
+ DWORD plen_res;
CONSOLE_SCREEN_BUFFER_INFO csbi;
pthread_auto_mutex_decl(my_conio_cs);
@@ -171,7 +172,8 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen)
do
{
clen= min(clen, (size_t) csbi.dwSize.X*csbi.dwSize.Y);
- if (!ReadConsole((HANDLE)my_coninpfh, (LPVOID)buffer, clen - 1, plen, NULL))
+ if (!ReadConsole((HANDLE)my_coninpfh, (LPVOID)buffer, clen - 1, &plen_res,
+ NULL))
{
result= NULL;
clen>>= 1;
@@ -183,7 +185,7 @@ char* my_cgets(char *buffer, size_t clen, size_t* plen)
}
}
while (GetLastError() == ERROR_NOT_ENOUGH_MEMORY);
-
+ *plen= plen_res;
if (result != NULL)
{