- Pass missing parameter for 'lpNumberOfCharsWritten' to WriteConsoleW()
function.
Apparently this parameter was *not* optional on older Windows versions.
Issue observed on Windows XP SP2. Issue not observed on Windows 7 SP1.
So at some point between those two Microsoft changed the behavior.
Prior to this change, on those versions if parameter is NULL then the
function call fails with error ERROR_INVALID_ACCESS.
Regression since
af3f4e41.
Ref: https://github.com/MicrosoftDocs/Console-Docs/issues/299
Fixes https://github.com/curl/curl/issues/12131
Closes https://github.com/curl/curl/pull/12130
if(isatty(fileno(outs->stream)) &&
GetConsoleScreenBufferInfo((HANDLE)fhnd, &console_info)) {
wchar_t *wc_buf;
- DWORD wc_len;
+ DWORD wc_len, chars_written;
unsigned char *rbuf = (unsigned char *)buffer;
DWORD rlen = (DWORD)bytes;
(HANDLE) fhnd,
prefix,
prefix[1] ? 2 : 1,
- NULL,
+ &chars_written,
NULL)) {
return CURL_WRITEFUNC_ERROR;
}
(HANDLE) fhnd,
wc_buf,
wc_len,
- NULL,
+ &chars_written,
NULL)) {
free(wc_buf);
return CURL_WRITEFUNC_ERROR;