Fix windows console bug

Line input cursor was going crazy when input reached right side of the screen
develop
Petr Mrázek 2012-04-17 23:23:45 +02:00
parent c031349a62
commit d825356878
1 changed files with 4 additions and 3 deletions

@ -223,12 +223,13 @@ namespace DFHack
size_t plen = prompt.size();
const char * buf = raw_buffer.c_str();
size_t len = raw_buffer.size();
int cooked_cursor = raw_cursor;
while ((plen + raw_cursor) >= cols)
while ((plen + cooked_cursor) >= cols)
{
buf++;
len--;
raw_cursor--;
cooked_cursor--;
}
while (plen + len > cols)
{
@ -247,7 +248,7 @@ namespace DFHack
output(tmp, inf.dwSize.X - (plen + len), len + plen, inf.dwCursorPosition.Y);
free(tmp);
}
inf.dwCursorPosition.X = (SHORT)(raw_cursor + plen);
inf.dwCursorPosition.X = (SHORT)(cooked_cursor + plen);
SetConsoleCursorPosition(console_out, inf.dwCursorPosition);
}