eric pouech (@epo) commented about programs/cmd/wcmdmain.c:
+ + /* Calculate cursor position at beginning of prompt, accounting for lines scrolled + * due to length of input. + */ + GetConsoleScreenBufferInfo(hOutput, ¤tConsoleInfo); + currentConsoleInfo.dwCursorPosition.X = startConsoleInfo.dwCursorPosition.X; + len2 -= (currentConsoleInfo.dwSize.X - currentConsoleInfo.dwCursorPosition.X); + if (len2 > 0) { + currentConsoleInfo.dwCursorPosition.Y -= ((len2 / currentConsoleInfo.dwSize.X) + 1); + } + SetConsoleCursorPosition(hOutput, currentConsoleInfo.dwCursorPosition); + + WriteConsoleW(hOutput, inputBuffer, len, &numWritten, NULL); + if (maxLen > len) { + clear_console_characters(hOutput, maxLen - len, lastConsoleInfo.dwSize.X); /* width at time of last console update */ + } and likely you could do 'maxLen = len;' here: as screen is "cleared" after 'len' position, there's no need to clear it again (unless a wider string is needed, but you'll catch that later)
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7843#note_104474