* fhandler_console.cc: New member variable `dwBufferSize' for `info'.

(fillin_info): Set `dwBufferSize' to the size of the console buffer.
(clear_screen): Use width of console buffer to calculate how many spaces to
clear.
This commit is contained in:
Christopher Faylor 2000-11-17 03:01:14 +00:00
parent c302181722
commit 5758fdf31d
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,10 @@
Thu Nov 16 15:59:58 2000 Bradley A. Town <townba@pobox.com>
* fhandler_console.cc: New member variable `dwBufferSize' for `info'.
(fillin_info): Set `dwBufferSize' to the size of the console buffer.
(clear_screen): Use width of console buffer to calculate how many
spaces to clear.
Thu Nov 16 15:24:45 2000 Christopher Faylor <cgf@cygnus.com> Thu Nov 16 15:24:45 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Make import library creation 'make -j2' friendly. * Makefile.in: Make import library creation 'make -j2' friendly.

View File

@ -264,6 +264,7 @@ static struct
SHORT winTop; SHORT winTop;
SHORT winBottom; SHORT winBottom;
COORD dwWinSize; COORD dwWinSize;
COORD dwBufferSize;
COORD dwCursorPosition; COORD dwCursorPosition;
WORD wAttributes; WORD wAttributes;
} info; } info;
@ -280,6 +281,7 @@ fhandler_console::fillin_info (void)
info.winBottom = linfo.srWindow.Bottom; info.winBottom = linfo.srWindow.Bottom;
info.dwWinSize.Y = 1 + linfo.srWindow.Bottom - linfo.srWindow.Top; info.dwWinSize.Y = 1 + linfo.srWindow.Bottom - linfo.srWindow.Top;
info.dwWinSize.X = 1 + linfo.srWindow.Right - linfo.srWindow.Left; info.dwWinSize.X = 1 + linfo.srWindow.Right - linfo.srWindow.Left;
info.dwBufferSize = linfo.dwSize;
info.dwCursorPosition = linfo.dwCursorPosition; info.dwCursorPosition = linfo.dwCursorPosition;
info.wAttributes = linfo.wAttributes; info.wAttributes = linfo.wAttributes;
} }
@ -648,9 +650,9 @@ fhandler_console::clear_screen (int x1, int y1, int x2, int y2)
if (y2 < 0) if (y2 < 0)
y2 = info.winBottom; y2 = info.winBottom;
num = abs (y1 - y2) * info.dwWinSize.X + abs (x1 - x2) + 1; num = abs (y1 - y2) * info.dwBufferSize.X + abs (x1 - x2) + 1;
if ((y2 * info.dwWinSize.X + x2) > (y1 * info.dwWinSize.X + x1)) if ((y2 * info.dwBufferSize.X + x2) > (y1 * info.dwBufferSize.X + x1))
{ {
tlc.X = x1; tlc.X = x1;
tlc.Y = y1; tlc.Y = y1;